SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
relativepathpicker.h
Go to the documentation of this file.
1
21#ifndef OPENSWMMVIS_UI_WIDGETS_RELATIVEPATHPICKER_H
22#define OPENSWMMVIS_UI_WIDGETS_RELATIVEPATHPICKER_H
23
24#include <QFileDialog>
25#include <QString>
26#include <QWidget>
27
28class QLineEdit;
29class QToolButton;
30
31namespace openswmmvis::ui {
32
49class RelativePathPicker : public QWidget
50{
51 Q_OBJECT
52 Q_PROPERTY(QString absolutePath READ absolutePath WRITE setPath NOTIFY pathChanged)
53 Q_PROPERTY(QString projectAnchor READ projectAnchor WRITE setProjectAnchor)
54 Q_PROPERTY(QString fileFilter READ fileFilter WRITE setFileFilter)
55
56public:
57 explicit RelativePathPicker(QWidget *parent = nullptr);
58
61 [[nodiscard]] QString projectAnchor() const { return m_anchor; }
62 void setProjectAnchor(const QString &dir);
63
66 [[nodiscard]] QFileDialog::AcceptMode acceptMode() const { return m_mode; }
67 void setAcceptMode(QFileDialog::AcceptMode m) { m_mode = m; }
68
70 [[nodiscard]] QString fileFilter() const { return m_filter; }
71 void setFileFilter(const QString &filter) { m_filter = filter; }
72
74 [[nodiscard]] QString dialogCaption() const { return m_caption; }
75 void setDialogCaption(const QString &caption) { m_caption = caption; }
76
78 [[nodiscard]] QString absolutePath() const { return m_absolute; }
79
82 [[nodiscard]] QString displayPath() const;
83
86 [[nodiscard]] bool isDisplayedRelatively() const;
87
88public slots:
92 void setPath(const QString &p);
93
94signals:
96 void pathChanged(const QString &absolutePath);
97
98private slots:
99 void onBrowseClicked();
100 void onLineEditFinished();
101
102private:
104 void refreshDisplay();
105
106 QLineEdit *m_edit = nullptr;
107 QToolButton *m_browse = nullptr;
108
109 QString m_absolute;
110 QString m_anchor;
111 QString m_filter;
112 QString m_caption;
113 QFileDialog::AcceptMode m_mode = QFileDialog::AcceptOpen;
114};
115
116} // namespace openswmmvis::ui
117
118#endif // OPENSWMMVIS_UI_WIDGETS_RELATIVEPATHPICKER_H
A QLineEdit + browse-button widget that normalises display paths against a project anchor.
Definition relativepathpicker.h:50
QString fileFilter() const
Definition relativepathpicker.h:70
void setDialogCaption(const QString &caption)
Definition relativepathpicker.h:75
QString displayPath() const
Definition relativepathpicker.cpp:71
QString absolutePath() const
Definition relativepathpicker.h:78
void setFileFilter(const QString &filter)
Definition relativepathpicker.h:71
bool isDisplayedRelatively() const
Definition relativepathpicker.cpp:76
void setPath(const QString &p)
Definition relativepathpicker.cpp:84
QString dialogCaption() const
Definition relativepathpicker.h:74
QString projectAnchor
Definition relativepathpicker.h:53
void setProjectAnchor(const QString &dir)
Definition relativepathpicker.cpp:63
void pathChanged(const QString &absolutePath)
QString fileFilter
Definition relativepathpicker.h:54
void setAcceptMode(QFileDialog::AcceptMode m)
Definition relativepathpicker.h:67
QFileDialog::AcceptMode acceptMode() const
Definition relativepathpicker.h:66
QString absolutePath
Definition relativepathpicker.h:52
ArrowPlacement p
Definition linesymbollayer.cpp:27
MaskMode m
Definition maskspec.cpp:18
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176