Skip to content

Commit ec5632c

Browse files
committed
feat: show current unwind settings in settings dialog
If the settings are set by the command line they are not shown in the dialog.
1 parent 081812d commit ec5632c

File tree

2 files changed

+40
-31
lines changed

2 files changed

+40
-31
lines changed

src/settingsdialog.cpp

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -89,32 +89,6 @@ void SettingsDialog::initSettings()
8989
}
9090
}
9191

92-
void SettingsDialog::initSettings(const QString& sysroot, const QString& appPath, const QString& extraLibPaths,
93-
const QString& debugPaths, const QString& kallsyms, const QString& arch,
94-
const QString& objdump)
95-
{
96-
auto fromPathString = [](KEditListWidget* listWidget, const QString& string) {
97-
listWidget->setItems(string.split(QLatin1Char(':'), Qt::SkipEmptyParts));
98-
};
99-
fromPathString(unwindPage->extraLibraryPaths, extraLibPaths);
100-
fromPathString(unwindPage->debugPaths, debugPaths);
101-
102-
unwindPage->lineEditSysroot->setText(sysroot);
103-
unwindPage->lineEditApplicationPath->setText(appPath);
104-
unwindPage->lineEditKallsyms->setText(kallsyms);
105-
unwindPage->lineEditObjdump->setText(objdump);
106-
107-
int itemIndex = 0;
108-
if (!arch.isEmpty()) {
109-
itemIndex = unwindPage->comboBoxArchitecture->findText(arch);
110-
if (itemIndex == -1) {
111-
itemIndex = unwindPage->comboBoxArchitecture->count();
112-
unwindPage->comboBoxArchitecture->addItem(arch);
113-
}
114-
}
115-
unwindPage->comboBoxArchitecture->setCurrentIndex(itemIndex);
116-
}
117-
11892
QString SettingsDialog::sysroot() const
11993
{
12094
return unwindPage->lineEditSysroot->text();
@@ -188,6 +162,33 @@ void SettingsDialog::addPathSettingsPage()
188162
auto* label = new QLabel(this);
189163
label->setText(tr("Config:"));
190164

165+
auto loadFromSettings = [this]() {
166+
auto settings = Settings::instance();
167+
auto fromPathString = [](KEditListWidget* listWidget, const QString& string) {
168+
listWidget->setItems(string.split(QLatin1Char(':'), Qt::SkipEmptyParts));
169+
};
170+
fromPathString(unwindPage->extraLibraryPaths, settings->extraLibPaths());
171+
fromPathString(unwindPage->debugPaths, settings->debugPaths());
172+
173+
unwindPage->lineEditSysroot->setText(settings->sysroot());
174+
unwindPage->lineEditApplicationPath->setText(settings->appPath());
175+
unwindPage->lineEditKallsyms->setText(settings->kallsyms());
176+
unwindPage->lineEditObjdump->setText(settings->objdump());
177+
178+
const auto arch = settings->arch();
179+
int itemIndex = 0;
180+
if (!arch.isEmpty()) {
181+
itemIndex = unwindPage->comboBoxArchitecture->findText(arch);
182+
if (itemIndex == -1) {
183+
itemIndex = unwindPage->comboBoxArchitecture->count();
184+
unwindPage->comboBoxArchitecture->addItem(arch);
185+
}
186+
}
187+
unwindPage->comboBoxArchitecture->setCurrentIndex(itemIndex);
188+
};
189+
190+
loadFromSettings();
191+
191192
auto saveFunction = [this](KConfigGroup group) {
192193
group.writeEntry("sysroot", sysroot());
193194
group.writeEntry("appPath", appPath());
@@ -198,16 +199,26 @@ void SettingsDialog::addPathSettingsPage()
198199
group.writeEntry("objdump", objdump());
199200
};
200201

201-
auto restoreFunction = [this](const KConfigGroup& group) {
202+
auto restoreFunction = [this, loadFromSettings](const KConfigGroup& group) {
203+
::config().writeEntry("lastUsed", m_configs->currentConfig());
204+
auto settings = Settings::instance();
205+
202206
const auto sysroot = group.readEntry("sysroot");
207+
settings->setSysroot(sysroot);
203208
const auto appPath = group.readEntry("appPath");
209+
settings->setAppPath(appPath);
204210
const auto extraLibPaths = group.readEntry("extraLibPaths");
211+
settings->setExtraLibPaths(extraLibPaths);
205212
const auto debugPaths = group.readEntry("debugPaths");
213+
settings->setDebugPaths(debugPaths);
206214
const auto kallsyms = group.readEntry("kallsyms");
215+
settings->setKallsyms(kallsyms);
207216
const auto arch = group.readEntry("arch");
217+
settings->setArch(arch);
208218
const auto objdump = group.readEntry("objdump");
209-
initSettings(sysroot, appPath, extraLibPaths, debugPaths, kallsyms, arch, objdump);
210-
::config().writeEntry("lastUsed", m_configs->currentConfig());
219+
settings->setObjdump(objdump);
220+
221+
loadFromSettings();
211222
};
212223

213224
m_configs = new MultiConfigWidget(this);

src/settingsdialog.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ class SettingsDialog : public KPageDialog
3131
explicit SettingsDialog(QWidget* parent = nullptr);
3232
~SettingsDialog();
3333
void initSettings();
34-
void initSettings(const QString& sysroot, const QString& appPath, const QString& extraLibPaths,
35-
const QString& debugPaths, const QString& kallsyms, const QString& arch, const QString& objdump);
3634
QString sysroot() const;
3735
QString appPath() const;
3836
QString extraLibPaths() const;

0 commit comments

Comments
 (0)