mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
536469107d
The way a QCompleter works is that it grabs whatever data it has in the completerRole and sets it back on the line edit. I Bypassed the QCompleter delegate to show something other than the completerRole (so, for instance, if you write 'B', you could get 'Blue Hole' as the returned text, but in fact the QCompleter has the 'B' as internal string (because of the weird - and wrong way in which we are dealing with completion - trying to complete for something that's not inside the model yet). So I hooked up a signal that will listen to the complete's index, and if it's the first row() it's surely the special case - then we bypass QCompleter return string and use our own. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
#ifndef LOCATIONINFORMATION_H
|
|
#define LOCATIONINFORMATION_H
|
|
|
|
#include "ui_locationInformation.h"
|
|
#include <stdint.h>
|
|
#include <QAbstractListModel>
|
|
|
|
class LocationInformationWidget : public QGroupBox {
|
|
Q_OBJECT
|
|
public:
|
|
enum mode{CREATE_DIVE_SITE, EDIT_DIVE_SITE};
|
|
LocationInformationWidget(QWidget *parent = 0);
|
|
protected:
|
|
void showEvent(QShowEvent *);
|
|
|
|
public slots:
|
|
void acceptChanges();
|
|
void rejectChanges();
|
|
void updateGpsCoordinates();
|
|
void editDiveSite(uint32_t uuid);
|
|
void createDiveSite();
|
|
void markChangedWidget(QWidget *w);
|
|
void enableEdition();
|
|
void resetState();
|
|
void resetPallete();
|
|
void on_diveSiteCoordinates_textChanged(const QString& text);
|
|
void on_diveSiteDescription_textChanged(const QString& text);
|
|
void on_diveSiteName_textChanged(const QString& text);
|
|
void on_diveSiteNotes_textChanged();
|
|
private slots:
|
|
void setCurrentDiveSiteByUuid(uint32_t uuid);
|
|
signals:
|
|
void startEditDiveSite(uint32_t uuid);
|
|
void endEditDiveSite();
|
|
void informationManagementEnded();
|
|
void coordinatesChanged();
|
|
void startFilterDiveSite(uint32_t uuid);
|
|
void stopFilterDiveSite();
|
|
private:
|
|
struct dive_site *currentDs;
|
|
Ui::LocationInformation ui;
|
|
bool modified;
|
|
QAction *closeAction, *acceptAction, *rejectAction;
|
|
mode current_mode;
|
|
};
|
|
|
|
class LocationManagementEditHelper : public QObject {
|
|
Q_OBJECT
|
|
public:
|
|
bool eventFilter(QObject *obj, QEvent *ev);
|
|
void handleActivation(const QModelIndex& activated);
|
|
void resetDiveSiteUuid();
|
|
uint32_t diveSiteUuid() const;
|
|
signals:
|
|
void setLineEditText(const QString& text);
|
|
private:
|
|
uint32_t last_uuid;
|
|
|
|
};
|
|
#endif
|