mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 14:40:28 +00:00
757c4aab20
This adds a new divelist context menu entry which asks for a URL. The file is retrieved and if it is an image it is added to the cache and the url is associated to dives as with local files. NB this currently only works with URLs pointing directly to images. But it should not be too hard to add the possibility to add a direction via an html file and its image tags. To test: open dives/test43.xml and delete the image and then add the URL http://euve10195.vserver.de/~robert/wreck.jpg Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
88 lines
2.3 KiB
C++
88 lines
2.3 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 <QLineEdit>
|
|
#include <QNetworkAccessManager>
|
|
#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 ¤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 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
|