[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:05:38 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=c62311d

The following commit has been merged in the master branch:
commit c62311d5aa14b40f9dfc626e074dc70ab373d72f
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Thu Oct 11 14:10:42 2012 +0100

    Replace ListView with QTextEdit in ktp-debugger
    
    This makes it magnitudes times faster. Also allows for selecting text and copy+paste into bug reports/attachments
    
    REVIEW: 106809
    
    BUG: 308204
    FIXED-IN: 0.5.2
---
 tools/debugger/CMakeLists.txt                      |   2 +-
 ...g-messages-model.cpp => debug-message-view.cpp} | 137 ++++++---------------
 ...debug-messages-model.h => debug-message-view.h} |  30 ++---
 tools/debugger/main-window.cpp                     |  11 +-
 tools/debugger/main-window.ui                      |  41 ++----
 5 files changed, 67 insertions(+), 154 deletions(-)

diff --git a/tools/debugger/CMakeLists.txt b/tools/debugger/CMakeLists.txt
index 159b124..08d80d9 100644
--- a/tools/debugger/CMakeLists.txt
+++ b/tools/debugger/CMakeLists.txt
@@ -8,7 +8,7 @@ include_directories(
 
 set(ktp-debugger_SRCS
     main-window.cpp
-    debug-messages-model.cpp
+    debug-message-view.cpp
     main.cpp
 )
 
diff --git a/tools/debugger/debug-messages-model.cpp b/tools/debugger/debug-message-view.cpp
similarity index 58%
rename from tools/debugger/debug-messages-model.cpp
rename to tools/debugger/debug-message-view.cpp
index f174c78..d31f0c2 100644
--- a/tools/debugger/debug-messages-model.cpp
+++ b/tools/debugger/debug-message-view.cpp
@@ -15,10 +15,12 @@
     You should have received a copy of the GNU Lesser General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
-#include "debug-messages-model.h"
+#include "debug-message-view.h"
 
 #include <TelepathyQt/PendingReady>
 #include <TelepathyQt/Constants>
+#include <TelepathyQt/DebugReceiver>
+#include <TelepathyQt/PendingDebugMessageList>
 
 #include <KDebug>
 #include <KIcon>
@@ -26,22 +28,15 @@
 
 #include <ctime>
 
-DebugMessagesModel::DebugMessagesModel(const QString & service, QObject *parent)
-    : QAbstractListModel(parent),
-      m_serviceName(service),
+DebugMessageView::DebugMessageView(QWidget *parent)
+    : QTextEdit(parent),
       m_ready(false)
 {
-    m_serviceWatcher = new QDBusServiceWatcher(service, QDBusConnection::sessionBus(),
-                                               QDBusServiceWatcher::WatchForRegistration, this);
-    connect(m_serviceWatcher, SIGNAL(serviceRegistered(QString)),
-            SLOT(onServiceRegistered(QString)));
-
-    if (QDBusConnection::sessionBus().interface()->isServiceRegistered(service)) {
-        onServiceRegistered(service);
-    }
+    setReadOnly(true);
 }
 
-DebugMessagesModel::~DebugMessagesModel()
+
+DebugMessageView::~DebugMessageView()
 {
     if (m_debugReceiver && m_ready) {
         //disable monitoring and do it synchronously before all the objects are destroyed
@@ -52,7 +47,21 @@ DebugMessagesModel::~DebugMessagesModel()
     }
 }
 
-void DebugMessagesModel::onServiceRegistered(const QString & service)
+void DebugMessageView::setService(const QString &service)
+{
+    m_serviceName = service;
+    m_serviceWatcher = new QDBusServiceWatcher(service, QDBusConnection::sessionBus(),
+                                               QDBusServiceWatcher::WatchForRegistration, this);
+    connect(m_serviceWatcher, SIGNAL(serviceRegistered(QString)),
+            SLOT(onServiceRegistered(QString)));
+
+    if (QDBusConnection::sessionBus().interface()->isServiceRegistered(service)) {
+        onServiceRegistered(service);
+    }
+}
+
+
+void DebugMessageView::onServiceRegistered(const QString & service)
 {
     kDebug() << "Service" << service << "registered. Introspecting Debug interface...";
 
@@ -63,7 +72,7 @@ void DebugMessagesModel::onServiceRegistered(const QString & service)
             SLOT(onDebugReceiverReady(Tp::PendingOperation*)));
 }
 
-void DebugMessagesModel::onDebugReceiverInvalidated(Tp::DBusProxy *proxy,
+void DebugMessageView::onDebugReceiverInvalidated(Tp::DBusProxy *proxy,
                                                     const QString &errorName, const QString &errorMessage)
 {
     Q_UNUSED(proxy);
@@ -72,7 +81,7 @@ void DebugMessagesModel::onDebugReceiverInvalidated(Tp::DBusProxy *proxy,
     m_debugReceiver.reset();
 }
 
-void DebugMessagesModel::onDebugReceiverReady(Tp::PendingOperation *op)
+void DebugMessageView::onDebugReceiverReady(Tp::PendingOperation *op)
 {
     if (op->isError()) {
         kDebug() << "Failed to introspect Debug interface for" << m_serviceName
@@ -88,7 +97,7 @@ void DebugMessagesModel::onDebugReceiverReady(Tp::PendingOperation *op)
     }
 }
 
-void DebugMessagesModel::onDebugReceiverMonitoringEnabled(Tp::PendingOperation* op)
+void DebugMessageView::onDebugReceiverMonitoringEnabled(Tp::PendingOperation* op)
 {
     if (op->isError()) {
         kError() << "Failed to enable monitoring on the Debug object of" << m_serviceName
@@ -101,7 +110,7 @@ void DebugMessagesModel::onDebugReceiverMonitoringEnabled(Tp::PendingOperation*
     }
 }
 
-void DebugMessagesModel::onFetchMessagesFinished(Tp::PendingOperation* op)
+void DebugMessageView::onFetchMessagesFinished(Tp::PendingOperation* op)
 {
     if (op->isError()) {
         kError() << "Failed to fetch messages from" << m_serviceName
@@ -114,9 +123,9 @@ void DebugMessagesModel::onFetchMessagesFinished(Tp::PendingOperation* op)
         messages.append(m_tmpCache); //append any messages that were received from onNewDebugMessage()
         m_tmpCache.clear();
 
-        beginInsertRows(QModelIndex(), m_messages.size(), m_messages.size() + messages.size());
-        m_messages.append(messages);
-        endInsertRows();
+        Q_FOREACH(const Tp::DebugMessage &msg, messages) {
+            appendMessage(msg);
+        }
 
         //TODO limit m_messages size
 
@@ -127,22 +136,19 @@ void DebugMessagesModel::onFetchMessagesFinished(Tp::PendingOperation* op)
     }
 }
 
-void DebugMessagesModel::onNewDebugMessage(const Tp::DebugMessage & msg)
+void DebugMessageView::onNewDebugMessage(const Tp::DebugMessage & msg)
 {
     if (m_ready) {
-        beginInsertRows(QModelIndex(), m_messages.size(), m_messages.size());
-        m_messages.append(msg);
-        endInsertRows();
-
-        //TODO limit m_messages size
+        appendMessage(msg);
     } else {
         //cache until we are ready
         m_tmpCache.append(msg);
     }
 }
 
+
 //taken from empathy
-static QString formatTimestamp(double timestamp)
+static inline QString formatTimestamp(double timestamp)
 {
     struct tm *tstruct;
     char time_str[32];
@@ -162,76 +168,11 @@ static QString formatTimestamp(double timestamp)
     return str;
 }
 
-QVariant DebugMessagesModel::data(const QModelIndex & index, int role) const
+void DebugMessageView::appendMessage(const Tp::DebugMessage &msg)
 {
-    if (!index.isValid()) {
-        return QVariant();
-    }
-
-    KColorScheme scheme(QPalette::Active, KColorScheme::Window);
-
-
-    switch(role) {
-    case Qt::DisplayRole:
-        return QString(formatTimestamp(m_messages[index.row()].timestamp) %
-                       QLatin1Literal(" - [") % m_messages[index.row()].domain % QLatin1Literal("] ") %
-                       m_messages[index.row()].message);
-    case Qt::DecorationRole:
-        switch(m_messages[index.row()].level) {
-        case Tp::DebugLevelError:
-            return KIcon(QLatin1String("dialog-error"));
-        case Tp::DebugLevelCritical:
-            return KIcon(QLatin1String("dialog-error"));
-        case Tp::DebugLevelWarning:
-            return KIcon(QLatin1String("dialog-warning"));
-        case Tp::DebugLevelMessage:
-            return KIcon(QLatin1String("dialog-info"));
-        case Tp::DebugLevelInfo:
-            return KIcon(QLatin1String("dialog-info"));
-        case Tp::DebugLevelDebug:
-            return KIcon(QLatin1String("tools-report-bug"));
-        default:
-            return QVariant();
-        }
-    case Qt::ForegroundRole:
-        switch(m_messages[index.row()].level) {
-        case Tp::DebugLevelError:
-            /** Fall Through*/
-        case Tp::DebugLevelCritical:
-            /** Fall Through*/
-        case Tp::DebugLevelWarning:
-            return scheme.foreground(KColorScheme::NegativeText);
-        case Tp::DebugLevelMessage:
-            /** Fall Through*/
-        case Tp::DebugLevelInfo:
-            /** Fall Through*/
-        case Tp::DebugLevelDebug:
-            /** Fall Through*/
-        default:
-            return QVariant();
-        }
-    case MessageRole:
-        return m_messages[index.row()].message;
-    case TimestampRole:
-        return m_messages[index.row()].timestamp;
-    case LevelRole:
-        return m_messages[index.row()].level;
-    case DomainRole:
-        return m_messages[index.row()].domain;
-    case ServiceRole:
-        return m_serviceName;
-    default:
-        return QVariant();
-    }
-}
-
-int DebugMessagesModel::rowCount(const QModelIndex & parent) const
-{
-    if (!parent.isValid()) {
-        return m_messages.size();
-    } else {
-        return 0;
-    }
+    QString message = QString(formatTimestamp(msg.timestamp) %
+                              QLatin1Literal(" - [") % msg.domain % QLatin1Literal("] ") %
+                              msg.message);
+    append(message);
 }
 
-#include "moc_debug-messages-model.cpp"
diff --git a/tools/debugger/debug-messages-model.h b/tools/debugger/debug-message-view.h
similarity index 68%
rename from tools/debugger/debug-messages-model.h
rename to tools/debugger/debug-message-view.h
index b4da9b7..837b6bf 100644
--- a/tools/debugger/debug-messages-model.h
+++ b/tools/debugger/debug-message-view.h
@@ -18,27 +18,18 @@
 #ifndef DEBUG_MESSAGES_MODEL_H
 #define DEBUG_MESSAGES_MODEL_H
 
-#include <QtCore/QAbstractListModel>
-#include <TelepathyQt/DebugReceiver>
-#include <TelepathyQt/PendingDebugMessageList>
+#include <QTextEdit>
+#include <TelepathyQt/Types>
+#include <TelepathyQt/PendingOperation>
 
-class DebugMessagesModel : public QAbstractListModel
+
+class DebugMessageView : public QTextEdit
 {
     Q_OBJECT
 public:
-    explicit DebugMessagesModel(const QString & service, QObject *parent = 0);
-    virtual ~DebugMessagesModel();
-
-    enum Role {
-        TimestampRole = Qt::UserRole,
-        LevelRole,
-        DomainRole,
-        MessageRole,
-        ServiceRole
-    };
-
-    virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
-    virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
+    explicit DebugMessageView(QWidget *parent = 0);
+    void setService(const QString & service);
+    virtual ~DebugMessageView();
 
 private Q_SLOTS:
     void onServiceRegistered(const QString & service);
@@ -47,12 +38,13 @@ private Q_SLOTS:
     void onDebugReceiverReady(Tp::PendingOperation *op);
     void onDebugReceiverMonitoringEnabled(Tp::PendingOperation *op);
     void onFetchMessagesFinished(Tp::PendingOperation *op);
-    void onNewDebugMessage(const Tp::DebugMessage & msg);
+    void onNewDebugMessage(const Tp::DebugMessage &msg);
 
 private:
+    void appendMessage(const Tp::DebugMessage &msg);
+
     QString m_serviceName;
     Tp::DebugReceiverPtr m_debugReceiver;
-    Tp::DebugMessageList m_messages;
     Tp::DebugMessageList m_tmpCache;
     QDBusServiceWatcher *m_serviceWatcher;
     bool m_ready;
diff --git a/tools/debugger/main-window.cpp b/tools/debugger/main-window.cpp
index 39a40ee..10d0b8d 100644
--- a/tools/debugger/main-window.cpp
+++ b/tools/debugger/main-window.cpp
@@ -16,7 +16,7 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #include "main-window.h"
-#include "debug-messages-model.h"
+#include "debug-message-view.h"
 
 MainWindow::MainWindow(QWidget *parent)
     : KXmlGuiWindow(parent)
@@ -25,12 +25,9 @@ MainWindow::MainWindow(QWidget *parent)
     m_ui.setupUi(centralWidget());
     setupGUI();
 
-    m_ui.mcLogsView->setModel(new DebugMessagesModel(
-            QLatin1String("org.freedesktop.Telepathy.MissionControl5"), this));
-    m_ui.gabbleLogsView->setModel(new DebugMessagesModel(
-            QLatin1String("org.freedesktop.Telepathy.ConnectionManager.gabble"), this));
-    m_ui.hazeLogsView->setModel(new DebugMessagesModel(
-            QLatin1String("org.freedesktop.Telepathy.ConnectionManager.haze"), this));
+    m_ui.mcLogsView->setService(QLatin1String("org.freedesktop.Telepathy.MissionControl5"));
+    m_ui.gabbleLogsView->setService(QLatin1String("org.freedesktop.Telepathy.ConnectionManager.gabble"));
+    m_ui.hazeLogsView->setService(QLatin1String("org.freedesktop.Telepathy.ConnectionManager.haze"));
 }
 
 MainWindow::~MainWindow()
diff --git a/tools/debugger/main-window.ui b/tools/debugger/main-window.ui
index 1e3bfff..55d06f9 100644
--- a/tools/debugger/main-window.ui
+++ b/tools/debugger/main-window.ui
@@ -14,7 +14,7 @@
    <item>
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
-      <number>1</number>
+      <number>0</number>
      </property>
      <widget class="QWidget" name="mcTab">
       <attribute name="title">
@@ -22,17 +22,7 @@
       </attribute>
       <layout class="QHBoxLayout" name="horizontalLayout_2">
        <item>
-        <widget class="QListView" name="mcLogsView">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="isWrapping" stdset="0">
-          <bool>false</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
+        <widget class="DebugMessageView" name="mcLogsView"/>
        </item>
       </layout>
      </widget>
@@ -42,14 +32,7 @@
       </attribute>
       <layout class="QHBoxLayout" name="horizontalLayout_3">
        <item>
-        <widget class="QListView" name="gabbleLogsView">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
+        <widget class="DebugMessageView" name="gabbleLogsView"/>
        </item>
       </layout>
      </widget>
@@ -57,16 +40,9 @@
       <attribute name="title">
        <string>Haze</string>
       </attribute>
-      <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <layout class="QVBoxLayout" name="verticalLayout">
        <item>
-        <widget class="QListView" name="hazeLogsView">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
+        <widget class="DebugMessageView" name="hazeLogsView"/>
        </item>
       </layout>
      </widget>
@@ -74,6 +50,13 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>DebugMessageView</class>
+   <extends>QTextEdit</extends>
+   <header>debug-message-view.h</header>
+  </customwidget>
+ </customwidgets>
  <resources/>
  <connections/>
 </ui>

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list