diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-20 05:34:31 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-22 07:39:53 -0400 |
| commit | 3c7712a32dd5079a9543485b6a85d548460faefd (patch) | |
| tree | 17df829b4e6f4a96f2567381adca29b8cd45e9a0 /src/loglist.cpp | |
| parent | 5304d52f9373e0078674af79b656e2e4d010ca90 (diff) | |
moved setLogLevel() to OrganizerCore
moved context menu to LogList
Diffstat (limited to 'src/loglist.cpp')
| -rw-r--r-- | src/loglist.cpp | 61 |
1 files changed, 52 insertions, 9 deletions
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 <http://www.gnu.org/licenses/>. */
#include "loglist.h"
-#include <scopeguard.h>
-#include <report.h>
-#include <log.h>
-#include <QMutexLocker>
-#include <QFile>
-#include <QIcon>
-#include <QDateTime>
-#include <Windows.h>
+#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());
@@ -172,6 +165,10 @@ LogList::LogList(QWidget* parent) 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));
+}
|
