Summary: | Dirfile datasource opens the file dialog one folder too deep | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Andrew Walker <arwalker> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | 1.4.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Andrew Walker
2007-05-22 22:38:47 UTC
This also applies to the new matrix dialog. SVN commit 681452 by arwalker: BUG:145822 Open the file dialog at the correct level for folder based datasources M +27 -0 kstdatawizard_i.cpp M +2 -0 kstdatawizard_i.h M +26 -0 kstmatrixdialog_i.cpp M +3 -1 kstmatrixdialog_i.h M +26 -0 kstvectordialog_i.cpp M +3 -1 kstvectordialog_i.h --- branches/work/kst/1.5/kst/src/libkstapp/kstdatawizard_i.cpp #681451:681452 @@ -26,8 +26,10 @@ #include <qregexp.h> #include <qspinbox.h> #include <qstring.h> +#include <qtimer.h> #include <qtooltip.h> +#include <kfiledialog.h> #include <kiconloader.h> #include <kmessagebox.h> #include <knuminput.h> @@ -81,6 +83,7 @@ _vectors->setSorting(1); _vectorsToPlot->setSorting(-1); + connect(_url, SIGNAL(openFileDialog(KURLRequester *)), this, SLOT(selectFolder())); connect(_cycleThrough, SIGNAL(toggled(bool)), _plotNumber, SLOT(setEnabled(bool))); connect(_existingPlot, SIGNAL(toggled(bool)), _existingPlotName, SLOT(setEnabled(bool))); connect(_existingWindow, SIGNAL(toggled(bool)), _windowName, SLOT(setEnabled(bool))); @@ -168,6 +171,30 @@ } +void KstDataWizard::selectingFolder() +{ + QString strFolder = _url->url(); + KFileDialog *fileDlg = _url->fileDialog(); + QFileInfo fileInfo(strFolder); + + if (fileDlg) { + if (fileInfo.isDir()) { + QDir dir(strFolder); + + if (dir.cdUp()) { + fileDlg->setURL(KURL(dir.absPath())); + } + } + } +} + + +void KstDataWizard::selectFolder() +{ + QTimer::singleShot(0, this, SLOT(selectingFolder())); +} + + void KstDataWizard::setInput(const QString& input) { _url->setURL(input); --- branches/work/kst/1.5/kst/src/libkstapp/kstdatawizard_i.h #681451:681452 @@ -40,6 +40,8 @@ void loadSettings(); public slots: + void selectFolder(); + void selectingFolder(); void setInput( const QString &input ); void plotColsChanged(); void xChanged(); --- branches/work/kst/1.5/kst/src/libkstapp/kstmatrixdialog_i.cpp #681451:681452 @@ -27,6 +27,7 @@ // include files for KDE #include <kcombobox.h> +#include <kfiledialog.h> #include <kmessagebox.h> #include <kurlcompletion.h> #include <kurlrequester.h> @@ -66,6 +67,7 @@ connect(_w->_doSkip, SIGNAL(clicked()), this, SLOT(updateEnables())); _w->_fileName->setMode(KFile::File | KFile::Directory | KFile::ExistingOnly); + connect(_w->_fileName, SIGNAL(openFileDialog(KURLRequester *)), this, SLOT(selectFolder())); connect(_w->_fileName, SIGNAL(textChanged(const QString&)), this, SLOT(updateCompletion())); connect(_w->_configure, SIGNAL(clicked()), this, SLOT(configureSource())); connect(_w->_readFromSource, SIGNAL(clicked()), this, SLOT(enableSource())); @@ -98,6 +100,30 @@ } +void KstMatrixDialogI::selectingFolder() +{ + QString strFolder = _w->_fileName->url(); + KFileDialog *fileDlg = _w->_fileName->fileDialog(); + QFileInfo fileInfo(strFolder); + + if (fileDlg) { + if (fileInfo.isDir()) { + QDir dir(strFolder); + + if (dir.cdUp()) { + fileDlg->setURL(KURL(dir.absPath())); + } + } + } +} + + +void KstMatrixDialogI::selectFolder() +{ + QTimer::singleShot(0, this, SLOT(selectingFolder())); +} + + void KstMatrixDialogI::updateWindow() { } --- branches/work/kst/1.5/kst/src/libkstapp/kstmatrixdialog_i.h #681451:681452 @@ -36,8 +36,10 @@ protected: QString editTitle() { return tr("Edit Matrix"); } QString newTitle() { return tr("New Matrix"); } - + public slots: + void selectFolder(); + void selectingFolder(); void update(); void updateWindow(); void updateCompletion(); --- branches/work/kst/1.5/kst/src/libkstapp/kstvectordialog_i.cpp #681451:681452 @@ -26,6 +26,7 @@ #include <qvbox.h> #include <kdialogbase.h> +#include <kfiledialog.h> #include <klineedit.h> #include <klocale.h> #include <kmessagebox.h> @@ -68,6 +69,7 @@ _w->FileName->completionObject()->setDir(QDir::currentDirPath()); _w->FileName->setMode(KFile::File | KFile::Directory | KFile::ExistingOnly); + connect(_w->FileName, SIGNAL(openFileDialog(KURLRequester *)), this, SLOT(selectFolder())); connect(_w->FileName, SIGNAL(textChanged(const QString&)), this, SLOT(updateCompletion())); connect(_w->_configure, SIGNAL(clicked()), this, SLOT(configureSource())); connect(_w->_readFromSource, SIGNAL(clicked()), this, SLOT(enableSource())); @@ -98,6 +100,30 @@ } +void KstVectorDialogI::selectingFolder() +{ + QString strFolder = _w->FileName->url(); + KFileDialog *fileDlg = _w->FileName->fileDialog(); + QFileInfo fileInfo(strFolder); + + if (fileDlg) { + if (fileInfo.isDir()) { + QDir dir(strFolder); + + if (dir.cdUp()) { + fileDlg->setURL(KURL(dir.absPath())); + } + } + } +} + + +void KstVectorDialogI::selectFolder() +{ + QTimer::singleShot(0, this, SLOT(selectingFolder())); +} + + void KstVectorDialogI::testURL() { _inTest = true; updateCompletion(); --- branches/work/kst/1.5/kst/src/libkstapp/kstvectordialog_i.h #681451:681452 @@ -34,8 +34,10 @@ protected: QString editTitle() { return tr("Edit Vector"); } QString newTitle() { return tr("New Vector"); } - + public slots: + void selectFolder(); + void selectingFolder(); bool newObject(); bool editObject(); void populateEditMultiple(); |