GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — sqlitebrowser/src/FileDialog.cpp at master · sqlitebrowser/sqlitebrowser

Expand file tree

/

FileDialog.cpp

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
88 lines (77 loc) · 3.63 KB
/

FileDialog.cpp

Copy path

File metadata and controls

88 lines (77 loc) · 3.63 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include "FileDialog.h"
#include "Settings.h"
QString FileDialog::getOpenFileName(const FileDialogTypes dialogType, QWidget* parent, const QString& caption, const QString &filter, QString *selectedFilter, Options options)
{
QString result = QFileDialog::getOpenFileName(parent, caption, getFileDialogPath(dialogType), filter, selectedFilter, options);
if(!result.isEmpty())
setFileDialogPath(dialogType, result);
return result;
}
QStringList FileDialog::getOpenFileNames(const FileDialogTypes dialogType, QWidget *parent, const QString &caption, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
{
QStringList result = QFileDialog::getOpenFileNames(parent, caption, getFileDialogPath(dialogType), filter, selectedFilter, options);
if(!result.isEmpty())
{
QFileInfo path = QFileInfo(result.first());
setFileDialogPath(dialogType, path.absoluteFilePath());
}
return result;
}
QString FileDialog::getSaveFileName(const FileDialogTypes dialogType, QWidget* parent, const QString& caption, const QString& filter, const QString& defaultFileName, QString* selectedFilter, Options options)
{
QString dir = getFileDialogPath(dialogType);
if(!defaultFileName.isEmpty())
dir += "/" + defaultFileName;
QString result = QFileDialog::getSaveFileName(parent, caption, dir, filter, selectedFilter, options);
if(!result.isEmpty())
setFileDialogPath(dialogType, result);
return result;
}
QString FileDialog::getExistingDirectory(const FileDialogTypes dialogType, QWidget* parent, const QString& caption, Options options)
{
QString result = QFileDialog::getExistingDirectory(parent, caption, getFileDialogPath(dialogType), options);
if(!result.isEmpty())
setFileDialogPath(dialogType, result);
return result;
}
QString FileDialog::getFileDialogPath(const FileDialogTypes dialogType)
{
switch(Settings::getValue("db", "savedefaultlocation").toInt())
{
case 0: // Remember last location
case 2: { // Remember last location for current session only
QHash<QString, QVariant> lastLocations = Settings::getValue("db", "lastlocations").toHash();
QString lastLocation = lastLocations[QString::number(static_cast<int>(dialogType))].toString();
// Without a remembered location, fall back to the home directory instead of
// letting Qt use the working directory (which is "/" for apps launched from Finder)
if(lastLocation.isEmpty())
return QDir::homePath();
return lastLocation;
}
case 1: // Always use this location
return Settings::getValue("db", "defaultlocation").toString();
default:
return QString();
}
}
void FileDialog::setFileDialogPath(const FileDialogTypes dialogType, const QString& new_path)
{
QString dir = QFileInfo(new_path).absolutePath();
QHash<QString, QVariant> lastLocations = Settings::getValue("db", "lastlocations").toHash();
lastLocations[QString::number(static_cast<int>(dialogType))] = dir;
switch(Settings::getValue("db", "savedefaultlocation").toInt())
{
case 0: // Remember last location
Settings::setValue("db", "lastlocations", lastLocations);
break;
case 2: // Remember last location for current session only
Settings::setValue("db", "lastlocations", lastLocations, false);
break;
case 1: // Always use this locations
break; // Do nothing
}
}
QString FileDialog::getSqlDatabaseFileFilter()
{
return Settings::getValue("General", "DBFileExtensions").toString() + ";;" + QObject::tr("All files (*)"); //Always add "All files (*)" to the available filters
}
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.