From a14eac175cceda16f50cb4519182f819cf7f6b23 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Thu, 8 May 2008 09:45:30 +0000 Subject: [PATCH] Merging r812:820 from trunk to branches/0.3. --- src/common/signalproxy.h | 2 +- src/core/core.pri | 9 +++++++-- src/core/sslserver.cpp | 9 ++++++--- src/core/sslserver.h | 14 ++++++++------ src/uisupport/bufferview.cpp | 31 +++++++++++++++++++++--------- src/uisupport/bufferview.h | 1 + src/uisupport/bufferviewfilter.cpp | 8 +++++--- version.inc | 4 ++-- 8 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index cca2ccb5..1090547e 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -32,7 +32,7 @@ class SignalRelay; class SyncableObject; -class QMetaObject; +struct QMetaObject; class SignalProxy : public QObject { Q_OBJECT diff --git a/src/core/core.pri b/src/core/core.pri index d2025452..333c09d6 100644 --- a/src/core/core.pri +++ b/src/core/core.pri @@ -2,6 +2,11 @@ DEPMOD = common QT_MOD = core network sql script SRCS = core.cpp corebacklogmanager.cpp corebufferviewconfig.cpp corebufferviewmanager.cpp coresession.cpp coresettings.cpp networkconnection.cpp sqlitestorage.cpp abstractsqlstorage.cpp storage.cpp basichandler.cpp \ - ircserverhandler.cpp userinputhandler.cpp ctcphandler.cpp coreusersettings.cpp sessionthread.cpp sslserver.cpp + ircserverhandler.cpp userinputhandler.cpp ctcphandler.cpp coreusersettings.cpp sessionthread.cpp HDRS = core.h corebacklogmanager.h corebufferviewconfig.h corebufferviewmanager.h coresession.h coresettings.h networkconnection.h sqlitestorage.h abstractsqlstorage.h storage.h basichandler.h \ - ircserverhandler.h userinputhandler.h ctcphandler.h coreusersettings.h sessionthread.h sslserver.h + ircserverhandler.h userinputhandler.h ctcphandler.h coreusersettings.h sessionthread.h + +contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { + SRCS += sslserver.cpp + HDRS += sslserver.h +} diff --git a/src/core/sslserver.cpp b/src/core/sslserver.cpp index b19ee5fb..343af532 100644 --- a/src/core/sslserver.cpp +++ b/src/core/sslserver.cpp @@ -18,16 +18,19 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef QT_NO_OPENSSL - #include "sslserver.h" -#include +#ifndef QT_NO_OPENSSL +# include +#endif + #include #include #include "util.h" +#ifndef QT_NO_OPENSSL + SslServer::SslServer(QObject *parent) : QTcpServer(parent) { diff --git a/src/core/sslserver.h b/src/core/sslserver.h index de6030a6..fdbecbf2 100644 --- a/src/core/sslserver.h +++ b/src/core/sslserver.h @@ -18,15 +18,17 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef QT_NO_OPENSSL - #ifndef SSLSERVER_H #define SSLSERVER_H +#ifndef QT_NO_OPENSSL +# include +# include #include #include -#include -#include +#endif + +#ifndef QT_NO_OPENSSL class SslServer : public QTcpServer { Q_OBJECT @@ -51,6 +53,6 @@ private: bool _certIsValid; }; -#endif //SSLSERVER_H - #endif //QT_NO_OPENSSL + +#endif //SSLSERVER_H diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index ffa5ca8d..d19f4881 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -39,6 +39,7 @@ #include #include #include +#include /***************************************** * The TreeView showing the Buffers @@ -50,6 +51,8 @@ BufferView::BufferView(QWidget *parent) : QTreeView(parent) { connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(showContextMenu(const QPoint &))); + + setSelectionMode(QAbstractItemView::ExtendedSelection); } void BufferView::init() { @@ -193,12 +196,19 @@ void BufferView::joinChannel(const QModelIndex &index) { void BufferView::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { event->accept(); - QModelIndex index = selectionModel()->selectedIndexes().first(); - if(index.isValid()) { + removeSelectedBuffers(); + } + QTreeView::keyPressEvent(event); +} + +void BufferView::removeSelectedBuffers() { + QSet removedRows; + foreach(QModelIndex index, selectionModel()->selectedIndexes()) { + if(index.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType && !removedRows.contains(index.row())) { + removedRows << index.row(); emit removeBuffer(index); } } - QTreeView::keyPressEvent(event); } void BufferView::rowsInserted(const QModelIndex & parent, int start, int end) { @@ -277,6 +287,8 @@ void BufferView::showContextMenu(const QPoint &pos) { QAction *joinBufferAction = new QAction(tr("Join"), this); QAction *partBufferAction = new QAction(tr("Part"), this); + QAction *hideBufferAction = new QAction(tr("Remove buffers"), this); + hideBufferAction->setToolTip(tr("Removes the selected buffers from a custom view but leaves the buffer itself untouched")); QAction *removeBufferAction = new QAction(tr("Delete buffer"), this); QMenu *hideEventsMenu = new QMenu(tr("Hide Events"), this); @@ -317,6 +329,8 @@ void BufferView::showContextMenu(const QPoint &pos) { if(bufferInfo.type() != BufferInfo::ChannelBuffer && bufferInfo.type() != BufferInfo::QueryBuffer) return; contextMenu.addAction(joinBufferAction); contextMenu.addAction(partBufferAction); + if(config()) + contextMenu.addAction(hideBufferAction); contextMenu.addAction(removeBufferAction); contextMenu.addMenu(hideEventsMenu); contextMenu.addAction(ignoreListAction); @@ -361,14 +375,13 @@ void BufferView::showContextMenu(const QPoint &pos) { } } #endif - } else - if(result == joinBufferAction) { + } else if(result == joinBufferAction) { Client::instance()->userInput(bufferInfo, QString("/JOIN %1").arg(channelname)); - } else - if(result == partBufferAction) { + } else if(result == partBufferAction) { Client::instance()->userInput(bufferInfo, QString("/PART %1").arg(channelname)); - } else - if(result == removeBufferAction) { + } else if(result == hideBufferAction) { + removeSelectedBuffers(); + } else if(result == removeBufferAction) { int res = QMessageBox::question(this, tr("Remove buffer permanently?"), tr("Do you want to delete the buffer \"%1\" permanently? This will delete all related data, including all backlog " "data, from the core's database!").arg(bufferInfo.bufferName()), diff --git a/src/uisupport/bufferview.h b/src/uisupport/bufferview.h index 66ee467b..09d66130 100644 --- a/src/uisupport/bufferview.h +++ b/src/uisupport/bufferview.h @@ -49,6 +49,7 @@ public: public slots: void setRootIndexForNetworkId(const NetworkId &networkId); + void removeSelectedBuffers(); signals: void removeBuffer(const QModelIndex &); diff --git a/src/uisupport/bufferviewfilter.cpp b/src/uisupport/bufferviewfilter.cpp index d3ec1998..e02549c6 100644 --- a/src/uisupport/bufferviewfilter.cpp +++ b/src/uisupport/bufferviewfilter.cpp @@ -20,6 +20,8 @@ #include "bufferviewfilter.h" +#include + #include "buffermodel.h" #include "client.h" #include "networkmodel.h" @@ -153,9 +155,9 @@ void BufferViewFilter::addBuffer(const BufferId &bufferId) { } void BufferViewFilter::removeBuffer(const QModelIndex &index) { - if(!config()) + if(!config() || !index.isValid() || index.data(NetworkModel::ItemTypeRole) != NetworkModel::BufferItemType) return; - + BufferId bufferId = data(index, NetworkModel::BufferIdRole).value(); config()->requestRemoveBuffer(bufferId); } @@ -280,7 +282,7 @@ void BufferViewFilter::source_rowsInserted(const QModelIndex &parent, int start, void BufferViewFilter::checkPreviousCurrentForRemoval(const QModelIndex ¤t, const QModelIndex &previous) { Q_UNUSED(current); if(previous.isValid()) - qApp->postEvent(this, new CheckRemovalEvent(previous)); + QCoreApplication::postEvent(this, new CheckRemovalEvent(previous)); } void BufferViewFilter::customEvent(QEvent *event) { diff --git a/version.inc b/version.inc index 44ca5afa..0241bdea 100644 --- a/version.inc +++ b/version.inc @@ -4,8 +4,8 @@ { using namespace Global; quasselVersion = "0.2.0-beta1-pre"; - quasselDate = "2008-05-03"; - quasselBuild = 810; + quasselDate = "2008-05-08"; + quasselBuild = 821; //! Minimum client build number the core needs clientBuildNeeded = 731; -- 2.20.1