Skip to content

Commit 9ef8869

Browse files
committed
Extended Script Editor settings
1 parent dfc7850 commit 9ef8869

17 files changed

+270
-55
lines changed

modbus

src/core/core/core_global.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ void setModbusAddress(QComboBox *cmb, QSpinBox *sp, Address adr, AddressNotation
146146

147147
void fillModbusAddressUi(QComboBox *cmb, QSpinBox *sp, Address adr, AddressNotation notation)
148148
{
149+
cmb->setMinimumWidth(70);
149150
cmb->clear();
150151
cmb->addItem(mb::toModbusMemoryTypeString(Modbus::Memory_0x, notation));
151152
cmb->addItem(mb::toModbusMemoryTypeString(Modbus::Memory_1x, notation));

src/core/gui/dialogs/core_dialogs.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ QColor mbCoreDialogs::getColor(const QColor &initial, QWidget *parent, const QSt
106106
return QColorDialog::getColor(initial, parent, title, options);
107107
}
108108

109+
bool mbCoreDialogs::getFont(QFont &font, QWidget *parent, const QString &title, QFontDialog::FontDialogOptions options)
110+
{
111+
bool ok;
112+
font = QFontDialog::getFont(&ok, font, parent, title, options);
113+
return ok;
114+
}
115+
109116
bool mbCoreDialogs::editSystemSettings(const QString &title)
110117
{
111118
return m_settings->editSettings(title);

src/core/gui/dialogs/core_dialogs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <QInputDialog>
2727
#include <QFileDialog>
2828
#include <QColorDialog>
29+
#include <QFontDialog>
2930

3031
#include <project/core_project.h>
3132

@@ -82,6 +83,8 @@ class MB_EXPORT mbCoreDialogs
8283
const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options());
8384
QColor getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(),
8485
QColorDialog::ColorDialogOptions options = QColorDialog::ColorDialogOptions());
86+
bool getFont(QFont &font, QWidget *parent = nullptr, const QString &title = QString(),
87+
QFontDialog::FontDialogOptions options = QFontDialog::FontDialogOptions());
8588
bool editSystemSettings(const QString& title = QString());
8689
void showProjectInfo(mbCoreProject *project);
8790

src/core/gui/dialogs/settings/core_dialogsettings.cpp

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717
mbCoreDialogSettings::Strings::Strings() :
1818
title(QStringLiteral("Settings")),
19-
cachePrefix(QStringLiteral("Ui.Dialogs.SystemSettings."))
19+
cachePrefix(QStringLiteral("Ui.Dialogs.SystemSettings.")),
20+
wSplitterState(cachePrefix+QStringLiteral("splitterState"))
2021
{
2122
}
2223

@@ -43,7 +44,7 @@ mbCoreDialogSettings::mbCoreDialogSettings(QWidget *parent) :
4344
m_splitter->addWidget(m_stackedWidget);
4445
m_splitter->setStretchFactor(1, 1);
4546

46-
m_splitter->setSizes({50, 1});
47+
m_splitter->setSizes({100, 1});
4748
m_splitter->setChildrenCollapsible(false);
4849

4950
connect(m_listWidget, &QListWidget::currentRowChanged, m_stackedWidget, &QStackedWidget::setCurrentIndex);
@@ -71,6 +72,29 @@ mbCoreDialogSettings::mbCoreDialogSettings(QWidget *parent) :
7172

7273
}
7374

75+
MBSETTINGS mbCoreDialogSettings::cachedSettings() const
76+
{
77+
MBSETTINGS m = mbCoreDialogBase::cachedSettings();
78+
79+
const Strings &s = Strings::instance();
80+
81+
m[s.wSplitterState] = m_splitter->saveState();
82+
83+
return m;
84+
}
85+
86+
void mbCoreDialogSettings::setCachedSettings(const MBSETTINGS &m)
87+
{
88+
mbCoreDialogBase::setCachedSettings(m);
89+
90+
const Strings &s = Strings::instance();
91+
92+
MBSETTINGS::const_iterator it;
93+
MBSETTINGS::const_iterator end = m.end();
94+
95+
it = m.find(s.wSplitterState); if (it != end) m_splitter->restoreState(it.value().toByteArray());
96+
}
97+
7498
bool mbCoreDialogSettings::editSettings(const QString &title)
7599
{
76100
MBSETTINGS m = mbCore::globalCore()->cachedSettings();

src/core/gui/dialogs/settings/core_dialogsettings.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,18 @@ class MB_EXPORT mbCoreDialogSettings : public mbCoreDialogBase
1919
{
2020
const QString title;
2121
const QString cachePrefix;
22+
const QString wSplitterState;
2223
Strings();
2324
static const Strings &instance();
2425
};
2526

2627
public:
2728
mbCoreDialogSettings(QWidget *parent = nullptr);
2829

30+
public:
31+
MBSETTINGS cachedSettings() const override;
32+
void setCachedSettings(const MBSETTINGS &settings) override;
33+
2934
public:
3035
bool editSettings(const QString& title = QString());
3136

src/server/gui/dialogs/settings/server_delegatesettingsscripteditorcolors.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ bool mbServerDelegateSettingsScriptEditorColors::editorEvent(QEvent *event, QAbs
1919
{
2020
mbServerUi *ui = mbServer::global()->ui();
2121
QColor color1 = model->data(index, Qt::BackgroundRole).value<QColor>();
22-
QColor color2 = mbServer::global()->ui()->dialogs()->getColor(color1, ui, "Color");
22+
QColor color2 = ui->dialogs()->getColor(color1, ui, "Color");
2323
if (color2.isValid())
2424
model->setData(index, QVariant::fromValue(color2), Qt::BackgroundRole);
2525
}

src/server/gui/dialogs/settings/server_dialogsettings.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ void mbServerDialogSettings::fillForm(const MBSETTINGS &m)
3737
m_script->setScriptEnable (m.value(ssrv.settings_scriptEnable ).toBool ());
3838
m_script->setScriptUseOptimization (m.value(ssrv.settings_scriptUseOptimization).toBool ());
3939
m_script->setScriptGenerateComment (m.value(sscr.settings_scriptGenerateComment).toBool ());
40+
m_script->setScriptEditorFont (m.value(sscr.settings_font ).toString ());
4041
m_script->scriptSetEditorColorFormars(m.value(sscr.settings_colorFormats ).toString ());
4142
m_script->scriptSetManualExecutables (m.value(ssrv.settings_scriptManual ).toStringList());
4243
m_script->scriptSetDefaultExecutable (m.value(ssrv.settings_scriptDefault ).toString ());
@@ -50,6 +51,7 @@ void mbServerDialogSettings::fillData(MBSETTINGS &m)
5051
m[ssrv.settings_scriptEnable ] = m_script->scriptEnable ();
5152
m[ssrv.settings_scriptUseOptimization] = m_script->scriptUseOptimization ();
5253
m[sscr.settings_scriptGenerateComment] = m_script->scriptGenerateComment ();
54+
m[sscr.settings_font ] = m_script->scriptEditorFont ();
5355
m[sscr.settings_colorFormats ] = m_script->scriptEditorColorFormars();
5456
m[ssrv.settings_scriptManual ] = m_script->scriptManualExecutables ();
5557
m[ssrv.settings_scriptDefault ] = m_script->scriptDefaultExecutable ();

src/server/gui/dialogs/settings/server_widgetsettingsscript.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include <server.h>
55
#include <gui/server_ui.h>
6+
#include <gui/dialogs/server_dialogs.h>
67

78
#include "../server_dialogs.h"
89

@@ -11,6 +12,7 @@
1112

1213
#include "server_modelsettingsscriptinterpreters.h"
1314

15+
#include <gui/script/editor/server_scripteditor.h>
1416
#include <gui/script/editor/server_scripthighlighter.h>
1517

1618
mbServerWidgetSettingsScript::mbServerWidgetSettingsScript(QWidget *parent) :
@@ -23,6 +25,8 @@ mbServerWidgetSettingsScript::mbServerWidgetSettingsScript(QWidget *parent) :
2325
setScriptEnable(server->scriptEnable());
2426
setScriptEnable(server->scriptUseOptimization());
2527

28+
setScriptEditorFont(mbServerScriptEditor::Defaults::instance().settings.font);
29+
2630
m_modelEditorColors = new mbServerModelSettingsScriptEditorColors(this);
2731
connect(ui->btnDefaultEditorColors, &QToolButton::clicked,
2832
m_modelEditorColors, &mbServerModelSettingsScriptEditorColors::setDefaultEditorColors);
@@ -33,6 +37,7 @@ mbServerWidgetSettingsScript::mbServerWidgetSettingsScript(QWidget *parent) :
3337
m_modelInterpreters->setAutoDetected(mbServer::global()->scriptAutoDetectedExecutables());
3438
ui->viewInterpreters->setModel(m_modelInterpreters);
3539

40+
connect(ui->btnFont , &QPushButton::clicked, this, &mbServerWidgetSettingsScript::slotFont );
3641
connect(ui->btnPyAdd , &QPushButton::clicked, this, &mbServerWidgetSettingsScript::slotPyAdd );
3742
connect(ui->btnPySet , &QPushButton::clicked, this, &mbServerWidgetSettingsScript::slotPySet );
3843
connect(ui->btnPyRemove , &QPushButton::clicked, this, &mbServerWidgetSettingsScript::slotPyRemove );
@@ -79,6 +84,19 @@ void mbServerWidgetSettingsScript::setScriptGenerateComment(bool gen)
7984
ui->chbGenerateComment->setChecked(gen);
8085
}
8186

87+
QString mbServerWidgetSettingsScript::scriptEditorFont() const
88+
{
89+
QFont f = getScriptEditorFont();
90+
return f.toString();
91+
}
92+
93+
void mbServerWidgetSettingsScript::setScriptEditorFont(const QString &font)
94+
{
95+
QFont f;
96+
f.fromString(font);
97+
setScriptEditorFont(f);
98+
}
99+
82100
QString mbServerWidgetSettingsScript::scriptEditorColorFormars() const
83101
{
84102
return mbServerScriptHighlighter::toString(m_modelEditorColors->colorFormats());
@@ -110,6 +128,29 @@ void mbServerWidgetSettingsScript::scriptSetDefaultExecutable(const QString &exe
110128
m_modelInterpreters->scriptSetDefaultExecutable(exec);
111129
}
112130

131+
QFont mbServerWidgetSettingsScript::getScriptEditorFont() const
132+
{
133+
QFont f = ui->cmbFontFamily->currentFont();
134+
f.setPointSize(ui->spFontSize->value());
135+
return f;
136+
}
137+
138+
void mbServerWidgetSettingsScript::setScriptEditorFont(const QFont &f)
139+
{
140+
ui->cmbFontFamily->setCurrentFont(f);
141+
ui->spFontSize->setValue(f.pointSize());
142+
}
143+
144+
void mbServerWidgetSettingsScript::slotFont()
145+
{
146+
mbServerUi *ui = mbServer::global()->ui();
147+
QFont f = getScriptEditorFont();
148+
if (ui->dialogs()->getFont(f, ui, "Font"))
149+
{
150+
setScriptEditorFont(f);
151+
}
152+
}
153+
113154
void mbServerWidgetSettingsScript::slotPyAdd()
114155
{
115156
QString s = ui->lnExecPath->text();

src/server/gui/dialogs/settings/server_widgetsettingsscript.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class mbServerWidgetSettingsScript : public QWidget
3030
bool scriptGenerateComment() const;
3131
void setScriptGenerateComment(bool gen);
3232

33+
QString scriptEditorFont() const;
34+
void setScriptEditorFont(const QString &font);
35+
3336
QString scriptEditorColorFormars() const;
3437
void scriptSetEditorColorFormars(const QString &formats);
3538

@@ -39,7 +42,12 @@ class mbServerWidgetSettingsScript : public QWidget
3942
QString scriptDefaultExecutable() const;
4043
void scriptSetDefaultExecutable(const QString &exec);
4144

45+
private:
46+
QFont getScriptEditorFont() const;
47+
void setScriptEditorFont(const QFont &f);
48+
4249
private Q_SLOTS:
50+
void slotFont ();
4351
void slotPyAdd ();
4452
void slotPySet ();
4553
void slotPyRemove ();

0 commit comments

Comments
 (0)