[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