[Kst] branches/work/kst/portto4/kst/src/widgets
Barth Netterfield
netterfield at astro.utoronto.ca
Wed Nov 23 14:27:07 UTC 2011
SVN commit 1265595 by netterfield:
Feature:
~ is expanded to HOME in file and data source selection widgets.
~USER is not expanded, because I haven't found a reasonably system independant way
of doing that.
M +26 -3 datasourceselector.cpp
M +1 -0 datasourceselector.h
M +20 -2 filerequester.cpp
--- branches/work/kst/portto4/kst/src/widgets/datasourceselector.cpp #1265594:1265595
@@ -19,7 +19,7 @@
#include <QToolButton>
#include <QHBoxLayout>
#include <QFileDialog>
-#include <QDirModel>
+#include <QFileSystemModel>
#include <QCompleter>
#include <QPointer>
@@ -59,11 +59,13 @@
_fileButton->setFixedSize(size + 8, size + 8);
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
- connect (_fileEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(changed(const QString &)));
+ //connect (_fileEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(changed(const QString &)));
+ connect (_fileEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateFile(const QString &)));
connect (_fileButton, SIGNAL(clicked()), this, SLOT(chooseFile()));
- QDirModel *dirModel = new QDirModel(this);
+ QFileSystemModel *dirModel = new QFileSystemModel;
dirModel->setFilter(QDir::AllEntries);
+ dirModel->setRootPath(QString('/'));
QCompleter *completer = new QCompleter(this);
completer->setModel(dirModel);
@@ -86,7 +88,28 @@
emit changed(file);
}
+void DataSourceSelector::updateFile(const QString &file) {
+ if (file.contains('~')) {
+ QString home = qgetenv("HOME"); // linux
+ if (!home.isEmpty()) {
+ QString changed_file = file;
+ changed_file.replace('~', home);
+ setFile(changed_file);
+ return;
+ }
+ home = qgetenv("USERPROFILE"); // windows, maybe (?)
+ if (!home.isEmpty()) {
+ QString changed_file = file;
+ changed_file.replace('~', home);
+ setFile(changed_file);
+ return;
+ }
+ }
+ emit changed(file);
+}
+
+
void DataSourceSelector::chooseFile() {
QString file;
QPointer<DataSourceSelectorDialog> dialog = new DataSourceSelectorDialog( _file, this );
--- branches/work/kst/portto4/kst/src/widgets/datasourceselector.h #1265594:1265595
@@ -36,6 +36,7 @@
QLineEdit *_fileEdit;
public Q_SLOTS:
void setFile(const QString &file);
+ void updateFile(const QString &file);
Q_SIGNALS:
void changed(const QString &file);
--- branches/work/kst/portto4/kst/src/widgets/filerequester.cpp #1265594:1265595
@@ -17,7 +17,7 @@
#include <QToolButton>
#include <QHBoxLayout>
#include <QFileDialog>
-#include <QDirModel>
+#include <QFileSystemModel>
#include <QCompleter>
#include <QDebug>
@@ -52,8 +52,9 @@
connect (_fileEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateFile(const QString &)));
connect (_fileButton, SIGNAL(clicked()), this, SLOT(chooseFile()));
- QDirModel *dirModel = new QDirModel(this);
+ QFileSystemModel *dirModel = new QFileSystemModel(this);
dirModel->setFilter(QDir::AllEntries);
+ dirModel->setRootPath(QString('/'));
QCompleter *completer = new QCompleter(this);
completer->setModel(dirModel);
@@ -77,6 +78,23 @@
}
void FileRequester::updateFile(const QString &file) {
+ if (file.contains('~')) {
+ QString home = qgetenv("HOME"); // linux
+ if (!home.isEmpty()) {
+ QString changed_file = file;
+ changed_file.replace('~', home);
+ setFile(changed_file);
+ return;
+ }
+ home = qgetenv("USERPROFILE"); // windows, maybe (?)
+ if (!home.isEmpty()) {
+ QString changed_file = file;
+ changed_file.replace('~', home);
+ setFile(changed_file);
+ return;
+ }
+ }
+
_file = file;
emit changed(file);
}
More information about the Kst
mailing list