diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-11-02 19:54:34 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-11-02 19:54:34 -0800 |
commit | 8ea7f404574c2ee571d2dde6bb6be3791e962150 (patch) | |
tree | 6a050178bfc71bf10558968f2a3bc0a12d8c525f /desktop-widgets/divelistview.h | |
parent | b273c1b0ca7bfe933e7c83742f1610f6bbe3f4d3 (diff) | |
parent | df7818a9b8495285b4d9812e5d6d50d6f9c08813 (diff) | |
download | subsurface-8ea7f404574c2ee571d2dde6bb6be3791e962150.tar.gz |
Merge branch 'cmakeAndPreferences'
Diffstat (limited to 'desktop-widgets/divelistview.h')
-rw-r--r-- | desktop-widgets/divelistview.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/desktop-widgets/divelistview.h b/desktop-widgets/divelistview.h new file mode 100644 index 000000000..aaec37af5 --- /dev/null +++ b/desktop-widgets/divelistview.h @@ -0,0 +1,89 @@ +/* + * divelistview.h + * + * header file for the dive list of Subsurface + * + */ +#ifndef DIVELISTVIEW_H +#define DIVELISTVIEW_H + +/*! A view subclass for use with dives + Note: calling this a list view might be misleading? +*/ + +#include <QTreeView> +#include <QLineEdit> +#include <QNetworkAccessManager> +#include "divetripmodel.h" + +class DiveListView : public QTreeView { + Q_OBJECT +public: + DiveListView(QWidget *parent = 0); + ~DiveListView(); + void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); + void reload(DiveTripModel::Layout layout, bool forceSort = true); + bool eventFilter(QObject *, QEvent *); + void unselectDives(); + void clearTripSelection(); + void selectDive(int dive_table_idx, bool scrollto = false, bool toggle = false); + void selectDives(const QList<int> &newDiveSelection); + void rememberSelection(); + void restoreSelection(); + void contextMenuEvent(QContextMenuEvent *event); + QList<dive_trip_t *> selectedTrips(); +public +slots: + void toggleColumnVisibilityByIndex(); + void reloadHeaderActions(); + void headerClicked(int); + void removeFromTrip(); + void deleteDive(); + void markDiveInvalid(); + void testSlot(); + void fixMessyQtModelBehaviour(); + void mergeTripAbove(); + void mergeTripBelow(); + void newTripAbove(); + void addToTripAbove(); + void addToTripBelow(); + void mergeDives(); + void splitDives(); + void renumberDives(); + void shiftTimes(); + void loadImages(); + void loadWebImages(); + static QString lastUsedImageDir(); + +signals: + void currentDiveChanged(int divenr); + +private: + bool mouseClickSelection; + QList<int> expandedRows; + int sortColumn; + Qt::SortOrder currentOrder; + DiveTripModel::Layout currentLayout; + QModelIndex contextMenuIndex; + bool dontEmitDiveChangedSignal; + bool selectionSaved; + + /* if dive_trip_t is null, there's no problem. */ + QMultiHash<dive_trip_t *, int> selectedDives; + void merge_trip(const QModelIndex &a, const int offset); + void setupUi(); + void backupExpandedRows(); + void restoreExpandedRows(); + int lastVisibleColumn(); + void selectTrip(dive_trip_t *trip); + void updateLastUsedImageDir(const QString &s); + void updateLastImageTimeOffset(int offset); + int lastImageTimeOffset(); + void addToTrip(int delta); + void matchImagesToDives(QStringList fileNames); + void loadImageFromURL(QUrl url); + QNetworkAccessManager manager; +}; + +#endif // DIVELISTVIEW_H |