Merging r812:820 from trunk to branches/0.3.
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 May 2008 09:45:30 +0000 (09:45 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 May 2008 09:45:30 +0000 (09:45 +0000)
src/common/signalproxy.h
src/core/core.pri
src/core/sslserver.cpp
src/core/sslserver.h
src/uisupport/bufferview.cpp
src/uisupport/bufferview.h
src/uisupport/bufferviewfilter.cpp
version.inc

index cca2ccb..1090547 100644 (file)
@@ -32,7 +32,7 @@
 
 class SignalRelay;
 class SyncableObject;
 
 class SignalRelay;
 class SyncableObject;
-class QMetaObject;
+struct QMetaObject;
 
 class SignalProxy : public QObject {
   Q_OBJECT
 
 class SignalProxy : public QObject {
   Q_OBJECT
index d202545..333c09d 100644 (file)
@@ -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 \
 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 \
 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
+}
index b19ee5f..343af53 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef QT_NO_OPENSSL
-
 #include "sslserver.h"
 
 #include "sslserver.h"
 
-#include <QSslSocket>
+#ifndef QT_NO_OPENSSL
+#  include <QSslSocket>
+#endif
+
 #include <QFile>
 #include <QDebug>
 
 #include "util.h"
 
 #include <QFile>
 #include <QDebug>
 
 #include "util.h"
 
+#ifndef QT_NO_OPENSSL
+
 SslServer::SslServer(QObject *parent)
   : QTcpServer(parent)
 {
 SslServer::SslServer(QObject *parent)
   : QTcpServer(parent)
 {
index de6030a..fdbecbf 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef QT_NO_OPENSSL
-
 #ifndef SSLSERVER_H
 #define SSLSERVER_H
 
 #ifndef SSLSERVER_H
 #define SSLSERVER_H
 
+#ifndef QT_NO_OPENSSL
+#  include <QSslCertificate>
+#  include <QSslKey>
 #include <QTcpServer>
 #include <QLinkedList>
 #include <QTcpServer>
 #include <QLinkedList>
-#include <QSslCertificate>
-#include <QSslKey>
+#endif
+
+#ifndef QT_NO_OPENSSL
 
 class SslServer : public QTcpServer {
   Q_OBJECT
 
 class SslServer : public QTcpServer {
   Q_OBJECT
@@ -51,6 +53,6 @@ private:
   bool _certIsValid;
 };
 
   bool _certIsValid;
 };
 
-#endif //SSLSERVER_H
-
 #endif //QT_NO_OPENSSL
 #endif //QT_NO_OPENSSL
+
+#endif //SSLSERVER_H
index ffa5ca8..d19f488 100644 (file)
@@ -39,6 +39,7 @@
 #include <QLineEdit>
 #include <QMenu>
 #include <QMessageBox>
 #include <QLineEdit>
 #include <QMenu>
 #include <QMessageBox>
+#include <QSet>
 
 /*****************************************
 * The TreeView showing the Buffers
 
 /*****************************************
 * 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 &)));
 
   connect(this, SIGNAL(customContextMenuRequested(const QPoint &)),
           this, SLOT(showContextMenu(const QPoint &)));
+
+  setSelectionMode(QAbstractItemView::ExtendedSelection);
 }
 
 void BufferView::init() {
 }
 
 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();
 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<int> removedRows;
+  foreach(QModelIndex index, selectionModel()->selectedIndexes()) {
+    if(index.data(NetworkModel::ItemTypeRole) == NetworkModel::BufferItemType && !removedRows.contains(index.row())) {
+      removedRows << index.row();
       emit removeBuffer(index);
     }
   }
       emit removeBuffer(index);
     }
   }
-  QTreeView::keyPressEvent(event);
 }
 
 void BufferView::rowsInserted(const QModelIndex & parent, int start, int end) {
 }
 
 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 *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);
   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(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);
     contextMenu.addAction(removeBufferAction);
     contextMenu.addMenu(hideEventsMenu);
     contextMenu.addAction(ignoreListAction);
@@ -361,14 +375,13 @@ void BufferView::showContextMenu(const QPoint &pos) {
       }
     }
 #endif
       }
     }
 #endif
-  } else
-  if(result == joinBufferAction) {
+  } else if(result == joinBufferAction) {
     Client::instance()->userInput(bufferInfo, QString("/JOIN %1").arg(channelname));
     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));
     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()),
     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()),
index 66ee467..09d6613 100644 (file)
@@ -49,6 +49,7 @@ public:
                                                               
 public slots:
   void setRootIndexForNetworkId(const NetworkId &networkId);
                                                               
 public slots:
   void setRootIndexForNetworkId(const NetworkId &networkId);
+  void removeSelectedBuffers();
   
 signals:
   void removeBuffer(const QModelIndex &);
   
 signals:
   void removeBuffer(const QModelIndex &);
index d3ec199..e02549c 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "bufferviewfilter.h"
 
 
 #include "bufferviewfilter.h"
 
+#include <QCoreApplication>
+
 #include "buffermodel.h"
 #include "client.h"
 #include "networkmodel.h"
 #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) {
 }
 
 void BufferViewFilter::removeBuffer(const QModelIndex &index) {
-  if(!config())
+  if(!config() || !index.isValid() || index.data(NetworkModel::ItemTypeRole) != NetworkModel::BufferItemType)
     return;
     return;
-  
+
   BufferId bufferId = data(index, NetworkModel::BufferIdRole).value<BufferId>();
   config()->requestRemoveBuffer(bufferId);
 }
   BufferId bufferId = data(index, NetworkModel::BufferIdRole).value<BufferId>();
   config()->requestRemoveBuffer(bufferId);
 }
@@ -280,7 +282,7 @@ void BufferViewFilter::source_rowsInserted(const QModelIndex &parent, int start,
 void BufferViewFilter::checkPreviousCurrentForRemoval(const QModelIndex &current, const QModelIndex &previous) {
   Q_UNUSED(current);
   if(previous.isValid())
 void BufferViewFilter::checkPreviousCurrentForRemoval(const QModelIndex &current, 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) {
 }
 
 void BufferViewFilter::customEvent(QEvent *event) {
index 44ca5af..0241bde 100644 (file)
@@ -4,8 +4,8 @@
 { using namespace Global;
 
   quasselVersion = "0.2.0-beta1-pre";
 { 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;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 731;