From 0555b01cbb4789122de7bc0a5325c664fbed87cd Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Sun, 19 Aug 2007 12:29:10 +0000 Subject: [PATCH] some minor code purdifications :) --- src/client/buffertreemodel.cpp | 55 +++++++++++++--------------------- src/client/buffertreemodel.h | 10 +++---- src/client/treemodel.cpp | 14 +++++++-- src/client/treemodel.h | 3 +- 4 files changed, 39 insertions(+), 43 deletions(-) diff --git a/src/client/buffertreemodel.cpp b/src/client/buffertreemodel.cpp index e1b52668..54ef7a87 100644 --- a/src/client/buffertreemodel.cpp +++ b/src/client/buffertreemodel.cpp @@ -86,6 +86,14 @@ QVariant BufferTreeItem::data(int column, int role) const { } } +Qt::ItemFlags BufferTreeItem::flags() const { + Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled; + if(buf->bufferType() == Buffer::QueryBuffer) + flags |= Qt::ItemIsDropEnabled; + + return flags; +} + /***************************************** * Network Items *****************************************/ @@ -98,12 +106,16 @@ uint NetworkTreeItem::id() const { return qHash(net); } - +Qt::ItemFlags NetworkTreeItem::flags() const { + return Qt::ItemIsEnabled | Qt::ItemIsDropEnabled; +} /***************************************** * BufferTreeModel *****************************************/ -BufferTreeModel::BufferTreeModel(QObject *parent) : TreeModel(BufferTreeModel::defaultHeader(), parent) { +BufferTreeModel::BufferTreeModel(QObject *parent) + : TreeModel(BufferTreeModel::defaultHeader(), parent) +{ connect(this, SIGNAL(fakeUserInput(BufferId, QString)), ClientProxy::instance(), SLOT(gsUserInput(BufferId, QString))); } @@ -114,24 +126,6 @@ QListBufferTreeModel::defaultHeader() { return data; } - -Qt::ItemFlags BufferTreeModel::flags(const QModelIndex &index) const { - if(!index.isValid()) - return Qt::ItemIsDropEnabled; - //return 0; - - // I think this is pretty ugly.. - if(isBufferIndex(index)) { - Buffer *buffer = getBufferByIndex(index); - if(buffer->bufferType() == Buffer::QueryBuffer) - return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; - else - return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled; - } else { - return Qt::ItemIsEnabled | Qt::ItemIsDropEnabled; - } -} - bool BufferTreeModel::isBufferIndex(const QModelIndex &index) const { // not so purdy... return parent(index) != QModelIndex(); @@ -145,7 +139,7 @@ Buffer *BufferTreeModel::getBufferByIndex(const QModelIndex &index) const { QModelIndex BufferTreeModel::getOrCreateNetworkItemIndex(Buffer *buffer) { QString net = buffer->networkName(); TreeItem *networkItem; - + if(not(networkItem = rootItem->childById(qHash(net)))) { int nextRow = rootItem->childCount(); networkItem = new NetworkTreeItem(net, rootItem); @@ -197,11 +191,11 @@ QMimeData *BufferTreeModel::mimeData(const QModelIndexList &indexes) const { } bool BufferTreeModel::dropMimeData(const QMimeData *data, Qt::DropAction /*action*/, int /*row*/, int /*column*/, const QModelIndex &parent) { - if(!(data->hasFormat("application/Quassel/BufferItem/row") - && data->hasFormat("application/Quassel/BufferItem/network") - && data->hasFormat("application/Quassel/BufferItem/bufferId"))) - return false; // whatever the drop is... it's not a buffer... - + foreach(QString mimeType, mimeTypes()) { + if(!(data->hasFormat(mimeType))) + return false; // whatever the drop is... it's not a buffer... + } + int sourcerow = data->data("application/Quassel/BufferItem/row").toInt(); QString network = QString::fromUtf8(data->data("application/Quassel/BufferItem/network")); @@ -219,14 +213,7 @@ bool BufferTreeModel::dropMimeData(const QMimeData *data, Qt::DropAction /*actio if(sourceBuffer == targetBuffer) // we won't merge with ourself :) return false; - /* - if(QMessageBox::warning(static_cast(QObject::parent()), - tr("Merge Buffers?"), - tr("Do you really want to merge the following Buffers?
%1.%2
%3.%4").arg(sourceBuffer->networkName()).arg(sourceBuffer->bufferName()).arg(targetBuffer->networkName()).arg(targetBuffer->bufferName()), - QMessageBox::Yes|QMessageBox::No) == QMessageBox::No) - return false; - - */ + // TODO: warn user about buffermerge! qDebug() << "merging" << sourceBuffer->bufferName() << "with" << targetBuffer->bufferName(); removeRow(parent.row(), BufferTreeModel::parent(parent)); diff --git a/src/client/buffertreemodel.h b/src/client/buffertreemodel.h index 3f4e5974..56981fca 100644 --- a/src/client/buffertreemodel.h +++ b/src/client/buffertreemodel.h @@ -1,4 +1,4 @@ -/*************************************************************************** + /*************************************************************************** * Copyright (C) 2005-07 by The Quassel Team * * devel@quassel-irc.org * * * @@ -36,12 +36,13 @@ public: BufferTreeItem(Buffer *, TreeItem *parent = 0); virtual uint id() const; - QVariant data(int column, int role) const; + virtual Qt::ItemFlags flags() const; + Buffer *buffer() const { return buf; } void setActivity(const Buffer::ActivityLevel &); -protected: +private: QString text(int column) const; QColor foreground(int column) const; @@ -59,6 +60,7 @@ public: NetworkTreeItem(const QString &, TreeItem *parent = 0); virtual uint id() const; + virtual Qt::ItemFlags flags() const; private: QString net; @@ -81,8 +83,6 @@ public: BufferTreeModel(QObject *parent = 0); static QList defaultHeader(); - - virtual Qt::ItemFlags flags(const QModelIndex &index) const; public slots: void bufferUpdated(Buffer *); diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 6dd7626a..27bcb5b0 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -95,11 +95,17 @@ QVariant TreeItem::data(int column, int role) const { return QVariant(); } +Qt::ItemFlags TreeItem::flags() const { + // some sane defaults + return Qt::ItemIsSelectable | Qt::ItemIsEnabled; +} /***************************************** * TreeModel *****************************************/ -TreeModel::TreeModel(const QList &data, QObject *parent) : QAbstractItemModel(parent) { +TreeModel::TreeModel(const QList &data, QObject *parent) + : QAbstractItemModel(parent) +{ rootItem = new TreeItem(data, 0); } @@ -182,10 +188,12 @@ QVariant TreeModel::data(const QModelIndex &index, int role) const { } Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const { + TreeItem *item; if(!index.isValid()) - return 0; + item = rootItem; else - return Qt::ItemIsEnabled | Qt::ItemIsSelectable; + item = static_cast(index.internalPointer()); + return item->flags(); } QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int role) const { diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 27360ba1..faad7922 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -47,6 +47,7 @@ public: int childCount() const; int columnCount() const; virtual QVariant data(int column, int role) const; + virtual Qt::ItemFlags flags() const; int row() const; TreeItem *parent(); @@ -82,7 +83,7 @@ public: protected: bool removeRow(int row, const QModelIndex &parent = QModelIndex()); bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - + TreeItem *rootItem; }; -- 2.20.1