KSeExpr 6.0.0.0
ExprFileDialog.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2011-2019 Disney Enterprises, Inc.
2// SPDX-License-Identifier: LicenseRef-Apache-2.0
3// SPDX-FileCopyrightText: 2020 L. E. Segovia <amy@amyspark.me>
4// SPDX-License-Identifier: GPL-3.0-or-later
5
6// NOTE: This is based on Dan's paint3d FileDialog
7
8#pragma once
9
10#include <QCheckBox>
11#include <QComboBox>
12#include <QFileDialog>
13#include <QLabel>
14#include <QLineEdit>
15#include <QPixmap>
16#include <QPushButton>
17#include <QVBoxLayout>
18#include <atomic>
19
20class ExprPreviewWidget : public QWidget
21{
22public:
23 ExprPreviewWidget(QWidget *parent);
24 void makePreview(const QString &path);
25 void reset()
26 {
27 _pm->setPixmap(QPixmap());
28 }
29
30private:
31 QLabel *_pm;
32};
33
34class ExprFileDialog : public QFileDialog
35{
36 Q_OBJECT
37public:
38 ExprFileDialog(QWidget *parent = nullptr);
39 void addLookInEntries(const QStringList &paths);
40 void saveLookInEntries();
42 QString getOpenFileName(const QString &caption = QString(), const QString &startWith = QString(), const QString &filter = QString());
43 QString getExistingDirectory(const QString &caption = QString(), const QString &startWith = QString(), const QString &filter = QString());
44 QString getExistingOrNewDirectory(const QString &caption = QString(), const QString &startWith = QString(), const QString &filter = QString());
45 QStringList getOpenFileNames(const QString &caption = QString(), const QString &startWith = QString(), const QString &filter = QString());
46 QString getSaveFileName(const QString &caption = QString(), const QString &startWith = QString(), const QString &filter = QString());
47 void setPreview();
48 void resetPreview();
49 void addCheckBox(const QString &s);
50 void addFavoritesButton(const QString &dirname, const QString &linkname, const QString &linkdir);
51 bool checkBoxStatus();
52 void showCheckBox();
53 void hideCheckBox();
54 void addComboBox(const QString &s, const QStringList &sl);
55 void showComboBox();
56 void hideComboBox();
57 QComboBox *getComboBox()
58 {
59 return _combo;
60 }
61 void setButtonName(const QString &str);
62 void addSidebarShortcut(const QString &s);
63
64private Q_SLOTS:
65 void handleOk();
66 void editReturnPress();
67 void gotoFavorites();
68 void selChanged(const QString &path);
69 void resetDir()
70 {
71 if (!_temppath.isEmpty())
72 setDirectory(_temppath);
73 _temppath = QString();
74 }
75
76private:
78 QString _temppath;
79 QStringList _lookInList;
80 QLineEdit *_nameEdit {nullptr};
81 QPushButton *_okButton {nullptr};
82 std::atomic<bool> _createDir{};
84 QCheckBox *_cb {nullptr};
85 QLabel *_combolabel {nullptr};
86 QComboBox *_combo {nullptr};
87};
QString _workingDirectory
QStringList getOpenFileNames(const QString &caption=QString(), const QString &startWith=QString(), const QString &filter=QString())
QString getExistingDirectory(const QString &caption=QString(), const QString &startWith=QString(), const QString &filter=QString())
QString getExistingOrNewDirectory(const QString &caption=QString(), const QString &startWith=QString(), const QString &filter=QString())
void addLookInEntries(const QStringList &paths)
void addFavoritesButton(const QString &dirname, const QString &linkname, const QString &linkdir)
ExprPreviewWidget * _pw
QComboBox * _combo
QLabel * _combolabel
void setButtonName(const QString &str)
void addComboBox(const QString &s, const QStringList &sl)
void addSidebarShortcut(const QString &s)
void addCheckBox(const QString &s)
QString getSaveFileName(const QString &caption=QString(), const QString &startWith=QString(), const QString &filter=QString())
QLineEdit * _nameEdit
std::atomic< bool > _createDir
QStringList _lookInList
QPushButton * _okButton
QCheckBox * _cb
QString getOpenFileName(const QString &caption=QString(), const QString &startWith=QString(), const QString &filter=QString())
QComboBox * getComboBox()
void selChanged(const QString &path)
void makePreview(const QString &path)