Add basic prefences window with text editor command field
This commit is contained in:
parent
0a15dfbf4c
commit
ea9cfa47e5
7 changed files with 177 additions and 1 deletions
|
@ -2639,6 +2639,8 @@
|
||||||
<addaction name="actionUse_Encounter_Json"/>
|
<addaction name="actionUse_Encounter_Json"/>
|
||||||
<addaction name="actionMonitor_Project_Files"/>
|
<addaction name="actionMonitor_Project_Files"/>
|
||||||
<addaction name="actionUse_Poryscript"/>
|
<addaction name="actionUse_Poryscript"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionEdit_Preferences"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuEdit"/>
|
<addaction name="menuEdit"/>
|
||||||
|
@ -2905,6 +2907,11 @@
|
||||||
<string>Export Map Stitch Image...</string>
|
<string>Export Map Stitch Image...</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionEdit_Preferences">
|
||||||
|
<property name="text">
|
||||||
|
<string>Edit Preferences...</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
|
75
forms/preferenceeditor.ui
Normal file
75
forms/preferenceeditor.ui
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>PreferenceEditor</class>
|
||||||
|
<widget class="QMainWindow" name="PreferenceEditor">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>480</width>
|
||||||
|
<height>320</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Preferences</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Preferred Text Editor</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_TextEditor">
|
||||||
|
<property name="text">
|
||||||
|
<string>Command</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_TextEditor">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The command (including the necessary parameters) to perform the action. See the command parameter legend below for a list of supported parameter variables, which will be substituted when launching the command. When upper-case letters (e.g. %F, $D, %N) are used, the action will be applicable even if more than one item is selected. Esle the action will only be applicable f exactly one item is selected.</string>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>e.g. code --goto %F:%L</string>
|
||||||
|
</property>
|
||||||
|
<property name="clearButtonEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_TextEditorHelp">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p>The command that will be executed when clicking the &quot;Open Map Scripts&quot; button. You may optionally include '%F' and '%L' in the command. '%F' will be substituted with the scripts file path and '%L' will be substituted with a line number. If '%L' is specified then the scripts file will be opened to map script cooresponding to the currently selected event (If the script can be found). If '%F' is <span style=" font-weight:600;">not</span> specified then the map scripts file path will be appended to the end of the command.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -21,6 +21,7 @@
|
||||||
#include "filterchildrenproxymodel.h"
|
#include "filterchildrenproxymodel.h"
|
||||||
#include "newmappopup.h"
|
#include "newmappopup.h"
|
||||||
#include "newtilesetdialog.h"
|
#include "newtilesetdialog.h"
|
||||||
|
#include "preferenceeditor.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
|
@ -226,6 +227,7 @@ private slots:
|
||||||
void on_pushButton_ConfigureEncountersJSON_clicked();
|
void on_pushButton_ConfigureEncountersJSON_clicked();
|
||||||
|
|
||||||
void on_actionRegion_Map_Editor_triggered();
|
void on_actionRegion_Map_Editor_triggered();
|
||||||
|
void on_actionEdit_Preferences_triggered();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
|
@ -234,6 +236,7 @@ private:
|
||||||
MapImageExporter *mapImageExporter = nullptr;
|
MapImageExporter *mapImageExporter = nullptr;
|
||||||
FilterChildrenProxyModel *mapListProxyModel;
|
FilterChildrenProxyModel *mapListProxyModel;
|
||||||
NewMapPopup *newmapprompt = nullptr;
|
NewMapPopup *newmapprompt = nullptr;
|
||||||
|
PreferenceEditor *preferenceEditor = nullptr;
|
||||||
QStandardItemModel *mapListModel;
|
QStandardItemModel *mapListModel;
|
||||||
QList<QStandardItem*> *mapGroupItemsList;
|
QList<QStandardItem*> *mapGroupItemsList;
|
||||||
QMap<QString, QModelIndex> mapListIndexes;
|
QMap<QString, QModelIndex> mapListIndexes;
|
||||||
|
|
31
include/ui/preferenceeditor.h
Normal file
31
include/ui/preferenceeditor.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef PREFERENCES_H
|
||||||
|
#define PREFERENCES_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
|
class QAbstractButton;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class PreferenceEditor;
|
||||||
|
}
|
||||||
|
|
||||||
|
class PreferenceEditor : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit PreferenceEditor(QWidget *parent = nullptr);
|
||||||
|
~PreferenceEditor();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::PreferenceEditor *ui;
|
||||||
|
|
||||||
|
void populateFields();
|
||||||
|
void saveFields();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void dialogButtonClicked(QAbstractButton *button);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PREFERENCES_H
|
|
@ -71,6 +71,7 @@ SOURCES += src/core/block.cpp \
|
||||||
src/ui/newtilesetdialog.cpp \
|
src/ui/newtilesetdialog.cpp \
|
||||||
src/ui/flowlayout.cpp \
|
src/ui/flowlayout.cpp \
|
||||||
src/ui/mapruler.cpp \
|
src/ui/mapruler.cpp \
|
||||||
|
src/ui/preferenceeditor.cpp \
|
||||||
src/config.cpp \
|
src/config.cpp \
|
||||||
src/editor.cpp \
|
src/editor.cpp \
|
||||||
src/main.cpp \
|
src/main.cpp \
|
||||||
|
@ -140,6 +141,7 @@ HEADERS += include/core/block.h \
|
||||||
include/ui/overlay.h \
|
include/ui/overlay.h \
|
||||||
include/ui/flowlayout.h \
|
include/ui/flowlayout.h \
|
||||||
include/ui/mapruler.h \
|
include/ui/mapruler.h \
|
||||||
|
include/ui/preferenceeditor.h \
|
||||||
include/config.h \
|
include/config.h \
|
||||||
include/editor.h \
|
include/editor.h \
|
||||||
include/mainwindow.h \
|
include/mainwindow.h \
|
||||||
|
@ -156,7 +158,8 @@ FORMS += forms/mainwindow.ui \
|
||||||
forms/newmappopup.ui \
|
forms/newmappopup.ui \
|
||||||
forms/aboutporymap.ui \
|
forms/aboutporymap.ui \
|
||||||
forms/newtilesetdialog.ui \
|
forms/newtilesetdialog.ui \
|
||||||
forms/mapimageexporter.ui
|
forms/mapimageexporter.ui \
|
||||||
|
forms/preferenceeditor.ui
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
resources/images.qrc \
|
resources/images.qrc \
|
||||||
|
|
|
@ -2560,6 +2560,21 @@ void MainWindow::on_actionThemes_triggered()
|
||||||
themeSelectorWindow.exec();
|
themeSelectorWindow.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionEdit_Preferences_triggered() {
|
||||||
|
if (!preferenceEditor) {
|
||||||
|
preferenceEditor = new PreferenceEditor(this);
|
||||||
|
connect(preferenceEditor, &QObject::destroyed, [=](QObject *) { preferenceEditor = nullptr; });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!preferenceEditor->isVisible()) {
|
||||||
|
preferenceEditor->show();
|
||||||
|
} else if (preferenceEditor->isMinimized()) {
|
||||||
|
preferenceEditor->showNormal();
|
||||||
|
} else {
|
||||||
|
preferenceEditor->activateWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_pushButton_AddCustomHeaderField_clicked()
|
void MainWindow::on_pushButton_AddCustomHeaderField_clicked()
|
||||||
{
|
{
|
||||||
int rowIndex = this->ui->tableWidget_CustomHeaderFields->rowCount();
|
int rowIndex = this->ui->tableWidget_CustomHeaderFields->rowCount();
|
||||||
|
|
42
src/ui/preferenceeditor.cpp
Normal file
42
src/ui/preferenceeditor.cpp
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#include "preferenceeditor.h"
|
||||||
|
#include "ui_preferenceeditor.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <QAbstractButton>
|
||||||
|
|
||||||
|
|
||||||
|
PreferenceEditor::PreferenceEditor(QWidget *parent) :
|
||||||
|
QMainWindow(parent),
|
||||||
|
ui(new Ui::PreferenceEditor)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
connect(ui->buttonBox, &QDialogButtonBox::clicked,
|
||||||
|
this, &PreferenceEditor::dialogButtonClicked);
|
||||||
|
populateFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
PreferenceEditor::~PreferenceEditor()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PreferenceEditor::populateFields() {
|
||||||
|
ui->lineEdit_TextEditor->setText(porymapConfig.getTextEditorCommand());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PreferenceEditor::saveFields() {
|
||||||
|
porymapConfig.setTextEditorCommand(ui->lineEdit_TextEditor->text());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PreferenceEditor::dialogButtonClicked(QAbstractButton *button) {
|
||||||
|
auto buttonRole = ui->buttonBox->buttonRole(button);
|
||||||
|
if (buttonRole == QDialogButtonBox::AcceptRole) {
|
||||||
|
saveFields();
|
||||||
|
close();
|
||||||
|
} else if (buttonRole == QDialogButtonBox::ApplyRole) {
|
||||||
|
saveFields();
|
||||||
|
} else if (buttonRole == QDialogButtonBox::RejectRole) {
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue