保存项目配置

This commit is contained in:
玉宇清音 2023-01-01 13:10:31 +08:00
parent c0051e4ab8
commit ce45464c6d
12 changed files with 56 additions and 21 deletions

View File

@ -30,6 +30,7 @@ DISTFILES += \
example.storyunit \ example.storyunit \
example.storyvolume example.storyvolume
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libParse/release/ -llibParse win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libParse/release/ -llibParse
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libParse/debug/ -llibParse else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libParse/debug/ -llibParse
else:unix: LIBS += -L$$OUT_PWD/../libParse/ -llibParse else:unix: LIBS += -L$$OUT_PWD/../libParse/ -llibParse

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.15.0, 2022-12-25T20:47:12. --> <!-- Written by QtCreator 4.15.0, 2023-01-01T13:04:02. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -89,6 +89,14 @@ FormattedTextEdit::FormattedTextEdit()
}); });
} }
FormattedTextEdit::~FormattedTextEdit()
{
if(edit_square){
delete edit_square;
edit_square = nullptr;
}
}
void FormattedTextEdit::setContexMenuProcess(std::function<void (QMenu *)> exu) void FormattedTextEdit::setContexMenuProcess(std::function<void (QMenu *)> exu)
{ {
this->ex_unit = exu; this->ex_unit = exu;

View File

@ -15,13 +15,12 @@ namespace Components {
{ {
public: public:
FormattedTextEdit(); FormattedTextEdit();
virtual ~FormattedTextEdit() = default; virtual ~FormattedTextEdit();
virtual void rehighlighter() = 0; virtual void rehighlighter() = 0;
virtual void setContexMenuProcess(std::function<void(QMenu*)> exu); virtual void setContexMenuProcess(std::function<void(QMenu*)> exu);
virtual QTextCursor getTextCursor(); virtual QTextCursor getTextCursor();
virtual void setTextCursor(QTextCursor s); virtual void setTextCursor(QTextCursor s);
QTextEdit *const edit_square;
// ModeView interface // ModeView interface
public: public:
@ -38,6 +37,7 @@ namespace Components {
protected: protected:
QTextDocument *textDocument() const; QTextDocument *textDocument() const;
QTextEdit * edit_square;
}; };

View File

@ -3,6 +3,7 @@ QT += core gui xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11 CONFIG += c++11
TARGET = Marionette
# You can make your code fail to compile if it uses deprecated APIs. # You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line. # In order to do so, uncomment the following line.

View File

@ -52,7 +52,7 @@ MainWindow::MainWindow(QWidget *parent)
this->app_core->setCurrentProject(project_manager); this->app_core->setCurrentProject(project_manager);
setMinimumSize(1000, 600); setMinimumSize(1000, 600);
setWindowTitle("提线木偶集成开发工具"); setWindowTitle("提线木偶");
chains_view->setVisible(false); chains_view->setVisible(false);
units_view->setVisible(false); units_view->setVisible(false);
@ -135,6 +135,8 @@ MainWindow::MainWindow(QWidget *parent)
sync_kernel->registerActionSync(clsp, [this]()->bool{return project_manager->isOpen();}); sync_kernel->registerActionSync(clsp, [this]()->bool{return project_manager->isOpen();});
connect(clsp, &QAction::triggered, [this](){ connect(clsp, &QAction::triggered, [this](){
this->project_manager->closeProject(); this->project_manager->closeProject();
this->app_core->getDocsManager()->closeAll();
this->refresh_views();
}); });
project->addSeparator(); project->addSeparator();
auto pcfg = project->addAction("项目配置"); auto pcfg = project->addAction("项目配置");
@ -365,12 +367,7 @@ MainWindow::MainWindow(QWidget *parent)
}); });
this->app_core->getDocsManager()->addProcTrigger([this](){ this->app_core->getDocsManager()->addProcTrigger([this](){
this->chains_view->refresh(); this->refresh_views();
this->units_view->refresh();
this->errors_present->refresh();
this->boards_view->refresh();
this->concept_view->refresh();
this->fragments_order->refresh();
}); });
@ -405,6 +402,25 @@ void MainWindow::contentViewAppend(QWidget *widget, const QString &name)
center_funcs->setCurrentWidget(widget); center_funcs->setCurrentWidget(widget);
} }
void MainWindow::contentViewClose(QWidget *widget)
{
for(auto idx=0; idx<center_funcs->count(); ++idx){
if(center_funcs->widget(idx) == widget){
}
}
}
void MainWindow::refresh_views()
{
errors_present->refresh();
chains_view->refresh();
units_view->refresh();
boards_view->refresh();
concept_view->refresh();
fragments_order->refresh();
}
void MainWindow::build_internal(bool all_from_disk) void MainWindow::build_internal(bool all_from_disk)
{ {
if(!all_from_disk) if(!all_from_disk)
@ -430,12 +446,7 @@ void MainWindow::build_internal(bool all_from_disk)
for(auto &it : concepts) for(auto &it : concepts)
app_core->getMakeCore()->compile(std::get<0>(it), std::get<1>(it)); app_core->getMakeCore()->compile(std::get<0>(it), std::get<1>(it));
errors_present->refresh(); refresh_views();
chains_view->refresh();
units_view->refresh();
boards_view->refresh();
concept_view->refresh();
fragments_order->refresh();
} }
void MainWindow::toggle_widget_visible(bool visible, QTabWidget *con, QWidget *target, const QString &title) void MainWindow::toggle_widget_visible(bool visible, QTabWidget *con, QWidget *target, const QString &title)
@ -512,7 +523,7 @@ void MainWindow::closeEvent(QCloseEvent *event)
// 关闭事件 // 关闭事件
if(project_manager->isOpen()){ if(project_manager->isOpen()){
project_manager->save(); project_manager->save();
app_core->getDocsManager()->saveAll(); app_core->getDocsManager()->closeAll();
} }
uilayout_save(); uilayout_save();

View File

@ -28,6 +28,7 @@ public:
~MainWindow(); ~MainWindow();
void contentViewAppend(QWidget *widget, const QString &name); void contentViewAppend(QWidget *widget, const QString &name);
void contentViewClose(QWidget *widget);
private: private:
Core::AppCore *const app_core; Core::AppCore *const app_core;
@ -53,6 +54,8 @@ private:
Components::FragmentsOrderView *const fragments_order; Components::FragmentsOrderView *const fragments_order;
// 内部逻辑 =========================================== // 内部逻辑 ===========================================
void refresh_views();
void build_internal(bool all_from_disk = false); void build_internal(bool all_from_disk = false);
void toggle_widget_visible(bool visible, QTabWidget *con, QWidget *target, const QString& title=QString()); void toggle_widget_visible(bool visible, QTabWidget *con, QWidget *target, const QString& title=QString());

View File

@ -26,6 +26,17 @@ StoryUnitSourceEdit::StoryUnitSourceEdit(FileExtensionFactory *factory)
}); });
connect(edit_square, &QTextEdit::cursorPositionChanged, this, &StoryUnitSourceEdit::cursor_contex_query); connect(edit_square, &QTextEdit::cursorPositionChanged, this, &StoryUnitSourceEdit::cursor_contex_query);
auto vins = FormattedTextEdit::textView();
split->addWidget(vins);
split->addWidget(this->refers_descriptions);
}
StoryUnitSourceEdit::~StoryUnitSourceEdit()
{
delete this->refers_descriptions;
split->deleteLater();
} }
FileExtensionFactory *StoryUnitSourceEdit::factory() const FileExtensionFactory *StoryUnitSourceEdit::factory() const
@ -205,9 +216,6 @@ void StoryUnitSourceEdit::resetProcsType(const QString &suffix)
QWidget *StoryUnitSourceEdit::textView() const QWidget *StoryUnitSourceEdit::textView() const
{ {
auto vins = FormattedTextEdit::textView();
split->addWidget(vins);
split->addWidget(this->refers_descriptions);
return split; return split;
} }

View File

@ -24,6 +24,7 @@ namespace Components {
{ {
public: public:
StoryUnitSourceEdit(Core::FileExtensionFactory *factory); StoryUnitSourceEdit(Core::FileExtensionFactory *factory);
virtual ~StoryUnitSourceEdit();
// Plugin interface // Plugin interface
public: public:

View File

@ -303,7 +303,6 @@ namespace Parse
virtual ~ParseCore() = default; virtual ~ParseCore() = default;
virtual void registerDoc(DocCore *ins); virtual void registerDoc(DocCore *ins);
virtual QList<DocCore *> allDocuments() const; virtual QList<DocCore *> allDocuments() const;
/** /**

View File

@ -43,6 +43,8 @@ HEADERS += \
TRANSLATIONS += \ TRANSLATIONS += \
libParse_zh_CN.ts libParse_zh_CN.ts
# Default rules for deployment. # Default rules for deployment.
unix { unix {
target.path = /usr/lib target.path = /usr/lib

View File

@ -21,6 +21,7 @@ HEADERS += \
TRANSLATIONS += \ TRANSLATIONS += \
libProjectManager_zh_CN.ts libProjectManager_zh_CN.ts
# Default rules for deployment. # Default rules for deployment.
unix { unix {
target.path = /usr/lib target.path = /usr/lib