From 6217f910f095adea4b06f370726636b09efea4ed Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Tue, 16 Jul 2019 05:42:22 -0400
Subject: renamed logbuffer files to loglist
---
src/loglist.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 src/loglist.h
(limited to 'src/loglist.h')
diff --git a/src/loglist.h b/src/loglist.h
new file mode 100644
index 00000000..1bf8901b
--- /dev/null
+++ b/src/loglist.h
@@ -0,0 +1,61 @@
+/*
+Copyright (C) 2012 Sebastian Herbord. All rights reserved.
+
+This file is part of Mod Organizer.
+
+Mod Organizer is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Mod Organizer is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mod Organizer. If not, see .
+*/
+
+#ifndef LOGBUFFER_H
+#define LOGBUFFER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class LogModel : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public:
+ static void create();
+ static LogModel& instance();
+
+ void add(MOBase::log::Entry e);
+
+protected:
+ QModelIndex index(int row, int column, const QModelIndex& parent) const override;
+ QModelIndex parent(const QModelIndex &child) const override;
+ int rowCount(const QModelIndex &parent) const override;
+ int columnCount(const QModelIndex &parent) const override;
+ QVariant data(const QModelIndex &index, int role) const override;
+
+ QVariant headerData(
+ int section, Qt::Orientation ori, int role=Qt::DisplayRole) const override;
+
+signals:
+ void entryAdded(MOBase::log::Entry e);
+
+private:
+ std::deque m_messages;
+
+ LogModel();
+ void onEntryAdded(MOBase::log::Entry e);
+};
+
+#endif // LOGBUFFER_H
--
cgit v1.3.1
From d1b4dec8ad1635738ada3dfbde5907e7f0df3448 Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Tue, 16 Jul 2019 05:58:51 -0400
Subject: moved setup to new LogList class
---
src/loglist.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++-------
src/loglist.h | 14 +++++++++++--
src/mainwindow.cpp | 35 ++-----------------------------
src/mainwindow.h | 1 -
src/mainwindow.ui | 10 +++++----
5 files changed, 74 insertions(+), 47 deletions(-)
(limited to 'src/loglist.h')
diff --git a/src/loglist.cpp b/src/loglist.cpp
index cb927272..9e876d37 100644
--- a/src/loglist.cpp
+++ b/src/loglist.cpp
@@ -52,21 +52,26 @@ void LogModel::add(MOBase::log::Entry e)
emit entryAdded(std::move(e));
}
+const std::deque& LogModel::entries() const
+{
+ return m_entries;
+}
+
void LogModel::onEntryAdded(MOBase::log::Entry e)
{
bool full = false;
- if (m_messages.size() > MaxLines) {
- m_messages.pop_front();
+ if (m_entries.size() > MaxLines) {
+ m_entries.pop_front();
full = true;
}
- const int row = static_cast(m_messages.size());
+ const int row = static_cast(m_entries.size());
if (!full) {
beginInsertRows(QModelIndex(), row, row + 1);
}
- m_messages.emplace_back(std::move(e));
+ m_entries.emplace_back(std::move(e));
if (!full) {
endInsertRows();
@@ -92,7 +97,7 @@ int LogModel::rowCount(const QModelIndex& parent) const
if (parent.isValid())
return 0;
else
- return static_cast(m_messages.size());
+ return static_cast(m_entries.size());
}
int LogModel::columnCount(const QModelIndex&) const
@@ -105,11 +110,11 @@ QVariant LogModel::data(const QModelIndex& index, int role) const
using namespace std::chrono;
const auto row = static_cast(index.row());
- if (row >= m_messages.size()) {
+ if (row >= m_entries.size()) {
return {};
}
- const auto& e = m_messages[row];
+ const auto& e = m_entries[row];
if (role == Qt::DisplayRole) {
if (index.column() == 1) {
@@ -153,6 +158,48 @@ QVariant LogModel::headerData(int, Qt::Orientation, int) const
return {};
}
+
+LogList::LogList(QWidget* parent)
+ : QTreeView(parent)
+{
+ setModel(&LogModel::instance());
+
+ const int timestampWidth = QFontMetrics(font()).width("00:00:00.000");
+
+ header()->setMinimumSectionSize(0);
+ header()->resizeSection(0, 20);
+ header()->resizeSection(1, timestampWidth + 8);
+
+ setAutoScroll(true);
+ scrollToBottom();
+
+ connect(
+ model(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(scrollToBottom()));
+
+ connect(
+ model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+ this, SLOT(scrollToBottom()));
+}
+
+void LogList::copyToClipboard()
+{
+ std::string s;
+
+ auto* m = static_cast(model());
+ for (const auto& e : m->entries()) {
+ s += e.formattedMessage + "\n";
+ }
+
+ if (!s.empty()) {
+ // last newline
+ s.pop_back();
+ }
+
+ QApplication::clipboard()->setText(QString::fromStdString(s));
+}
+
+
void vlog(const char *format, ...)
{
va_list argList;
diff --git a/src/loglist.h b/src/loglist.h
index 1bf8901b..d1f7a2ad 100644
--- a/src/loglist.h
+++ b/src/loglist.h
@@ -37,6 +37,7 @@ public:
static LogModel& instance();
void add(MOBase::log::Entry e);
+ const std::deque& entries() const;
protected:
QModelIndex index(int row, int column, const QModelIndex& parent) const override;
@@ -44,7 +45,7 @@ protected:
int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override;
-
+
QVariant headerData(
int section, Qt::Orientation ori, int role=Qt::DisplayRole) const override;
@@ -52,10 +53,19 @@ signals:
void entryAdded(MOBase::log::Entry e);
private:
- std::deque m_messages;
+ std::deque m_entries;
LogModel();
void onEntryAdded(MOBase::log::Entry e);
};
+
+class LogList : public QTreeView
+{
+public:
+ LogList(QWidget* parent=nullptr);
+
+ void copyToClipboard();
+};
+
#endif // LOGBUFFER_H
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 107f3e09..4e91ef9f 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -357,7 +357,7 @@ MainWindow::MainWindow(QSettings &initSettings
m_CategoryFactory.loadCategories();
- setupLogList();
+ ui->logList->addAction(ui->actionCopy_Log_to_Clipboard);
int splitterSize = this->size().height(); // actually total window size, but the splitter doesn't seem to return the true value
ui->topLevelSplitter->setSizes(QList() << splitterSize - 100 << 100);
@@ -586,30 +586,6 @@ MainWindow::MainWindow(QSettings &initSettings
updateModCount();
}
-void MainWindow::setupLogList()
-{
- ui->logList->setModel(&LogModel::instance());
-
- const int timestampWidth =
- QFontMetrics(ui->logList->font()).width("00:00:00.000");
-
- ui->logList->header()->setMinimumSectionSize(0);
- ui->logList->header()->resizeSection(0, 20);
- ui->logList->header()->resizeSection(1, timestampWidth + 8);
-
- ui->logList->setAutoScroll(true);
- ui->logList->scrollToBottom();
- ui->logList->addAction(ui->actionCopy_Log_to_Clipboard);
-
- connect(
- ui->logList->model(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
- ui->logList, SLOT(scrollToBottom()));
-
- connect(
- ui->logList->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)),
- ui->logList, SLOT(scrollToBottom()));
-}
-
void MainWindow::resetActionIcons()
{
// this is a bit of a hack
@@ -6837,14 +6813,7 @@ void MainWindow::on_restoreModsButton_clicked()
void MainWindow::on_actionCopy_Log_to_Clipboard_triggered()
{
- QStringList lines;
- QAbstractItemModel *model = ui->logList->model();
- for (int i = 0; i < model->rowCount(); ++i) {
- lines.append(QString("%1 [%2] %3").arg(model->index(i, 0).data().toString())
- .arg(model->index(i, 1).data(Qt::UserRole).toString())
- .arg(model->index(i, 1).data().toString()));
- }
- QApplication::clipboard()->setText(lines.join("\n"));
+ ui->logList->copyToClipboard();
}
void MainWindow::on_categoriesAndBtn_toggled(bool checked)
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 9ca3e5c3..d7dbfd90 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -636,7 +636,6 @@ private slots:
void resetActionIcons();
void updateModCount();
void updatePluginCount();
- void setupLogList();
private slots: // ui slots
// actions
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index 5a45b3b4..c694abd4 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -1426,13 +1426,10 @@ p, li { white-space: pre-wrap; }
0
-
-
+
Qt::ActionsContextMenu
-
- QAbstractItemView::ExtendedSelection
-
false
@@ -1807,6 +1804,11 @@ p, li { white-space: pre-wrap; }
QWidget
+
+ LogList
+ QTreeView
+
+
--
cgit v1.3.1
From 3c7712a32dd5079a9543485b6a85d548460faefd Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Sat, 20 Jul 2019 05:34:31 -0400
Subject: moved setLogLevel() to OrganizerCore moved context menu to LogList
---
src/loglist.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++--------
src/loglist.h | 16 +++++++++-----
src/mainwindow.cpp | 57 ++---------------------------------------------
src/mainwindow.h | 4 ----
src/mainwindow.ui | 14 ------------
src/organizercore.cpp | 12 ++++++++++
src/organizercore.h | 2 ++
7 files changed, 78 insertions(+), 88 deletions(-)
(limited to 'src/loglist.h')
diff --git a/src/loglist.cpp b/src/loglist.cpp
index c34ac76e..26aea682 100644
--- a/src/loglist.cpp
+++ b/src/loglist.cpp
@@ -18,14 +18,7 @@ along with Mod Organizer. If not, see .
*/
#include "loglist.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include "organizercore.h"
using namespace MOBase;
@@ -158,7 +151,7 @@ QVariant LogModel::headerData(int, Qt::Orientation, int) const
LogList::LogList(QWidget* parent)
- : QTreeView(parent)
+ : QTreeView(parent), m_core(nullptr)
{
setModel(&LogModel::instance());
@@ -171,6 +164,10 @@ LogList::LogList(QWidget* parent)
setAutoScroll(true);
scrollToBottom();
+ connect(
+ this, &QWidget::customContextMenuRequested,
+ [&](auto&& pos){ onContextMenu(pos); });
+
connect(
model(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
this, SLOT(scrollToBottom()));
@@ -180,6 +177,11 @@ LogList::LogList(QWidget* parent)
this, SLOT(scrollToBottom()));
}
+void LogList::setCore(OrganizerCore& core)
+{
+ m_core = &core;
+}
+
void LogList::copyToClipboard()
{
std::string s;
@@ -196,3 +198,44 @@ void LogList::copyToClipboard()
QApplication::clipboard()->setText(QString::fromStdString(s));
}
+
+QMenu* LogList::createMenu(QWidget* parent)
+{
+ auto* menu = new QMenu(parent);
+
+ menu->addAction(tr("Copy& Log"), [&]{ copyToClipboard(); });
+ menu->addSeparator();
+
+ auto* levels = new QMenu(tr("&Level"));
+ menu->addMenu(levels);
+
+ auto* ag = new QActionGroup(menu);
+
+ auto addAction = [&](auto&& text, auto&& level) {
+ auto* a = new QAction(text, ag);
+
+ a->setCheckable(true);
+ a->setChecked(log::getDefault().level() == level);
+
+ connect(a, &QAction::triggered, [this, level]{
+ if (m_core) {
+ m_core->setLogLevel(level);
+ }
+ });
+
+ levels->addAction(a);
+ };
+
+ addAction(tr("&Debug"), log::Debug);
+ addAction(tr("&Info"), log::Info);
+ addAction(tr("&Warnings"), log::Warning);
+ addAction(tr("&Errors"), log::Error);
+
+ return menu;
+}
+
+void LogList::onContextMenu(const QPoint& pos)
+{
+ auto* menu = createMenu(this);
+ menu->popup(viewport()->mapToGlobal(pos));
+}
diff --git a/src/loglist.h b/src/loglist.h
index d1f7a2ad..ae827ca7 100644
--- a/src/loglist.h
+++ b/src/loglist.h
@@ -20,14 +20,11 @@ along with Mod Organizer. If not, see .
#ifndef LOGBUFFER_H
#define LOGBUFFER_H
-#include
-#include
-#include
-#include
-#include
-#include
+#include
#include
+class OrganizerCore;
+
class LogModel : public QAbstractItemModel
{
Q_OBJECT
@@ -65,7 +62,14 @@ class LogList : public QTreeView
public:
LogList(QWidget* parent=nullptr);
+ void setCore(OrganizerCore& core);
+
void copyToClipboard();
+ QMenu* createMenu(QWidget* parent=nullptr);
+
+private:
+ OrganizerCore* m_core;
+ void onContextMenu(const QPoint& pos);
};
#endif // LOGBUFFER_H
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 8a8a99ef..761e9843 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -59,7 +59,6 @@ along with Mod Organizer. If not, see .
#include "installationmanager.h"
#include "lockeddialog.h"
#include "waitingonclosedialog.h"
-#include "loglist.h"
#include "downloadlistsortproxy.h"
#include "motddialog.h"
#include "filedialogmemory.h"
@@ -358,7 +357,7 @@ MainWindow::MainWindow(QSettings &initSettings
m_CategoryFactory.loadCategories();
- setupLogMenu();
+ ui->logList->setCore(m_OrganizerCore);
int splitterSize = this->size().height(); // actually total window size, but the splitter doesn't seem to return the true value
ui->topLevelSplitter->setSizes(QList() << splitterSize - 100 << 100);
@@ -813,36 +812,6 @@ void MainWindow::setupActionMenu(QAction* a)
tb->setPopupMode(QToolButton::InstantPopup);
}
-void MainWindow::setupLogMenu()
-{
- connect(ui->logList, &QWidget::customContextMenuRequested, [&](auto&& pos){
- auto* menu = new QMenu(ui->logList);
-
- menu->addAction(tr("Copy& Log"), [&]{ ui->logList->copyToClipboard(); });
- menu->addSeparator();
-
- auto* levels = new QMenu(tr("&Level"));
- menu->addMenu(levels);
-
- auto* ag = new QActionGroup(menu);
-
- auto addAction = [&](auto&& text, auto&& level) {
- auto* a = new QAction(text, ag);
- a->setCheckable(true);
- a->setChecked(log::getDefault().level() == level);
- connect(a, &QAction::triggered, [this, level]{ setLogLevel(level); });
- levels->addAction(a);
- };
-
- addAction(tr("&Debug"), log::Debug);
- addAction(tr("&Info"), log::Info);
- addAction(tr("&Warnings"), log::Warning);
- addAction(tr("&Errors"), log::Error);
-
- menu->popup(ui->logList->viewport()->mapToGlobal(pos));
- });
-}
-
void MainWindow::updatePinnedExecutables()
{
for (auto* a : ui->toolBar->actions()) {
@@ -1432,11 +1401,6 @@ bool MainWindow::confirmExit()
void MainWindow::cleanup()
{
- if (ui->logList->model() != nullptr) {
- disconnect(ui->logList->model(), nullptr, nullptr, nullptr);
- ui->logList->setModel(nullptr);
- }
-
QWebEngineProfile::defaultProfile()->clearAllVisitedLinks();
m_IntegratedBrowser.close();
m_SaveMetaTimer.stop();
@@ -5317,24 +5281,12 @@ void MainWindow::on_actionSettings_triggered()
m_statusBar->checkSettings(m_OrganizerCore.settings());
updateDownloadView();
- setLogLevel(settings.logLevel());
+ m_OrganizerCore.setLogLevel(settings.logLevel());
m_OrganizerCore.cycleDiagnostics();
toggleMO2EndorseState();
}
-void MainWindow::setLogLevel(log::Levels level)
-{
- auto& s = m_OrganizerCore.settings();
-
- s.setLogLevel(level);
-
- m_OrganizerCore.updateVFSParams(
- s.logLevel(), s.crashDumpsType(), s.executablesBlacklist());
-
- log::getDefault().setLevel(s.logLevel());
-}
-
void MainWindow::on_actionNexus_triggered()
{
const IPluginGame *game = m_OrganizerCore.managedGame();
@@ -6858,11 +6810,6 @@ void MainWindow::on_restoreModsButton_clicked()
}
}
-void MainWindow::on_actionLogCopy_triggered()
-{
- ui->logList->copyToClipboard();
-}
-
void MainWindow::on_categoriesAndBtn_toggled(bool checked)
{
if (checked) {
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 74993667..aa49205d 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -636,13 +636,10 @@ private slots:
void search_activated();
void searchClear_activated();
- void setupLogMenu();
void resetActionIcons();
void updateModCount();
void updatePluginCount();
- void setLogLevel(MOBase::log::Levels level);
-
private slots: // ui slots
// actions
void on_actionAdd_Profile_triggered();
@@ -696,7 +693,6 @@ private slots: // ui slots
void on_restoreButton_clicked();
void on_restoreModsButton_clicked();
void on_saveModsButton_clicked();
- void on_actionLogCopy_triggered();
void on_categoriesAndBtn_toggled(bool checked);
void on_categoriesOrBtn_toggled(bool checked);
void on_managedArchiveLabel_linkHovered(const QString &link);
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index fc2bcdd3..6c6d0bca 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -1757,20 +1757,6 @@ p, li { white-space: pre-wrap; }
Log
-
-
- Copy &Log
-
-
- Copy &Log
-
-
- Copy log to clipboard
-
-
- Copy log to clipboard
-
-
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 92372d82..1e164525 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -731,6 +731,18 @@ void OrganizerCore::updateVFSParams(
m_USVFS.updateParams(logLevel, crashDumpsType, executableBlacklist);
}
+void OrganizerCore::setLogLevel(log::Levels level)
+{
+ m_Settings.setLogLevel(level);
+
+ updateVFSParams(
+ m_Settings.logLevel(),
+ m_Settings.crashDumpsType(),
+ m_Settings.executablesBlacklist());
+
+ log::getDefault().setLevel(m_Settings.logLevel());
+}
+
bool OrganizerCore::cycleDiagnostics() {
if (int maxDumps = settings().crashDumpsMax())
removeOldFiles(QString::fromStdWString(crashDumpsPath()), "*.dmp", maxDumps, QDir::Time|QDir::Reversed);
diff --git a/src/organizercore.h b/src/organizercore.h
index c368d101..2aa7e707 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -196,6 +196,8 @@ public:
MOBase::log::Levels logLevel, int crashDumpsType,
QString executableBlacklist);
+ void setLogLevel(MOBase::log::Levels level);
+
bool cycleDiagnostics();
static CrashDumpsType getGlobalCrashDumpsType() { return m_globalCrashDumpsType; }
--
cgit v1.3.1
From 6f1a8f5b7af3018b38fd40375d46776b2eefe684 Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Sat, 20 Jul 2019 05:40:09 -0400
Subject: added clear option to log list
---
src/loglist.cpp | 15 ++++++++++++++-
src/loglist.h | 4 ++++
2 files changed, 18 insertions(+), 1 deletion(-)
(limited to 'src/loglist.h')
diff --git a/src/loglist.cpp b/src/loglist.cpp
index 26aea682..01cbf6ce 100644
--- a/src/loglist.cpp
+++ b/src/loglist.cpp
@@ -45,6 +45,13 @@ void LogModel::add(MOBase::log::Entry e)
emit entryAdded(std::move(e));
}
+void LogModel::clear()
+{
+ beginResetModel();
+ m_entries.clear();
+ endResetModel();
+}
+
const std::deque& LogModel::entries() const
{
return m_entries;
@@ -199,12 +206,18 @@ void LogList::copyToClipboard()
QApplication::clipboard()->setText(QString::fromStdString(s));
}
+void LogList::clear()
+{
+ static_cast(model())->clear();
+}
+
QMenu* LogList::createMenu(QWidget* parent)
{
auto* menu = new QMenu(parent);
- menu->addAction(tr("Copy& Log"), [&]{ copyToClipboard(); });
+ menu->addAction(tr("&Copy"), [&]{ copyToClipboard(); });
menu->addSeparator();
+ menu->addAction(tr("C&lear"), [&]{ clear(); });
auto* levels = new QMenu(tr("&Level"));
menu->addMenu(levels);
diff --git a/src/loglist.h b/src/loglist.h
index ae827ca7..0b25dfd1 100644
--- a/src/loglist.h
+++ b/src/loglist.h
@@ -34,6 +34,8 @@ public:
static LogModel& instance();
void add(MOBase::log::Entry e);
+ void clear();
+
const std::deque& entries() const;
protected:
@@ -65,6 +67,8 @@ public:
void setCore(OrganizerCore& core);
void copyToClipboard();
+ void clear();
+
QMenu* createMenu(QWidget* parent=nullptr);
private:
--
cgit v1.3.1
From 2ffad7edf2946e66585a67c4ab58c0522cd8e412 Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Sat, 17 Aug 2019 13:20:53 -0400
Subject: made member variables in SettingsTab private, added accessors
SettingsDialog now uses GeometrySaver
---
src/loglist.h | 2 +
src/mainwindow.cpp | 2 +-
src/organizercore.cpp | 9 +---
src/settingsdialog.cpp | 40 ++++++++--------
src/settingsdialog.h | 18 ++++---
src/settingsdialogdiagnostics.cpp | 16 +++----
src/settingsdialogdiagnostics.h | 2 +-
src/settingsdialoggeneral.cpp | 98 +++++++++++++++++++--------------------
src/settingsdialoggeneral.h | 2 +-
src/settingsdialognexus.cpp | 66 +++++++++++++-------------
src/settingsdialognexus.h | 2 +-
src/settingsdialogpaths.cpp | 48 +++++++++----------
src/settingsdialogpaths.h | 3 +-
src/settingsdialogplugins.cpp | 26 +++++------
src/settingsdialogplugins.h | 2 +-
src/settingsdialogsteam.cpp | 8 ++--
src/settingsdialogsteam.h | 5 +-
src/settingsdialogworkarounds.cpp | 46 +++++++++---------
src/settingsdialogworkarounds.h | 3 +-
19 files changed, 196 insertions(+), 202 deletions(-)
(limited to 'src/loglist.h')
diff --git a/src/loglist.h b/src/loglist.h
index 0b25dfd1..36671be4 100644
--- a/src/loglist.h
+++ b/src/loglist.h
@@ -61,6 +61,8 @@ private:
class LogList : public QTreeView
{
+ Q_OBJECT;
+
public:
LogList(QWidget* parent=nullptr);
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 2ce6f9d9..f1a2047f 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -5018,7 +5018,7 @@ void MainWindow::on_actionSettings_triggered()
DownloadManager *dlManager = m_OrganizerCore.downloadManager();
- SettingsDialog dialog(&m_PluginContainer, &settings, this);
+ SettingsDialog dialog(&m_PluginContainer, settings, this);
dialog.exec();
if (oldManagedGameDirectory != settings.getManagedGameDirectory()) {
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 233a631e..73d0abac 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -745,16 +745,11 @@ void OrganizerCore::setCurrentProfile(const QString &profileName)
m_CurrentProfile->deactivateInvalidation();
}
+ m_Settings.setSelectedProfileName(m_CurrentProfile->name());
+
connect(m_CurrentProfile, SIGNAL(modStatusChanged(uint)), this, SLOT(modStatusChanged(uint)));
connect(m_CurrentProfile, SIGNAL(modStatusChanged(QList)), this, SLOT(modStatusChanged(QList)));
refreshDirectoryStructure();
-
- //This line is not actually needed and was only added to allow some
- //outside detection of Mo2 profile change. (like BaobobMiller utility)
- if (m_CurrentProfile != nullptr) {
- settings().directInterface().setValue("selected_profile",
- m_CurrentProfile->name().toUtf8().constData());
- }
}
MOBase::IModRepositoryBridge *OrganizerCore::createNexusBridge() const
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index d74507c9..097dafc8 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -29,7 +29,7 @@ along with Mod Organizer. If not, see .
using namespace MOBase;
-SettingsDialog::SettingsDialog(PluginContainer *pluginContainer, Settings* settings, QWidget *parent)
+SettingsDialog::SettingsDialog(PluginContainer *pluginContainer, Settings& settings, QWidget *parent)
: TutorableDialog("SettingsDialog", parent)
, ui(new Ui::SettingsDialog)
, m_settings(settings)
@@ -45,18 +45,13 @@ SettingsDialog::SettingsDialog(PluginContainer *pluginContainer, Settings* setti
m_tabs.push_back(std::unique_ptr(new SteamSettingsTab(settings, *this)));
m_tabs.push_back(std::unique_ptr(new PluginsSettingsTab(settings, *this)));
m_tabs.push_back(std::unique_ptr(new WorkaroundsSettingsTab(settings, *this)));
-
- auto& qsettings = settings->directInterface();
-
- QString key = QString("geometry/%1").arg(objectName());
- if (qsettings.contains(key)) {
- restoreGeometry(qsettings.value(key).toByteArray());
- }
}
int SettingsDialog::exec()
{
- auto& qsettings = m_settings->directInterface();
+ GeometrySaver gs(m_settings, this);
+
+ auto& qsettings = m_settings.directInterface();
auto ret = TutorableDialog::exec();
if (ret == QDialog::Accepted) {
@@ -92,9 +87,6 @@ int SettingsDialog::exec()
qsettings.endGroup();
}
- QString key = QString("geometry/%1").arg(objectName());
- qsettings.setValue(key, saveGeometry());
-
// These changes happen regardless of accepted or rejected
bool restartNeeded = false;
if (getApiKeyChanged()) {
@@ -158,18 +150,24 @@ bool SettingsDialog::getApiKeyChanged()
}
-SettingsTab::SettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : m_parent(m_parent)
- , m_Settings(m_parent->directInterface())
- , m_dialog(m_dialog)
- , ui(m_dialog.ui)
+SettingsTab::SettingsTab(Settings& s, SettingsDialog& d)
+ : ui(d.ui), m_settings(s), m_qsettings(s.directInterface()), m_dialog(d)
{
}
-SettingsTab::~SettingsTab()
-{}
+SettingsTab::~SettingsTab() = default;
+
+Settings& SettingsTab::settings()
+{
+ return m_settings;
+}
+
+QSettings& SettingsTab::qsettings()
+{
+ return m_qsettings;
+}
-QWidget* SettingsTab::parentWidget()
+SettingsDialog& SettingsTab::dialog()
{
- return &m_dialog;
+ return m_dialog;
}
diff --git a/src/settingsdialog.h b/src/settingsdialog.h
index efc4a095..0aad8863 100644
--- a/src/settingsdialog.h
+++ b/src/settingsdialog.h
@@ -31,19 +31,23 @@ namespace Ui { class SettingsDialog; }
class SettingsTab
{
public:
- SettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
+ SettingsTab(Settings& settings, SettingsDialog& m_dialog);
virtual ~SettingsTab();
virtual void update() = 0;
virtual void closing() {}
protected:
- Settings *m_parent;
- QSettings &m_Settings;
- SettingsDialog &m_dialog;
Ui::SettingsDialog* ui;
- QWidget* parentWidget();
+ Settings& settings();
+ QSettings& qsettings();
+ SettingsDialog& dialog();
+
+private:
+ Settings& m_settings;
+ QSettings& m_qsettings;
+ SettingsDialog& m_dialog;
};
@@ -58,7 +62,7 @@ class SettingsDialog : public MOBase::TutorableDialog
public:
explicit SettingsDialog(
- PluginContainer *pluginContainer, Settings* settings, QWidget *parent = 0);
+ PluginContainer *pluginContainer, Settings& settings, QWidget *parent = 0);
~SettingsDialog();
@@ -82,7 +86,7 @@ public:
bool getApiKeyChanged();
private:
- Settings* m_settings;
+ Settings& m_settings;
std::vector> m_tabs;
};
diff --git a/src/settingsdialogdiagnostics.cpp b/src/settingsdialogdiagnostics.cpp
index daf81d5c..227d1dfa 100644
--- a/src/settingsdialogdiagnostics.cpp
+++ b/src/settingsdialogdiagnostics.cpp
@@ -6,12 +6,12 @@
using namespace MOBase;
-DiagnosticsSettingsTab::DiagnosticsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+DiagnosticsSettingsTab::DiagnosticsSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
setLevelsBox();
- ui->dumpsTypeBox->setCurrentIndex(m_parent->crashDumpsType());
- ui->dumpsMaxEdit->setValue(m_parent->crashDumpsMax());
+ ui->dumpsTypeBox->setCurrentIndex(settings().crashDumpsType());
+ ui->dumpsMaxEdit->setValue(settings().crashDumpsMax());
QString logsPath = qApp->property("dataPath").toString()
+ "/" + QString::fromStdWString(AppConfig::logPath());
ui->diagnosticsExplainedLabel->setText(
@@ -33,7 +33,7 @@ void DiagnosticsSettingsTab::setLevelsBox()
ui->logLevelBox->addItem(QObject::tr("Error"), log::Error);
for (int i=0; ilogLevelBox->count(); ++i) {
- if (ui->logLevelBox->itemData(i) == m_parent->logLevel()) {
+ if (ui->logLevelBox->itemData(i) == settings().logLevel()) {
ui->logLevelBox->setCurrentIndex(i);
break;
}
@@ -42,7 +42,7 @@ void DiagnosticsSettingsTab::setLevelsBox()
void DiagnosticsSettingsTab::update()
{
- m_Settings.setValue("Settings/log_level", ui->logLevelBox->currentData().toInt());
- m_Settings.setValue("Settings/crash_dumps_type", ui->dumpsTypeBox->currentIndex());
- m_Settings.setValue("Settings/crash_dumps_max", ui->dumpsMaxEdit->value());
+ qsettings().setValue("Settings/log_level", ui->logLevelBox->currentData().toInt());
+ qsettings().setValue("Settings/crash_dumps_type", ui->dumpsTypeBox->currentIndex());
+ qsettings().setValue("Settings/crash_dumps_max", ui->dumpsMaxEdit->value());
}
diff --git a/src/settingsdialogdiagnostics.h b/src/settingsdialogdiagnostics.h
index 4c1805e2..f20413f8 100644
--- a/src/settingsdialogdiagnostics.h
+++ b/src/settingsdialogdiagnostics.h
@@ -7,7 +7,7 @@
class DiagnosticsSettingsTab : public SettingsTab
{
public:
- DiagnosticsSettingsTab(Settings *parent, SettingsDialog &dialog);
+ DiagnosticsSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp
index fda50220..35012db7 100644
--- a/src/settingsdialoggeneral.cpp
+++ b/src/settingsdialoggeneral.cpp
@@ -6,12 +6,12 @@
using MOBase::QuestionBoxMemory;
-GeneralSettingsTab::GeneralSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
addLanguages();
{
- QString languageCode = m_parent->language();
+ QString languageCode = settings().language();
int currentID = ui->languageBox->findData(languageCode);
// I made a mess. :( Most languages are stored with only the iso country
// code (2 characters like "de") but chinese
@@ -28,31 +28,31 @@ GeneralSettingsTab::GeneralSettingsTab(Settings *m_parent, SettingsDialog &m_dia
addStyles();
{
int currentID = ui->styleBox->findData(
- m_Settings.value("Settings/style", "").toString());
+ qsettings().value("Settings/style", "").toString());
if (currentID != -1) {
ui->styleBox->setCurrentIndex(currentID);
}
}
//version with stylesheet
- setButtonColor(ui->overwritingBtn, m_parent->modlistOverwritingLooseColor());
- setButtonColor(ui->overwrittenBtn, m_parent->modlistOverwrittenLooseColor());
- setButtonColor(ui->overwritingArchiveBtn, m_parent->modlistOverwritingArchiveColor());
- setButtonColor(ui->overwrittenArchiveBtn, m_parent->modlistOverwrittenArchiveColor());
- setButtonColor(ui->containsBtn, m_parent->modlistContainsPluginColor());
- setButtonColor(ui->containedBtn, m_parent->pluginListContainedColor());
-
- setOverwritingColor(m_parent->modlistOverwritingLooseColor());
- setOverwrittenColor(m_parent->modlistOverwrittenLooseColor());
- setOverwritingArchiveColor(m_parent->modlistOverwritingArchiveColor());
- setOverwrittenArchiveColor(m_parent->modlistOverwrittenArchiveColor());
- setContainsColor(m_parent->modlistContainsPluginColor());
- setContainedColor(m_parent->pluginListContainedColor());
-
- ui->compactBox->setChecked(m_parent->compactDownloads());
- ui->showMetaBox->setChecked(m_parent->metaDownloads());
- ui->usePrereleaseBox->setChecked(m_parent->usePrereleases());
- ui->colorSeparatorsBox->setChecked(m_parent->colorSeparatorScrollbar());
+ setButtonColor(ui->overwritingBtn, settings().modlistOverwritingLooseColor());
+ setButtonColor(ui->overwrittenBtn, settings().modlistOverwrittenLooseColor());
+ setButtonColor(ui->overwritingArchiveBtn, settings().modlistOverwritingArchiveColor());
+ setButtonColor(ui->overwrittenArchiveBtn, settings().modlistOverwrittenArchiveColor());
+ setButtonColor(ui->containsBtn, settings().modlistContainsPluginColor());
+ setButtonColor(ui->containedBtn, settings().pluginListContainedColor());
+
+ setOverwritingColor(settings().modlistOverwritingLooseColor());
+ setOverwrittenColor(settings().modlistOverwrittenLooseColor());
+ setOverwritingArchiveColor(settings().modlistOverwritingArchiveColor());
+ setOverwrittenArchiveColor(settings().modlistOverwrittenArchiveColor());
+ setContainsColor(settings().modlistContainsPluginColor());
+ setContainedColor(settings().pluginListContainedColor());
+
+ ui->compactBox->setChecked(settings().compactDownloads());
+ ui->showMetaBox->setChecked(settings().metaDownloads());
+ ui->usePrereleaseBox->setChecked(settings().usePrereleases());
+ ui->colorSeparatorsBox->setChecked(settings().colorSeparatorScrollbar());
QObject::connect(ui->overwritingArchiveBtn, &QPushButton::clicked, [&]{ on_overwritingArchiveBtn_clicked(); });
QObject::connect(ui->overwritingBtn, &QPushButton::clicked, [&]{ on_overwritingBtn_clicked(); });
@@ -67,30 +67,30 @@ GeneralSettingsTab::GeneralSettingsTab(Settings *m_parent, SettingsDialog &m_dia
void GeneralSettingsTab::update()
{
- QString oldLanguage = m_parent->language();
+ QString oldLanguage = settings().language();
QString newLanguage = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString();
if (newLanguage != oldLanguage) {
- m_Settings.setValue("Settings/language", newLanguage);
- emit m_parent->languageChanged(newLanguage);
+ qsettings().setValue("Settings/language", newLanguage);
+ emit settings().languageChanged(newLanguage);
}
- QString oldStyle = m_Settings.value("Settings/style", "").toString();
+ QString oldStyle = qsettings().value("Settings/style", "").toString();
QString newStyle = ui->styleBox->itemData(ui->styleBox->currentIndex()).toString();
if (oldStyle != newStyle) {
- m_Settings.setValue("Settings/style", newStyle);
- emit m_parent->styleChanged(newStyle);
- }
-
- m_Settings.setValue("Settings/overwritingLooseFilesColor", getOverwritingColor());
- m_Settings.setValue("Settings/overwrittenLooseFilesColor", getOverwrittenColor());
- m_Settings.setValue("Settings/overwritingArchiveFilesColor", getOverwritingArchiveColor());
- m_Settings.setValue("Settings/overwrittenArchiveFilesColor", getOverwrittenArchiveColor());
- m_Settings.setValue("Settings/containsPluginColor", getContainsColor());
- m_Settings.setValue("Settings/containedColor", getContainedColor());
- m_Settings.setValue("Settings/compact_downloads", ui->compactBox->isChecked());
- m_Settings.setValue("Settings/meta_downloads", ui->showMetaBox->isChecked());
- m_Settings.setValue("Settings/use_prereleases", ui->usePrereleaseBox->isChecked());
- m_Settings.setValue("Settings/colorSeparatorScrollbars", ui->colorSeparatorsBox->isChecked());
+ qsettings().setValue("Settings/style", newStyle);
+ emit settings().styleChanged(newStyle);
+ }
+
+ qsettings().setValue("Settings/overwritingLooseFilesColor", getOverwritingColor());
+ qsettings().setValue("Settings/overwrittenLooseFilesColor", getOverwrittenColor());
+ qsettings().setValue("Settings/overwritingArchiveFilesColor", getOverwritingArchiveColor());
+ qsettings().setValue("Settings/overwrittenArchiveFilesColor", getOverwrittenArchiveColor());
+ qsettings().setValue("Settings/containsPluginColor", getContainsColor());
+ qsettings().setValue("Settings/containedColor", getContainedColor());
+ qsettings().setValue("Settings/compact_downloads", ui->compactBox->isChecked());
+ qsettings().setValue("Settings/meta_downloads", ui->showMetaBox->isChecked());
+ qsettings().setValue("Settings/use_prereleases", ui->usePrereleaseBox->isChecked());
+ qsettings().setValue("Settings/colorSeparatorScrollbars", ui->colorSeparatorsBox->isChecked());
}
void GeneralSettingsTab::addLanguages()
@@ -141,7 +141,7 @@ void GeneralSettingsTab::addStyles()
void GeneralSettingsTab::resetDialogs()
{
- m_parent->resetQuestionButtons();
+ settings().resetQuestionButtons();
}
void GeneralSettingsTab::setButtonColor(QPushButton *button, const QColor &color)
@@ -163,7 +163,7 @@ void GeneralSettingsTab::setButtonColor(QPushButton *button, const QColor &color
void GeneralSettingsTab::on_containsBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_ContainsColor, parentWidget(), "Color Picker: Mod contains selected plugin", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_ContainsColor, &dialog(), "Color Picker: Mod contains selected plugin", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_ContainsColor = result;
setButtonColor(ui->containsBtn, result);
@@ -172,7 +172,7 @@ void GeneralSettingsTab::on_containsBtn_clicked()
void GeneralSettingsTab::on_containedBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_ContainedColor, parentWidget(), "ColorPicker: Plugin is Contained in selected Mod", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_ContainedColor, &dialog(), "ColorPicker: Plugin is Contained in selected Mod", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_ContainedColor = result;
setButtonColor(ui->containedBtn, result);
@@ -181,7 +181,7 @@ void GeneralSettingsTab::on_containedBtn_clicked()
void GeneralSettingsTab::on_overwrittenBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwrittenColor, parentWidget(), "ColorPicker: Is overwritten (loose files)", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_OverwrittenColor, &dialog(), "ColorPicker: Is overwritten (loose files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwrittenColor = result;
setButtonColor(ui->overwrittenBtn, result);
@@ -190,7 +190,7 @@ void GeneralSettingsTab::on_overwrittenBtn_clicked()
void GeneralSettingsTab::on_overwritingBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwritingColor, parentWidget(), "ColorPicker: Is overwriting (loose files)", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_OverwritingColor, &dialog(), "ColorPicker: Is overwriting (loose files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwritingColor = result;
setButtonColor(ui->overwritingBtn, result);
@@ -199,7 +199,7 @@ void GeneralSettingsTab::on_overwritingBtn_clicked()
void GeneralSettingsTab::on_overwrittenArchiveBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwrittenArchiveColor, parentWidget(), "ColorPicker: Is overwritten (archive files)", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_OverwrittenArchiveColor, &dialog(), "ColorPicker: Is overwritten (archive files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwrittenArchiveColor = result;
setButtonColor(ui->overwrittenArchiveBtn, result);
@@ -208,7 +208,7 @@ void GeneralSettingsTab::on_overwrittenArchiveBtn_clicked()
void GeneralSettingsTab::on_overwritingArchiveBtn_clicked()
{
- QColor result = QColorDialog::getColor(m_OverwritingArchiveColor, parentWidget(), "ColorPicker: Is overwriting (archive files)", QColorDialog::ShowAlphaChannel);
+ QColor result = QColorDialog::getColor(m_OverwritingArchiveColor, &dialog(), "ColorPicker: Is overwriting (archive files)", QColorDialog::ShowAlphaChannel);
if (result.isValid()) {
m_OverwritingArchiveColor = result;
setButtonColor(ui->overwritingArchiveBtn, result);
@@ -234,7 +234,7 @@ void GeneralSettingsTab::on_resetColorsBtn_clicked()
void GeneralSettingsTab::on_resetDialogsButton_clicked()
{
- if (QMessageBox::question(parentWidget(), QObject::tr("Confirm?"),
+ if (QMessageBox::question(&dialog(), QObject::tr("Confirm?"),
QObject::tr("This will make all dialogs show up again where you checked the \"Remember selection\"-box. Continue?"),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
resetDialogs();
@@ -243,7 +243,7 @@ void GeneralSettingsTab::on_resetDialogsButton_clicked()
void GeneralSettingsTab::on_categoriesBtn_clicked()
{
- CategoriesDialog dialog(parentWidget());
+ CategoriesDialog dialog(&dialog());
if (dialog.exec() == QDialog::Accepted) {
dialog.commitChanges();
}
diff --git a/src/settingsdialoggeneral.h b/src/settingsdialoggeneral.h
index c7fcae36..2038ba31 100644
--- a/src/settingsdialoggeneral.h
+++ b/src/settingsdialoggeneral.h
@@ -7,7 +7,7 @@
class GeneralSettingsTab : public SettingsTab
{
public:
- GeneralSettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
+ GeneralSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
diff --git a/src/settingsdialognexus.cpp b/src/settingsdialognexus.cpp
index 575f54d0..b1964069 100644
--- a/src/settingsdialognexus.cpp
+++ b/src/settingsdialognexus.cpp
@@ -69,18 +69,18 @@ private:
};
-NexusSettingsTab::NexusSettingsTab(Settings *parent, SettingsDialog &dialog)
- : SettingsTab(parent, dialog)
+NexusSettingsTab::NexusSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
- ui->offlineBox->setChecked(parent->offlineMode());
- ui->proxyBox->setChecked(parent->useProxy());
- ui->endorsementBox->setChecked(parent->endorsementIntegration());
- ui->hideAPICounterBox->setChecked(parent->hideAPICounter());
+ ui->offlineBox->setChecked(settings().offlineMode());
+ ui->proxyBox->setChecked(settings().useProxy());
+ ui->endorsementBox->setChecked(settings().endorsementIntegration());
+ ui->hideAPICounterBox->setChecked(settings().hideAPICounter());
// display server preferences
- m_Settings.beginGroup("Servers");
- for (const QString &key : m_Settings.childKeys()) {
- QVariantMap val = m_Settings.value(key).toMap();
+ qsettings().beginGroup("Servers");
+ for (const QString &key : qsettings().childKeys()) {
+ QVariantMap val = qsettings().value(key).toMap();
QString descriptor = key;
if (!descriptor.compare("CDN", Qt::CaseInsensitive)) {
descriptor += QStringLiteral(" (automatic)");
@@ -101,7 +101,7 @@ NexusSettingsTab::NexusSettingsTab(Settings *parent, SettingsDialog &dialog)
}
ui->preferredServersList->sortItems(Qt::DescendingOrder);
}
- m_Settings.endGroup();
+ qsettings().endGroup();
QObject::connect(ui->nexusConnect, &QPushButton::clicked, [&]{ on_nexusConnect_clicked(); });
QObject::connect(ui->nexusManualKey, &QPushButton::clicked, [&]{ on_nexusManualKey_clicked(); });
@@ -114,27 +114,27 @@ NexusSettingsTab::NexusSettingsTab(Settings *parent, SettingsDialog &dialog)
void NexusSettingsTab::update()
{
- m_Settings.setValue("Settings/offline_mode", ui->offlineBox->isChecked());
- m_Settings.setValue("Settings/use_proxy", ui->proxyBox->isChecked());
- m_Settings.setValue("Settings/endorsement_integration", ui->endorsementBox->isChecked());
- m_Settings.setValue("Settings/hide_api_counter", ui->hideAPICounterBox->isChecked());
+ qsettings().setValue("Settings/offline_mode", ui->offlineBox->isChecked());
+ qsettings().setValue("Settings/use_proxy", ui->proxyBox->isChecked());
+ qsettings().setValue("Settings/endorsement_integration", ui->endorsementBox->isChecked());
+ qsettings().setValue("Settings/hide_api_counter", ui->hideAPICounterBox->isChecked());
// store server preference
- m_Settings.beginGroup("Servers");
+ qsettings().beginGroup("Servers");
for (int i = 0; i < ui->knownServersList->count(); ++i) {
QString key = ui->knownServersList->item(i)->data(Qt::UserRole).toString();
- QVariantMap val = m_Settings.value(key).toMap();
+ QVariantMap val = qsettings().value(key).toMap();
val["preferred"] = 0;
- m_Settings.setValue(key, val);
+ qsettings().setValue(key, val);
}
int count = ui->preferredServersList->count();
for (int i = 0; i < count; ++i) {
QString key = ui->preferredServersList->item(i)->data(Qt::UserRole).toString();
- QVariantMap val = m_Settings.value(key).toMap();
+ QVariantMap val = qsettings().value(key).toMap();
val["preferred"] = count - i;
- m_Settings.setValue(key, val);
+ qsettings().setValue(key, val);
}
- m_Settings.endGroup();
+ qsettings().endGroup();
}
void NexusSettingsTab::on_nexusConnect_clicked()
@@ -168,12 +168,12 @@ void NexusSettingsTab::on_nexusManualKey_clicked()
return;
}
- NexusManualKeyDialog dialog(parentWidget());
- if (dialog.exec() != QDialog::Accepted) {
+ NexusManualKeyDialog d(&dialog());
+ if (d.exec() != QDialog::Accepted) {
return;
}
- const auto key = dialog.key();
+ const auto key = d.key();
if (key.isEmpty()) {
clearKey();
return;
@@ -193,7 +193,7 @@ void NexusSettingsTab::on_nexusDisconnect_clicked()
void NexusSettingsTab::on_clearCacheButton_clicked()
{
QDir(Settings::instance().getCacheDirectory()).removeRecursively();
- NexusInterface::instance(m_dialog.m_PluginContainer)->clearCache();
+ NexusInterface::instance(dialog().m_PluginContainer)->clearCache();
}
void NexusSettingsTab::on_associateButton_clicked()
@@ -205,7 +205,7 @@ void NexusSettingsTab::validateKey(const QString& key)
{
if (!m_nexusValidator) {
m_nexusValidator.reset(new NexusKeyValidator(
- *NexusInterface::instance(m_dialog.m_PluginContainer)->getAccessManager()));
+ *NexusInterface::instance(dialog().m_PluginContainer)->getAccessManager()));
m_nexusValidator->stateChanged = [&](auto&& s, auto&& e){
onValidatorStateChanged(s, e);
@@ -261,7 +261,7 @@ void NexusSettingsTab::onValidatorStateChanged(
void NexusSettingsTab::onValidatorFinished(const APIUserAccount& user)
{
- NexusInterface::instance(m_dialog.m_PluginContainer)->setUserAccount(user);
+ NexusInterface::instance(dialog().m_PluginContainer)->setUserAccount(user);
if (!user.apiKey().isEmpty()) {
if (setKey(user.apiKey())) {
@@ -278,18 +278,18 @@ void NexusSettingsTab::addNexusLog(const QString& s)
bool NexusSettingsTab::setKey(const QString& key)
{
- m_dialog.m_keyChanged = true;
- const bool ret = m_parent->setNexusApiKey(key);
+ dialog().m_keyChanged = true;
+ const bool ret = settings().setNexusApiKey(key);
updateNexusState();
return ret;
}
bool NexusSettingsTab::clearKey()
{
- m_dialog.m_keyChanged = true;
- const auto ret = m_parent->clearNexusApiKey();
+ dialog().m_keyChanged = true;
+ const auto ret = settings().clearNexusApiKey();
- NexusInterface::instance(m_dialog.m_PluginContainer)->getAccessManager()->clearApiKey();
+ NexusInterface::instance(dialog().m_PluginContainer)->getAccessManager()->clearApiKey();
updateNexusState();
return ret;
@@ -319,7 +319,7 @@ void NexusSettingsTab::updateNexusButtons()
ui->nexusManualKey->setText(QObject::tr("Cancel"));
ui->nexusManualKey->setEnabled(true);
}
- else if (m_parent->hasNexusApiKey()) {
+ else if (settings().hasNexusApiKey()) {
// api key is present
ui->nexusConnect->setText(QObject::tr("Connect to Nexus"));
ui->nexusConnect->setEnabled(false);
@@ -338,7 +338,7 @@ void NexusSettingsTab::updateNexusButtons()
void NexusSettingsTab::updateNexusData()
{
- const auto user = NexusInterface::instance(m_dialog.m_PluginContainer)
+ const auto user = NexusInterface::instance(dialog().m_PluginContainer)
->getAPIUserAccount();
if (user.isValid()) {
diff --git a/src/settingsdialognexus.h b/src/settingsdialognexus.h
index cca2e1b5..89a6618f 100644
--- a/src/settingsdialognexus.h
+++ b/src/settingsdialognexus.h
@@ -8,7 +8,7 @@
class NexusSettingsTab : public SettingsTab
{
public:
- NexusSettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
+ NexusSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
private:
diff --git a/src/settingsdialogpaths.cpp b/src/settingsdialogpaths.cpp
index 6e8fe994..290ceeb3 100644
--- a/src/settingsdialogpaths.cpp
+++ b/src/settingsdialogpaths.cpp
@@ -3,19 +3,19 @@
#include "appconfig.h"
#include
-PathsSettingsTab::PathsSettingsTab(Settings *parent, SettingsDialog &dialog)
- : SettingsTab(parent, dialog)
+PathsSettingsTab::PathsSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
- ui->baseDirEdit->setText(m_parent->getBaseDirectory());
- ui->managedGameDirEdit->setText(m_parent->gamePlugin()->gameDirectory().absoluteFilePath(m_parent->gamePlugin()->binaryName()));
- QString basePath = parent->getBaseDirectory();
+ ui->baseDirEdit->setText(settings().getBaseDirectory());
+ ui->managedGameDirEdit->setText(settings().gamePlugin()->gameDirectory().absoluteFilePath(settings().gamePlugin()->binaryName()));
+ QString basePath = settings().getBaseDirectory();
QDir baseDir(basePath);
for (const auto &dir : {
- std::make_pair(ui->downloadDirEdit, m_parent->getDownloadDirectory(false)),
- std::make_pair(ui->modDirEdit, m_parent->getModDirectory(false)),
- std::make_pair(ui->cacheDirEdit, m_parent->getCacheDirectory(false)),
- std::make_pair(ui->profilesDirEdit, m_parent->getProfileDirectory(false)),
- std::make_pair(ui->overwriteDirEdit, m_parent->getOverwriteDirectory(false))
+ std::make_pair(ui->downloadDirEdit, settings().getDownloadDirectory(false)),
+ std::make_pair(ui->modDirEdit, settings().getModDirectory(false)),
+ std::make_pair(ui->cacheDirEdit, settings().getCacheDirectory(false)),
+ std::make_pair(ui->profilesDirEdit, settings().getProfileDirectory(false)),
+ std::make_pair(ui->overwriteDirEdit, settings().getOverwriteDirectory(false))
}) {
QString storePath = baseDir.relativeFilePath(dir.second);
storePath = dir.second;
@@ -42,7 +42,7 @@ void PathsSettingsTab::update()
{
typedef std::tuple Directory;
- QString basePath = m_parent->getBaseDirectory();
+ QString basePath = settings().getBaseDirectory();
for (const Directory &dir :{
Directory{ui->downloadDirEdit->text(), "download_directory", AppConfig::downloadPath()},
@@ -71,30 +71,30 @@ void PathsSettingsTab::update()
if (QFileInfo(realPath)
!= QFileInfo(basePath + "/" + QString::fromStdWString(defaultName))) {
- m_Settings.setValue(settingsKey, path);
+ qsettings().setValue(settingsKey, path);
} else {
- m_Settings.remove(settingsKey);
+ qsettings().remove(settingsKey);
}
}
if (QFileInfo(ui->baseDirEdit->text()) !=
QFileInfo(qApp->property("dataPath").toString())) {
- m_Settings.setValue("Settings/base_directory", ui->baseDirEdit->text());
+ qsettings().setValue("Settings/base_directory", ui->baseDirEdit->text());
} else {
- m_Settings.remove("Settings/base_directory");
+ qsettings().remove("Settings/base_directory");
}
- QFileInfo oldGameExe(m_parent->gamePlugin()->gameDirectory().absoluteFilePath(m_parent->gamePlugin()->binaryName()));
+ QFileInfo oldGameExe(settings().gamePlugin()->gameDirectory().absoluteFilePath(settings().gamePlugin()->binaryName()));
QFileInfo newGameExe(ui->managedGameDirEdit->text());
if (oldGameExe != newGameExe) {
- m_Settings.setValue("gamePath", newGameExe.absolutePath());
+ qsettings().setValue("gamePath", newGameExe.absolutePath());
}
}
void PathsSettingsTab::on_browseBaseDirBtn_clicked()
{
QString temp = QFileDialog::getExistingDirectory(
- parentWidget(), QObject::tr("Select base directory"), ui->baseDirEdit->text());
+ &dialog(), QObject::tr("Select base directory"), ui->baseDirEdit->text());
if (!temp.isEmpty()) {
ui->baseDirEdit->setText(temp);
}
@@ -105,7 +105,7 @@ void PathsSettingsTab::on_browseDownloadDirBtn_clicked()
QString searchPath = ui->downloadDirEdit->text();
searchPath.replace("%BASE_DIR%", ui->baseDirEdit->text());
- QString temp = QFileDialog::getExistingDirectory(parentWidget(), QObject::tr("Select download directory"), searchPath);
+ QString temp = QFileDialog::getExistingDirectory(&dialog(), QObject::tr("Select download directory"), searchPath);
if (!temp.isEmpty()) {
ui->downloadDirEdit->setText(temp);
}
@@ -116,7 +116,7 @@ void PathsSettingsTab::on_browseModDirBtn_clicked()
QString searchPath = ui->modDirEdit->text();
searchPath.replace("%BASE_DIR%", ui->baseDirEdit->text());
- QString temp = QFileDialog::getExistingDirectory(parentWidget(), QObject::tr("Select mod directory"), searchPath);
+ QString temp = QFileDialog::getExistingDirectory(&dialog(), QObject::tr("Select mod directory"), searchPath);
if (!temp.isEmpty()) {
ui->modDirEdit->setText(temp);
}
@@ -127,7 +127,7 @@ void PathsSettingsTab::on_browseCacheDirBtn_clicked()
QString searchPath = ui->cacheDirEdit->text();
searchPath.replace("%BASE_DIR%", ui->baseDirEdit->text());
- QString temp = QFileDialog::getExistingDirectory(parentWidget(), QObject::tr("Select cache directory"), searchPath);
+ QString temp = QFileDialog::getExistingDirectory(&dialog(), QObject::tr("Select cache directory"), searchPath);
if (!temp.isEmpty()) {
ui->cacheDirEdit->setText(temp);
}
@@ -138,7 +138,7 @@ void PathsSettingsTab::on_browseProfilesDirBtn_clicked()
QString searchPath = ui->profilesDirEdit->text();
searchPath.replace("%BASE_DIR%", ui->baseDirEdit->text());
- QString temp = QFileDialog::getExistingDirectory(parentWidget(), QObject::tr("Select profiles directory"), searchPath);
+ QString temp = QFileDialog::getExistingDirectory(&dialog(), QObject::tr("Select profiles directory"), searchPath);
if (!temp.isEmpty()) {
ui->profilesDirEdit->setText(temp);
}
@@ -149,7 +149,7 @@ void PathsSettingsTab::on_browseOverwriteDirBtn_clicked()
QString searchPath = ui->overwriteDirEdit->text();
searchPath.replace("%BASE_DIR%", ui->baseDirEdit->text());
- QString temp = QFileDialog::getExistingDirectory(parentWidget(), QObject::tr("Select overwrite directory"), searchPath);
+ QString temp = QFileDialog::getExistingDirectory(&dialog(), QObject::tr("Select overwrite directory"), searchPath);
if (!temp.isEmpty()) {
ui->overwriteDirEdit->setText(temp);
}
@@ -159,7 +159,7 @@ void PathsSettingsTab::on_browseGameDirBtn_clicked()
{
QFileInfo oldGameExe(ui->managedGameDirEdit->text());
- QString temp = QFileDialog::getOpenFileName(parentWidget(), QObject::tr("Select game executable"), oldGameExe.absolutePath(), oldGameExe.fileName());
+ QString temp = QFileDialog::getOpenFileName(&dialog(), QObject::tr("Select game executable"), oldGameExe.absolutePath(), oldGameExe.fileName());
if (!temp.isEmpty()) {
ui->managedGameDirEdit->setText(temp);
}
diff --git a/src/settingsdialogpaths.h b/src/settingsdialogpaths.h
index f661b624..a2073188 100644
--- a/src/settingsdialogpaths.h
+++ b/src/settingsdialogpaths.h
@@ -7,8 +7,7 @@
class PathsSettingsTab : public SettingsTab
{
public:
- PathsSettingsTab(Settings *parent, SettingsDialog &dialog);
-
+ PathsSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
private:
diff --git a/src/settingsdialogplugins.cpp b/src/settingsdialogplugins.cpp
index 53b28fcc..329ba301 100644
--- a/src/settingsdialogplugins.cpp
+++ b/src/settingsdialogplugins.cpp
@@ -5,26 +5,26 @@
using MOBase::IPlugin;
-PluginsSettingsTab::PluginsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+PluginsSettingsTab::PluginsSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
ui->pluginSettingsList->setStyleSheet("QTreeWidget::item {padding-right: 10px;}");
// display plugin settings
QSet handledNames;
- for (IPlugin *plugin : m_parent->plugins()) {
+ for (IPlugin *plugin : settings().plugins()) {
if (handledNames.contains(plugin->name()))
continue;
QListWidgetItem *listItem = new QListWidgetItem(plugin->name(), ui->pluginsList);
listItem->setData(Qt::UserRole, QVariant::fromValue((void*)plugin));
- listItem->setData(Qt::UserRole + 1, m_parent->m_PluginSettings[plugin->name()]);
- listItem->setData(Qt::UserRole + 2, m_parent->m_PluginDescriptions[plugin->name()]);
+ listItem->setData(Qt::UserRole + 1, settings().m_PluginSettings[plugin->name()]);
+ listItem->setData(Qt::UserRole + 2, settings().m_PluginDescriptions[plugin->name()]);
ui->pluginsList->addItem(listItem);
handledNames.insert(plugin->name());
}
// display plugin blacklist
- for (const QString &pluginName : m_parent->m_PluginBlacklist) {
+ for (const QString &pluginName : settings().m_PluginBlacklist) {
ui->pluginBlacklist->addItem(pluginName);
}
@@ -34,7 +34,7 @@ PluginsSettingsTab::PluginsSettingsTab(Settings *m_parent, SettingsDialog &m_dia
QShortcut *delShortcut = new QShortcut(
QKeySequence(Qt::Key_Delete), ui->pluginBlacklist);
- QObject::connect(delShortcut, &QShortcut::activated, parentWidget(), [&]{ deleteBlacklistItem(); });
+ QObject::connect(delShortcut, &QShortcut::activated, &dialog(), [&]{ deleteBlacklistItem(); });
}
void PluginsSettingsTab::update()
@@ -42,21 +42,21 @@ void PluginsSettingsTab::update()
// transfer plugin settings to in-memory structure
for (int i = 0; i < ui->pluginsList->count(); ++i) {
QListWidgetItem *item = ui->pluginsList->item(i);
- m_parent->m_PluginSettings[item->text()] = item->data(Qt::UserRole + 1).toMap();
+ settings().m_PluginSettings[item->text()] = item->data(Qt::UserRole + 1).toMap();
}
// store plugin settings on disc
- for (auto iterPlugins = m_parent->m_PluginSettings.begin(); iterPlugins != m_parent->m_PluginSettings.end(); ++iterPlugins) {
+ for (auto iterPlugins = settings().m_PluginSettings.begin(); iterPlugins != settings().m_PluginSettings.end(); ++iterPlugins) {
for (auto iterSettings = iterPlugins->begin(); iterSettings != iterPlugins->end(); ++iterSettings) {
- m_Settings.setValue("Plugins/" + iterPlugins.key() + "/" + iterSettings.key(), iterSettings.value());
+ qsettings().setValue("Plugins/" + iterPlugins.key() + "/" + iterSettings.key(), iterSettings.value());
}
}
// store plugin blacklist
- m_parent->m_PluginBlacklist.clear();
+ settings().m_PluginBlacklist.clear();
for (QListWidgetItem *item : ui->pluginBlacklist->findItems("*", Qt::MatchWildcard)) {
- m_parent->m_PluginBlacklist.insert(item->text());
+ settings().m_PluginBlacklist.insert(item->text());
}
- m_parent->writePluginBlacklist();
+ settings().writePluginBlacklist();
}
void PluginsSettingsTab::closing()
diff --git a/src/settingsdialogplugins.h b/src/settingsdialogplugins.h
index 9d21daa6..8e2dae2a 100644
--- a/src/settingsdialogplugins.h
+++ b/src/settingsdialogplugins.h
@@ -7,7 +7,7 @@
class PluginsSettingsTab : public SettingsTab
{
public:
- PluginsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
+ PluginsSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
void closing() override;
diff --git a/src/settingsdialogsteam.cpp b/src/settingsdialogsteam.cpp
index 34c2d76b..9ed93e47 100644
--- a/src/settingsdialogsteam.cpp
+++ b/src/settingsdialogsteam.cpp
@@ -1,11 +1,11 @@
#include "settingsdialogsteam.h"
#include "ui_settingsdialog.h"
-SteamSettingsTab::SteamSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+SteamSettingsTab::SteamSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
QString username, password;
- m_parent->getSteamLogin(username, password);
+ settings().getSteamLogin(username, password);
ui->steamUserEdit->setText(username);
ui->steamPassEdit->setText(password);
@@ -13,5 +13,5 @@ SteamSettingsTab::SteamSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
void SteamSettingsTab::update()
{
- m_parent->setSteamLogin(ui->steamUserEdit->text(), ui->steamPassEdit->text());
+ settings().setSteamLogin(ui->steamUserEdit->text(), ui->steamPassEdit->text());
}
diff --git a/src/settingsdialogsteam.h b/src/settingsdialogsteam.h
index dbd85151..6a3d75f4 100644
--- a/src/settingsdialogsteam.h
+++ b/src/settingsdialogsteam.h
@@ -7,11 +7,8 @@
class SteamSettingsTab : public SettingsTab
{
public:
- SteamSettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
-
+ SteamSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
-
-private:
};
#endif // SETTINGSDIALOGSTEAM_H
diff --git a/src/settingsdialogworkarounds.cpp b/src/settingsdialogworkarounds.cpp
index fc859289..443ba54e 100644
--- a/src/settingsdialogworkarounds.cpp
+++ b/src/settingsdialogworkarounds.cpp
@@ -3,15 +3,15 @@
#include "helper.h"
#include
-WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog)
- : SettingsTab(m_parent, m_dialog)
+WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings& s, SettingsDialog& d)
+ : SettingsTab(s, d)
{
- ui->appIDEdit->setText(m_parent->getSteamAppID());
+ ui->appIDEdit->setText(settings().getSteamAppID());
- LoadMechanism::EMechanism mechanismID = m_parent->getLoadMechanism();
+ LoadMechanism::EMechanism mechanismID = settings().getLoadMechanism();
int index = 0;
- if (m_parent->loadMechanism().isDirectLoadingSupported()) {
+ if (settings().loadMechanism().isDirectLoadingSupported()) {
ui->mechanismBox->addItem(QObject::tr("Mod Organizer"), LoadMechanism::LOAD_MODORGANIZER);
if (mechanismID == LoadMechanism::LOAD_MODORGANIZER) {
index = ui->mechanismBox->count() - 1;
@@ -20,13 +20,13 @@ WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings *m_parent, SettingsDialo
ui->mechanismBox->setCurrentIndex(index);
- ui->hideUncheckedBox->setChecked(m_parent->hideUncheckedPlugins());
- ui->forceEnableBox->setChecked(m_parent->forceEnableCoreFiles());
- ui->displayForeignBox->setChecked(m_parent->displayForeign());
- ui->lockGUIBox->setChecked(m_parent->lockGUI());
- ui->enableArchiveParsingBox->setChecked(m_parent->archiveParsing());
+ ui->hideUncheckedBox->setChecked(settings().hideUncheckedPlugins());
+ ui->forceEnableBox->setChecked(settings().forceEnableCoreFiles());
+ ui->displayForeignBox->setChecked(settings().displayForeign());
+ ui->lockGUIBox->setChecked(settings().lockGUI());
+ ui->enableArchiveParsingBox->setChecked(settings().archiveParsing());
- setExecutableBlacklist(m_parent->executablesBlacklist());
+ setExecutableBlacklist(settings().executablesBlacklist());
QObject::connect(ui->bsaDateBtn, &QPushButton::clicked, [&]{ on_bsaDateBtn_clicked(); });
QObject::connect(ui->execBlacklistBtn, &QPushButton::clicked, [&]{ on_execBlacklistBtn_clicked(); });
@@ -35,26 +35,26 @@ WorkaroundsSettingsTab::WorkaroundsSettingsTab(Settings *m_parent, SettingsDialo
void WorkaroundsSettingsTab::update()
{
- if (ui->appIDEdit->text() != m_parent->gamePlugin()->steamAPPId()) {
- m_Settings.setValue("Settings/app_id", ui->appIDEdit->text());
+ if (ui->appIDEdit->text() != settings().gamePlugin()->steamAPPId()) {
+ qsettings().setValue("Settings/app_id", ui->appIDEdit->text());
} else {
- m_Settings.remove("Settings/app_id");
+ qsettings().remove("Settings/app_id");
}
- m_Settings.setValue("Settings/load_mechanism", ui->mechanismBox->itemData(ui->mechanismBox->currentIndex()).toInt());
- m_Settings.setValue("Settings/hide_unchecked_plugins", ui->hideUncheckedBox->isChecked());
- m_Settings.setValue("Settings/force_enable_core_files", ui->forceEnableBox->isChecked());
- m_Settings.setValue("Settings/display_foreign", ui->displayForeignBox->isChecked());
- m_Settings.setValue("Settings/lock_gui", ui->lockGUIBox->isChecked());
- m_Settings.setValue("Settings/archive_parsing_experimental", ui->enableArchiveParsingBox->isChecked());
+ qsettings().setValue("Settings/load_mechanism", ui->mechanismBox->itemData(ui->mechanismBox->currentIndex()).toInt());
+ qsettings().setValue("Settings/hide_unchecked_plugins", ui->hideUncheckedBox->isChecked());
+ qsettings().setValue("Settings/force_enable_core_files", ui->forceEnableBox->isChecked());
+ qsettings().setValue("Settings/display_foreign", ui->displayForeignBox->isChecked());
+ qsettings().setValue("Settings/lock_gui", ui->lockGUIBox->isChecked());
+ qsettings().setValue("Settings/archive_parsing_experimental", ui->enableArchiveParsingBox->isChecked());
- m_Settings.setValue("Settings/executable_blacklist", getExecutableBlacklist());
+ qsettings().setValue("Settings/executable_blacklist", getExecutableBlacklist());
}
void WorkaroundsSettingsTab::on_execBlacklistBtn_clicked()
{
bool ok = false;
QString result = QInputDialog::getMultiLineText(
- parentWidget(),
+ &dialog(),
QObject::tr("Executables Blacklist"),
QObject::tr("Enter one executable per line to be blacklisted from the virtual file system.\n"
"Mods and other virtualized files will not be visible to these executables and\n"
@@ -96,7 +96,7 @@ void WorkaroundsSettingsTab::on_resetGeometryBtn_clicked()
nullptr, caption, text, QMessageBox::Yes | QMessageBox::Cancel);
if (res == QMessageBox::Yes) {
- m_parent->geometry().requestReset();
+ settings().geometry().requestReset();
qApp->exit(INT_MAX);
}
}
diff --git a/src/settingsdialogworkarounds.h b/src/settingsdialogworkarounds.h
index 1687624b..d5d6815f 100644
--- a/src/settingsdialogworkarounds.h
+++ b/src/settingsdialogworkarounds.h
@@ -7,8 +7,7 @@
class WorkaroundsSettingsTab : public SettingsTab
{
public:
- WorkaroundsSettingsTab(Settings *m_parent, SettingsDialog &m_dialog);
-
+ WorkaroundsSettingsTab(Settings& settings, SettingsDialog& dialog);
void update();
private:
--
cgit v1.3.1