aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-01-16 01:57:37 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2025-01-16 01:57:37 -0500
commit81a21e6ce040e7740de86340c8ea4dba30e69bc3 (patch)
tree95fc1741b907d5ba6d029a42d80092cb7c056c5e /SQLiteStudio3/guiSQLiteStudio/uiutils.cpp
parent3565aad630864ecdbe53fdaa501ea708555b3c7c (diff)
New upstream version 3.4.13+dfsg.upstream/3.4.13+dfsgupstream
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/uiutils.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/uiutils.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp
index a73b8ee..cdad77c 100644
--- a/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/uiutils.cpp
@@ -35,7 +35,7 @@ const QStringList pageSizes = map<QPageSize::PageSizeId, QString>(pageSizeIds, [
const QStringList pageSizesWithDimensions;
-QString getDbPath(const QString &startWith)
+QString getDbPath(bool newFileMode, const QString &startWith)
{
QString dir = startWith;
if (dir.isNull())
@@ -48,8 +48,15 @@ QString getDbPath(const QString &startWith)
});
QFileDialog dialog(nullptr, QObject::tr("Select database file"), dir, QString());
- dialog.setAcceptMode(QFileDialog::AcceptOpen);
+ dialog.setAcceptMode(newFileMode ? QFileDialog::AcceptSave : QFileDialog::AcceptOpen);
+
+ /* As we don't actually overwrite a selected existing database file, switch off the
+ * overwrite warning.
+ * FIXME: QFileDialog::DontConfirmOverwrite does not work on MacOS native dialogs.
+ * Probably some better UX is needed.
+ */
dialog.setOption(QFileDialog::DontConfirmOverwrite, true);
+
dialog.setLabelText(QFileDialog::Accept, QObject::tr("Select"));
dialog.setLabelText(QFileDialog::FileType, QObject::tr("File type"));
dialog.setNameFilters(filters);
@@ -97,6 +104,11 @@ void setValidStateTooltip(QWidget* widget, const QString& tip)
INDICATOR(widget)->setVisible(widget->isEnabled(), tip);
}
+bool isValidStateIndicatorVisible(QWidget* widget)
+{
+ return EXISTS_INDICATOR(widget) && INDICATOR(widget)->isVisible();
+}
+
QString convertPageSize(QPageSize::PageSizeId size)
{
return QPageSize::name(size);