implemented html export (only for writing the main file, not the write_file functions);

fixed parser bug: (...\n...) was not parsed as a statement separator if the second ... starts with a string or number


git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@432 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2007-06-25 16:31:09 +00:00
parent 4bf2d44ebe
commit 5c6cb41458
13 changed files with 119 additions and 46 deletions
+2 -2
View File
@@ -38,10 +38,10 @@ class PackageList : public GalleryList {
/** @pre hasSelection()
* Throws if the selection is not of type T */
template <typename T>
intrusive_ptr<T> getSelection() const {
intrusive_ptr<T> getSelection(bool load_fully = true) const {
intrusive_ptr<T> ret = dynamic_pointer_cast<T>(packages.at(selection).package);
if (!ret) throw InternalError(_("PackageList: Selected package has the wrong type"));
ret->loadFully();
if (load_fully) ret->loadFully();
return ret;
}
+29 -9
View File
@@ -15,6 +15,8 @@
#include <data/export_template.hpp>
#include <util/window_id.hpp>
#include <util/error.hpp>
#include <wx/filename.h>
#include <wx/wfstream.h>
DECLARE_POINTER_TYPE(ExportTemplate);
@@ -45,17 +47,35 @@ HtmlExportWindow::HtmlExportWindow(Window* parent, const SetP& set)
}
void HtmlExportWindow::onOk(wxCommandEvent&) {
handle_error(Error(_("HTML export is not implemented yet, sorry")));
/*;//%%
String name = fileSelector(_("Exort to html"),_(""),_(""),_(""), {
_("HTML files (*.html)|*.html"),
wxSAVE | wxOVERWRITE_PROMPT);
ExportTemplateP exp = list->getSelection<ExportTemplate>();
// get filename
String name = wxFileSelector(_TITLE_("save html"),_(""),_(""),_(""),exp->file_type, wxSAVE | wxOVERWRITE_PROMPT);
if (name.empty()) return;
// export info for script
ExportInfo info;
info.export_template = exp;
WITH_DYNAMIC_ARG(export_info, &info);
// create directory?
if (exp->create_directory) {
wxFileName fn(name);
info.directory_relative = fn.GetName() + _("-files");
fn.SetFullName(info.directory_relative);
info.directory_absolute = fn.GetFullPath();
wxMkDir(info.directory_absolute);
}
if (!name.empty()) {
HtmlExportWindow wnd(&this, set, name);
wnd.showModal();
// run export script
Context& ctx = set->getContext();
LocalScope scope(ctx);
ctx.setVariable(_("options"), to_script(&settings.exportOptionsFor(*exp)));
ctx.setVariable(_("directory"), to_script(info.directory_relative));
ScriptValueP result = exp->script.invoke(ctx);
// Save to file
wxFileOutputStream file(name);
{ // TODO: write as image?
// write as string
wxTextOutputStream stream(file);
stream.WriteString(*result);
}
*/
// Done
EndModal(wxID_OK);
}
+3 -3
View File
@@ -59,7 +59,7 @@ NewSetWindow::NewSetWindow(Window* parent)
void NewSetWindow::onGameSelect(wxCommandEvent&) {
wxBusyCursor wait;
GameP game = game_list->getSelection<Game>();
GameP game = game_list->getSelection<Game>(false);
handle_pending_errors();
settings.default_game = game->name();
stylesheet_list->showData<StyleSheet>(game->name() + _("-*"));
@@ -76,8 +76,8 @@ void NewSetWindow::onGameSelect(wxCommandEvent&) {
void NewSetWindow::onStyleSheetSelect(wxCommandEvent&) {
// store this as default selection
GameP game = game_list ->getSelection<Game>();
StyleSheetP stylesheet = stylesheet_list->getSelection<StyleSheet>();
GameP game = game_list ->getSelection<Game>(false);
StyleSheetP stylesheet = stylesheet_list->getSelection<StyleSheet>(false);
handle_pending_errors();
settings.gameSettingsFor(*game).default_stylesheet = stylesheet->name();
UpdateWindowUI(wxUPDATE_UI_RECURSE);
+2
View File
@@ -508,7 +508,9 @@ void SetWindow::onFileReload(wxCommandEvent&) {
String filename = set->absoluteFilename();
if (filename.empty()) return;
wxBusyCursor busy;
settings.write(); // save settings
packages.destroy(); // unload all packages
settings.read(); // reload settings
setSet(import_set(filename));
}