aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-28 17:07:43 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-28 17:07:43 -0300
commit4019fdaa24eb96a615632b8374e22434ec4069c2 (patch)
treec4fc5453c53dece793a0fa48ae0a38f10956b289
parentc6f84de37c33ef66f479d1adcffea6eab903c674 (diff)
downloadsubsurface-4019fdaa24eb96a615632b8374e22434ec4069c2.tar.gz
Switch between Tree / list on column - click.
This patch adds support for switching Tree / List while clicking on a column header. This triggers a sad-painting bug on the list - I guess I'll have to fix it too. I'd apreciate some help on it, tougth. next: keep the selection. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
-rw-r--r--qt-ui/divelistview.cpp14
-rw-r--r--qt-ui/divelistview.h4
2 files changed, 15 insertions, 3 deletions
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index d53fce5f5..8852eda3e 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -24,16 +24,26 @@ DiveListView::DiveListView(QWidget *parent) : QTreeView(parent), mouseClickSelec
setModel(model);
setSortingEnabled(false);
header()->setContextMenuPolicy(Qt::ActionsContextMenu);
+ connect(header(), SIGNAL(sectionClicked(int)), this, SLOT(headerClicked(int)));
}
-void DiveListView::reload()
+void DiveListView::headerClicked(int i )
+{
+ if (i == (int) TreeItemDT::NR){
+ reload(DiveTripModel::TREE);
+ }else{
+ reload(DiveTripModel::LIST);
+ }
+}
+
+void DiveListView::reload(DiveTripModel::Layout layout)
{
QSortFilterProxyModel *m = qobject_cast<QSortFilterProxyModel*>(model());
QAbstractItemModel *oldModel = m->sourceModel();
if (oldModel)
oldModel->deleteLater();
DiveTripModel *tripModel = new DiveTripModel(this);
- tripModel->setLayout(DiveTripModel::LIST);
+ tripModel->setLayout(layout);
m->setSourceModel(tripModel);
sortByColumn(0, Qt::DescendingOrder);
diff --git a/qt-ui/divelistview.h b/qt-ui/divelistview.h
index c1a33db51..99154d4ac 100644
--- a/qt-ui/divelistview.h
+++ b/qt-ui/divelistview.h
@@ -15,6 +15,7 @@
*/
#include <QTreeView>
+#include "models.h"
class DiveListView : public QTreeView
{
@@ -28,11 +29,12 @@ public:
void keyPressEvent(QKeyEvent* event);
void keyReleaseEvent(QKeyEvent*);
void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command);
- void reload();
+ void reload(DiveTripModel::Layout layout = DiveTripModel::TREE);
public slots:
void toggleColumnVisibilityByIndex();
void reloadHeaderActions();
+ void headerClicked(int);
Q_SIGNALS:
void currentDiveChanged(int divenr);