mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
7481746d91
The old code ( slow++ ) ignored that each new dive-selection we recreated all information on the profile window, so this version ( a lot more verbose, I know. ) will ignore all dives that are being selected and will only send the 'dive was selected' information in the last line of the algorithm, instead of calling it for each dive on the list of 'to be selected' dives. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
/*
|
|
* 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 "models.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& current, const QModelIndex& previous);
|
|
void reload(DiveTripModel::Layout layout, bool forceSort = true);
|
|
bool eventFilter(QObject* , QEvent* );
|
|
void unselectDives();
|
|
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 showSearchEdit();
|
|
void removeFromTrip();
|
|
void deleteDive();
|
|
void testSlot();
|
|
void fixMessyQtModelBehaviour();
|
|
void mergeTripAbove();
|
|
void mergeTripBelow();
|
|
void newTripAbove();
|
|
void addToTripAbove();
|
|
void mergeDives();
|
|
void saveSelectedDivesAs();
|
|
void exportSelectedDivesAsUDDF();
|
|
void shiftTimes();
|
|
|
|
signals:
|
|
void currentDiveChanged(int divenr);
|
|
|
|
private:
|
|
bool mouseClickSelection;
|
|
QList<int> expandedRows;
|
|
int sortColumn;
|
|
Qt::SortOrder currentOrder;
|
|
DiveTripModel::Layout currentLayout;
|
|
QLineEdit *searchBox;
|
|
QModelIndex contextMenuIndex;
|
|
|
|
/* 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 );
|
|
};
|
|
|
|
#endif // DIVELISTVIEW_H
|