GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — sqlitebrowser/src/FileDialog.cpp at master · sqlitebrowser/sqlitebrowser Expand file tree/ Copy pathFileDialog.cppMore file actions 88 lines (77 loc) · 3.63 KB / Copy pathFileDialog.cppFile metadata and controls88 lines (77 loc) · 3.63 KB 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. |