summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-07-17 08:56:16 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-22 07:33:37 -0400
commitbca6283311cf1dea4c96f8ee5bf192bdb1640cb3 (patch)
tree7a6b0445974a974bf4b03d08d4ac9371de0ea663 /src/mainwindow.cpp
parentd1b4dec8ad1635738ada3dfbde5907e7f0df3448 (diff)
use log::Levels instead of ints
create log level combobox in code, set selected index based on value instead added log level to context menu in log list
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp47
1 files changed, 44 insertions, 3 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 4e91ef9f..f65bf4e1 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -357,7 +357,7 @@ MainWindow::MainWindow(QSettings &initSettings
m_CategoryFactory.loadCategories();
- ui->logList->addAction(ui->actionCopy_Log_to_Clipboard);
+ setupLogMenu();
int splitterSize = this->size().height(); // actually total window size, but the splitter doesn't seem to return the true value
ui->topLevelSplitter->setSizes(QList<int>() << splitterSize - 100 << 100);
@@ -812,6 +812,36 @@ 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("&Errors"), log::Error);
+ addAction(tr("&Warnings"), log::Warning);
+ addAction(tr("&Info"), log::Info);
+ addAction(tr("&Debug"), log::Debug);
+
+ menu->popup(ui->logList->viewport()->mapToGlobal(pos));
+ });
+}
+
void MainWindow::updatePinnedExecutables()
{
for (auto* a : ui->toolBar->actions()) {
@@ -5287,12 +5317,23 @@ void MainWindow::on_actionSettings_triggered()
m_statusBar->checkSettings(m_OrganizerCore.settings());
updateDownloadView();
- m_OrganizerCore.updateVFSParams(settings.logLevel(), settings.crashDumpsType(), settings.executablesBlacklist());
+ 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()
{
@@ -6811,7 +6852,7 @@ void MainWindow::on_restoreModsButton_clicked()
}
}
-void MainWindow::on_actionCopy_Log_to_Clipboard_triggered()
+void MainWindow::on_actionLogCopy_triggered()
{
ui->logList->copyToClipboard();
}