2013-04-14 03:44:02 +00:00
|
|
|
/*
|
|
|
|
* divelistview.h
|
|
|
|
*
|
|
|
|
* header file for the dive list of Subsurface
|
|
|
|
*
|
|
|
|
*/
|
2013-04-12 07:24:07 +00:00
|
|
|
#ifndef DIVELISTVIEW_H
|
|
|
|
#define DIVELISTVIEW_H
|
|
|
|
|
|
|
|
/*! A view subclass for use with dives
|
|
|
|
Note: calling this a list view might be misleading?
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <QTreeView>
|
2013-05-28 20:07:43 +00:00
|
|
|
#include "models.h"
|
2013-04-12 07:24:07 +00:00
|
|
|
|
|
|
|
class DiveListView : public QTreeView
|
|
|
|
{
|
2013-05-14 11:18:26 +00:00
|
|
|
Q_OBJECT
|
2013-04-12 07:24:07 +00:00
|
|
|
public:
|
|
|
|
DiveListView(QWidget *parent = 0);
|
2013-11-08 22:30:17 +00:00
|
|
|
~DiveListView();
|
2013-05-14 01:14:59 +00:00
|
|
|
void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
|
2013-05-14 11:18:26 +00:00
|
|
|
void currentChanged(const QModelIndex& current, const QModelIndex& previous);
|
2013-06-06 02:22:08 +00:00
|
|
|
void reload(DiveTripModel::Layout layout, bool forceSort = true);
|
2013-05-30 04:04:42 +00:00
|
|
|
bool eventFilter(QObject* , QEvent* );
|
2013-06-05 06:41:52 +00:00
|
|
|
void unselectDives();
|
2013-11-16 20:41:47 +00:00
|
|
|
void selectDive(int dive_table_idx, bool scrollto = false, bool toggle = false);
|
2013-12-02 19:15:40 +00:00
|
|
|
void selectDives(const QList<int>& newDiveSelection);
|
2013-11-14 08:52:03 +00:00
|
|
|
void rememberSelection();
|
|
|
|
void restoreSelection();
|
2013-06-06 00:06:42 +00:00
|
|
|
void contextMenuEvent(QContextMenuEvent *event);
|
2013-11-26 17:44:18 +00:00
|
|
|
QList<dive_trip_t*> selectedTrips();
|
2013-05-21 19:51:49 +00:00
|
|
|
public slots:
|
2013-05-26 17:12:45 +00:00
|
|
|
void toggleColumnVisibilityByIndex();
|
|
|
|
void reloadHeaderActions();
|
2013-05-28 20:07:43 +00:00
|
|
|
void headerClicked(int);
|
2013-05-30 04:04:42 +00:00
|
|
|
void showSearchEdit();
|
2013-06-06 00:06:42 +00:00
|
|
|
void removeFromTrip();
|
2013-06-06 01:37:18 +00:00
|
|
|
void deleteDive();
|
2013-12-07 01:40:59 +00:00
|
|
|
void markDiveInvalid();
|
2013-06-06 00:06:42 +00:00
|
|
|
void testSlot();
|
2013-06-12 17:14:25 +00:00
|
|
|
void fixMessyQtModelBehaviour();
|
2013-06-27 05:16:40 +00:00
|
|
|
void mergeTripAbove();
|
|
|
|
void mergeTripBelow();
|
2013-11-15 02:32:19 +00:00
|
|
|
void newTripAbove();
|
2013-11-17 23:36:57 +00:00
|
|
|
void addToTripAbove();
|
2013-09-24 04:57:28 +00:00
|
|
|
void mergeDives();
|
2013-10-18 00:50:08 +00:00
|
|
|
void saveSelectedDivesAs();
|
2013-10-19 17:35:36 +00:00
|
|
|
void exportSelectedDivesAsUDDF();
|
2013-11-18 13:53:05 +00:00
|
|
|
void shiftTimes();
|
2014-01-27 13:44:26 +00:00
|
|
|
void loadImages();
|
2013-12-05 16:28:28 +00:00
|
|
|
void uploadToDivelogsDE();
|
2013-06-14 16:17:46 +00:00
|
|
|
|
2013-06-19 17:20:16 +00:00
|
|
|
signals:
|
2013-05-14 11:18:26 +00:00
|
|
|
void currentDiveChanged(int divenr);
|
2013-06-06 00:06:42 +00:00
|
|
|
|
2013-05-14 01:14:59 +00:00
|
|
|
private:
|
|
|
|
bool mouseClickSelection;
|
2013-11-08 23:08:14 +00:00
|
|
|
QList<int> expandedRows;
|
2013-11-05 05:09:08 +00:00
|
|
|
int sortColumn;
|
|
|
|
Qt::SortOrder currentOrder;
|
2013-05-29 19:46:27 +00:00
|
|
|
DiveTripModel::Layout currentLayout;
|
2013-05-30 04:04:42 +00:00
|
|
|
QLineEdit *searchBox;
|
2013-06-06 00:06:42 +00:00
|
|
|
QModelIndex contextMenuIndex;
|
2013-11-26 17:44:18 +00:00
|
|
|
|
|
|
|
/* if dive_trip_t is null, there's no problem. */
|
|
|
|
QMultiHash<dive_trip_t *, int> selectedDives;
|
2013-06-27 05:16:40 +00:00
|
|
|
void merge_trip(const QModelIndex &a, const int offset);
|
2013-11-08 22:30:17 +00:00
|
|
|
void setupUi();
|
2013-11-08 23:08:14 +00:00
|
|
|
void backupExpandedRows();
|
|
|
|
void restoreExpandedRows();
|
2013-11-13 18:59:56 +00:00
|
|
|
int lastVisibleColumn();
|
2013-11-26 17:44:18 +00:00
|
|
|
void selectTrip ( dive_trip_t* trip );
|
2014-01-27 13:44:26 +00:00
|
|
|
QString lastUsedImageDir();
|
|
|
|
void updateLastUsedImageDir(const QString& s);
|
2013-04-12 07:24:07 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // DIVELISTVIEW_H
|