[Kst] branches/work/kst/1.5/kst/src/libkstapp

Andrew Walker arwalker at sumusltd.com
Fri Jun 29 02:03:18 CEST 2007


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();


More information about the Kst mailing list