Fix expanding networks in Chat Monitor settings
[quassel.git] / src / uisupport / bufferview.h
index 9d31216..ce8b956 100644 (file)
 #include <QDockWidget>
 #include <QModelIndex>
 #include <QStyledItemDelegate>
-#include <QTreeView>
 #include <QPointer>
 
 #include "actioncollection.h"
 #include "bufferviewconfig.h"
 #include "networkmodel.h"
+#include "treeviewtouch.h"
 #include "types.h"
 
 /*****************************************
  * The TreeView showing the Buffers
  *****************************************/
-class BufferView : public QTreeView
+class BufferView : public TreeViewTouch
 {
     Q_OBJECT
 
@@ -79,9 +79,6 @@ protected:
     virtual QSize sizeHint() const;
     virtual void focusInEvent(QFocusEvent *event) { QAbstractScrollArea::focusInEvent(event); }
     virtual void contextMenuEvent(QContextMenuEvent *event);
-       virtual bool event(QEvent *event);
-       virtual void mouseMoveEvent(QMouseEvent *event);
-       virtual void mousePressEvent(QMouseEvent *event);
 
 #if QT_VERSION < 0x050000
     virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
@@ -93,7 +90,31 @@ private slots:
     void joinChannel(const QModelIndex &index);
     void toggleHeader(bool checked);
 
+    /**
+     * Expand all active networks and collapse inactive ones unless manually changed
+     *
+     * Applies to all networks.  Shouldn't need called except during initialization.
+     */
+    void setExpandedState();
+
+    /**
+     * Save the current display state of the given network
+     *
+     * Tracks expanded or collapsed and active or inactive.
+     *
+     * @see setExpandedState()
+     * @param[in] networkIdx QModelIndex of the root network to store
+     */
     void storeExpandedState(const QModelIndex &networkIdx);
+
+    /**
+     * Set the display state of the given network according to network status and manual changes
+     *
+     * Expands if active or previously expanded, collapses if inactive or previously collapsed.
+     *
+     * @see storeExpandedState()
+     * @param[in] networkIdx QModelIndex of the root network to update
+     */
     void setExpandedState(const QModelIndex &networkIdx);
 
     void on_configChanged();
@@ -103,8 +124,6 @@ private slots:
 
 private:
     QPointer<BufferViewConfig> _config;
-       qint64 _lastTouchStart = 0;
-       bool _touchScrollInProgress = false;
 
     enum ExpandedState {
         WasExpanded = 0x01,