diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index 8c0c1b40..f08bde20 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -2872,6 +2872,7 @@ + @@ -2935,13 +2936,21 @@ + + + Options + + + + + + - Save All @@ -3178,6 +3187,30 @@ Reload Project + + + true + + + Show Wild Encounter Tables + + + + + true + + + Monitor Project Files + + + + + true + + + Use PoryScript + + diff --git a/include/mainwindow.h b/include/mainwindow.h index fd5ecef8..3cd89daa 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -74,6 +74,9 @@ private slots: void on_checkBox_AllowBiking_clicked(bool checked); void on_checkBox_AllowEscapeRope_clicked(bool checked); void on_spinBox_FloorNumber_valueChanged(int offset); + void on_actionUse_Encounter_Json_triggered(bool checked); + void on_actionMonitor_Project_Files_triggered(bool checked); + void on_actionUse_Poryscript_triggered(bool checked); void on_tabWidget_currentChanged(int index); diff --git a/include/project.h b/include/project.h index 10b5562d..5f432b81 100644 --- a/include/project.h +++ b/include/project.h @@ -204,6 +204,7 @@ private: signals: void reloadProject(); + void uncheckMonitorFilesAction(); }; #endif // PROJECT_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 081b62cc..49bc1779 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -43,7 +43,7 @@ MainWindow::MainWindow(QWidget *parent) : QCoreApplication::setOrganizationName("pret"); QCoreApplication::setApplicationName("porymap"); QApplication::setApplicationDisplayName("porymap"); - QApplication::setWindowIcon(QIcon(":/icons/porymap-icon-1.ico")); + QApplication::setWindowIcon(QIcon(":/icons/porymap-icon-2.ico")); ui->setupUi(this); this->initWindow(); @@ -151,8 +151,10 @@ void MainWindow::initMapSortOrder() { void MainWindow::setProjectSpecificUIVisibility() { - if (!projectConfig.getEncounterJsonActive()) - ui->tabWidget->removeTab(4); + ui->tabWidget->setTabEnabled(4, projectConfig.getEncounterJsonActive()); + + ui->actionUse_Encounter_Json->setChecked(projectConfig.getEncounterJsonActive()); + ui->actionUse_Poryscript->setChecked(projectConfig.getUsePoryScript()); switch (projectConfig.getBaseGameVersion()) { @@ -247,6 +249,7 @@ void MainWindow::loadUserSettings() { ui->horizontalSlider_MetatileZoom->blockSignals(true); ui->horizontalSlider_MetatileZoom->setValue(porymapConfig.getMetatilesZoom()); ui->horizontalSlider_MetatileZoom->blockSignals(false); + ui->actionMonitor_Project_Files->setChecked(porymapConfig.getMonitorFiles()); setTheme(porymapConfig.getTheme()); } @@ -301,7 +304,8 @@ bool MainWindow::openProject(QString dir) { if (!already_open) { editor->closeProject(); editor->project = new Project(this); - QObject::connect(editor->project, SIGNAL(reloadProject), this, SLOT(on_action_Reload_Project_triggered)); + QObject::connect(editor->project, SIGNAL(reloadProject()), this, SLOT(on_action_Reload_Project_triggered())); + QObject::connect(editor->project, &Project::uncheckMonitorFilesAction, [this] () { ui->actionMonitor_Project_Files->setChecked(false); }); editor->project->set_root(dir); success = loadDataStructures() && populateMapList() @@ -1243,6 +1247,26 @@ void MainWindow::on_actionCursor_Tile_Outline_triggered() this->editor->settings->cursorTileRectEnabled = enabled; } +void MainWindow::on_actionUse_Encounter_Json_triggered(bool checked) +{ + QMessageBox warning(this); + warning.setText("You must reload the project for this setting to take effect."); + warning.setIcon(QMessageBox::Information); + warning.exec(); + projectConfig.setEncounterJsonActive(checked); +} + +void MainWindow::on_actionMonitor_Project_Files_triggered(bool checked) +{ + editor->project->fileWatcher.blockSignals(!checked); + porymapConfig.setMonitorFiles(checked); +} + +void MainWindow::on_actionUse_Poryscript_triggered(bool checked) +{ + projectConfig.setUsePoryScript(checked); +} + void MainWindow::on_actionPencil_triggered() { on_toolButton_Paint_clicked(); diff --git a/src/project.cpp b/src/project.cpp index 993bce85..f20b1a64 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -105,6 +105,7 @@ void Project::initSignals() { if (showAgainCheck.isChecked()) { porymapConfig.setMonitorFiles(false); this->fileWatcher.blockSignals(true); + emit uncheckMonitorFilesAction(); } } });