qtui: Make the debug log a proper dialog
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 6 Nov 2018 22:46:33 +0000 (23:46 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 7 Nov 2018 13:11:15 +0000 (14:11 +0100)
For some reason unbeknownst and shrouded in ancient mystery, the
debug log was displayed in a naked widget, which caused it to not
be rendered in a window when using not-so-smart window managers
(such as Windows™).

Make the debug log a proper dialog, and also fix the close button
not being part of a platform-agnostic QDialogButtonBox, while we're
at it.

src/qtui/CMakeLists.txt
src/qtui/debuglogdlg.cpp [moved from src/qtui/debuglogwidget.cpp with 90% similarity]
src/qtui/debuglogdlg.h [moved from src/qtui/debuglogwidget.h with 92% similarity]
src/qtui/mainwin.cpp
src/qtui/ui/debuglogdlg.ui [new file with mode: 0644]
src/qtui/ui/debuglogwidget.ui [deleted file]

index 0a5a3ad..3861d60 100644 (file)
@@ -25,7 +25,7 @@ set(SOURCES
     coresessionwidget.cpp
     debugbufferviewoverlay.cpp
     debugconsole.cpp
-    debuglogwidget.cpp
+    debuglogdlg.cpp
     debugmessagemodelfilter.cpp
     inputwidget.cpp
     ircconnectionwizard.cpp
@@ -72,7 +72,7 @@ set(FORMS
     coresessionwidget.ui
     debugbufferviewoverlay.ui
     debugconsole.ui
-    debuglogwidget.ui
+    debuglogdlg.ui
     inputwidget.ui
     msgprocessorstatuswidget.ui
     nicklistwidget.ui
similarity index 90%
rename from src/qtui/debuglogwidget.cpp
rename to src/qtui/debuglogdlg.cpp
index 83a5e09..bebe26b 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#include "debuglogwidget.h"
+#include "debuglogdlg.h"
 
 #include "quassel.h"
 
-DebugLogWidget::DebugLogWidget(QWidget *parent)
-    : QWidget(parent)
+DebugLogDlg::DebugLogDlg(QWidget *parent)
+    : QDialog(parent)
 {
     ui.setupUi(this);
     setAttribute(Qt::WA_DeleteOnClose, true);
@@ -41,13 +41,13 @@ DebugLogWidget::DebugLogWidget(QWidget *parent)
 }
 
 
-QString DebugLogWidget::toString(const Logger::LogEntry &msg)
+QString DebugLogDlg::toString(const Logger::LogEntry &msg)
 {
     return msg.timeStamp.toString("yyyy-MM-dd hh:mm:ss ") + msg.message + "\n";
 }
 
 
-void DebugLogWidget::logUpdated(const Logger::LogEntry &msg)
+void DebugLogDlg::logUpdated(const Logger::LogEntry &msg)
 {
     ui.textEdit->moveCursor(QTextCursor::End);
     ui.textEdit->insertPlainText(toString(msg));
similarity index 92%
rename from src/qtui/debuglogwidget.h
rename to src/qtui/debuglogdlg.h
index 5bffad9..faf0584 100644 (file)
 
 #include "logger.h"
 
-#include "ui_debuglogwidget.h"
+#include "ui_debuglogdlg.h"
 
-class DebugLogWidget : public QWidget
+class DebugLogDlg : public QDialog
 {
     Q_OBJECT
 
 public:
-    DebugLogWidget(QWidget *parent = 0);
+    DebugLogDlg(QWidget *parent = 0);
 
 private slots:
     void logUpdated(const Logger::LogEntry &msg);
@@ -41,5 +41,5 @@ private:
     QString toString(const Logger::LogEntry &msg);
 
 private:
-    Ui::DebugLogWidget ui;
+    Ui::DebugLogDlg ui;
 };
index fd27f80..e06d28b 100644 (file)
@@ -79,7 +79,7 @@
 #include "coreinfodlg.h"
 #include "contextmenuactionprovider.h"
 #include "debugbufferviewoverlay.h"
-#include "debuglogwidget.h"
+#include "debuglogdlg.h"
 #include "debugmessagemodelfilter.h"
 #include "flatproxymodel.h"
 #include "icon.h"
@@ -1998,8 +1998,8 @@ void MainWin::on_actionDebugMessageModel_triggered()
 
 void MainWin::on_actionDebugLog_triggered()
 {
-    DebugLogWidget *logWidget = new DebugLogWidget(nullptr);  // will be deleted on close
-    logWidget->show();
+    auto dlg = new DebugLogDlg(this);
+    dlg->show();
 }
 
 
diff --git a/src/qtui/ui/debuglogdlg.ui b/src/qtui/ui/debuglogdlg.ui
new file mode 100644 (file)
index 0000000..c51fa24
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DebugLogDlg</class>
+ <widget class="QDialog" name="DebugLogDlg">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Debug Log</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QTextEdit" name="textEdit"/>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>DebugLogDlg</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>DebugLogDlg</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/src/qtui/ui/debuglogwidget.ui b/src/qtui/ui/debuglogwidget.ui
deleted file mode 100644 (file)
index fc853c5..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<ui version="4.0" >
- <class>DebugLogWidget</class>
- <widget class="QWidget" name="DebugLogWidget" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>Debug Log</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout" >
-   <property name="spacing" >
-    <number>0</number>
-   </property>
-   <property name="margin" >
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="QTextEdit" name="textEdit" />
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout" >
-     <item>
-      <spacer name="horizontalSpacer" >
-       <property name="orientation" >
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0" >
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="pushButton" >
-       <property name="text" >
-        <string>Close</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2" >
-       <property name="orientation" >
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0" >
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>pushButton</sender>
-   <signal>clicked()</signal>
-   <receiver>DebugLogWidget</receiver>
-   <slot>close()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>217</x>
-     <y>284</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>179</x>
-     <y>-16</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>