diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-22 08:26:29 -0500 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-22 08:26:29 -0500 |
| commit | 0faf628e928a7caf46aeecff2a15dd2bcd2726fe (patch) | |
| tree | 4d83ed93441f7e1a0016f4de878a997e3e774153 /src | |
| parent | d05df3bb7c467bceca4b8b8f9fb863cdc51b0e38 (diff) | |
open json report button
Diffstat (limited to 'src')
| -rw-r--r-- | src/loot.cpp | 36 | ||||
| -rw-r--r-- | src/loot.h | 1 |
2 files changed, 34 insertions, 3 deletions
diff --git a/src/loot.cpp b/src/loot.cpp index 8345fc63..35ac9cff 100644 --- a/src/loot.cpp +++ b/src/loot.cpp @@ -37,6 +37,7 @@ public: LootDialog(QWidget* parent, OrganizerCore& core, Loot& loot) : QDialog(parent), m_core(core), m_loot(loot), m_label(nullptr), m_progress(nullptr), m_buttons(nullptr), + m_report(nullptr), m_output(nullptr), m_finished(false), m_cancelling(false) { createUI(); @@ -138,9 +139,10 @@ public: return QDialog::exec(); } - void onError(const QString& s) + void openReport() { - reportError(s); + const auto path = m_loot.outPath(); + shell::Open(path); } private: @@ -149,6 +151,7 @@ private: QLabel* m_label; QProgressBar* m_progress; QDialogButtonBox* m_buttons; + QPushButton* m_report; QPlainTextEdit* m_output; bool m_finished; bool m_cancelling; @@ -168,6 +171,27 @@ private: m_progress = new QProgressBar; ly->addWidget(m_progress); + auto* more = createMoreUI(); + ly->addWidget(more); + + resize(700, 400); + } + + QWidget* createMoreUI() + { + auto* more = new QWidget; + auto* ly = new QVBoxLayout(more); + ly->setContentsMargins(0, 0, 0, 0); + + auto* buttons = new QHBoxLayout; + buttons->setContentsMargins(0, 0, 0, 0); + m_report = new QPushButton(tr("Open JSON report")); + m_report->setEnabled(false); + connect(m_report, &QPushButton::clicked, [&]{ openReport(); }); + buttons->addWidget(m_report); + buttons->addStretch(1); + ly->addLayout(buttons); + m_output = new QPlainTextEdit; m_output->setWordWrapMode(QTextOption::NoWrap); ly->addWidget(m_output); @@ -176,7 +200,7 @@ private: connect(m_buttons, &QDialogButtonBox::clicked, [&](auto* b){ onButton(b); }); ly->addWidget(m_buttons); - resize(700, 400); + return more; } void closeEvent(QCloseEvent* e) override @@ -212,6 +236,7 @@ private: if (m_cancelling) { close(); } else { + m_report->setEnabled(true); m_buttons->setStandardButtons(QDialogButtonBox::Close); } } @@ -321,6 +346,11 @@ bool Loot::result() const return m_result; } +const QString& Loot::outPath() const +{ + return m_outPath; +} + void Loot::lootThread() { try { @@ -23,6 +23,7 @@ public: bool start(QWidget* parent, OrganizerCore& core, bool didUpdateMasterList); void cancel(); bool result() const; + const QString& outPath() const; signals: void output(const QString& s); |
