[cmake-commits] clinton committed CMakeSetupDialog.cxx 1.10 1.11 CMakeSetupDialog.h 1.10 1.11

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Nov 6 21:27:47 EST 2007


Update of /cvsroot/CMake/CMake/Source/QtDialog
In directory public:/mounts/ram/cvs-serv10325

Modified Files:
	CMakeSetupDialog.cxx CMakeSetupDialog.h 
Log Message:

BUG:  Put back read/write of original WhereBuild* settings.
ENH:  Make public a couple functions to support command line args.
      Try removing exit after generate to see if others like it.
COMP:  Fix warnings.



Index: CMakeSetupDialog.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.cxx,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- CMakeSetupDialog.cxx	7 Nov 2007 00:25:43 -0000	1.10
+++ CMakeSetupDialog.cxx	7 Nov 2007 02:27:45 -0000	1.11
@@ -107,7 +107,7 @@
   this->GenerateAction = ToolsMenu->addAction(tr("&Generate"));
   QObject::connect(this->GenerateAction, SIGNAL(triggered(bool)), 
                    this, SLOT(doGenerate()));
-  
+  /* 
   QMenu* OptionsMenu = this->menuBar()->addMenu(tr("&Options"));
   QAction* a = OptionsMenu->addAction(tr("Exit after Generation"));
   a->setCheckable(true);
@@ -115,9 +115,10 @@
   a->setChecked(this->ExitAfterGenerate);
   QObject::connect(a, SIGNAL(triggered(bool)),
                    this, SLOT(setExitAfterGenerate(bool)));
+                   */
 
   QMenu* HelpMenu = this->menuBar()->addMenu(tr("&Help"));
-  a = HelpMenu->addAction(tr("About"));
+  QAction* a = HelpMenu->addAction(tr("About"));
   QObject::connect(a, SIGNAL(triggered(bool)),
                    this, SLOT(doAbout()));
   a = HelpMenu->addAction(tr("Help"));
@@ -205,9 +206,7 @@
                    this, SLOT(cacheModelDirty()));
 
   // get the saved binary directories
-  QSettings settings;
-  settings.beginGroup("Settings/StartPath");
-  QStringList buildPaths = settings.value("WhereBuild").toStringList();
+  QStringList buildPaths = this->loadBuildPaths();
   this->BinaryDirectory->addItems(buildPaths);
 }
 
@@ -288,17 +287,19 @@
   this->setEnabledState(true);
   this->setGenerateEnabled(true);
   this->ProgressBar->reset();
-  this->statusBar()->showMessage(tr("Generate Done"), 2000);
+  this->statusBar()->showMessage(tr("Generate Done"));
   if(err != 0)
     {
     QMessageBox::critical(this, tr("Error"), 
       tr("Error in generation process, project files may be invalid"),
       QMessageBox::Ok);
     }
+  /*
   else if(this->ExitAfterGenerate)
     {
     QApplication::quit();
     }
+    */
 }
 
 void CMakeSetupDialog::doGenerate()
@@ -381,7 +382,7 @@
     tr("Enter Path to Source"), this->SourceDirectory->text());
   if(!dir.isEmpty())
     {
-    this->SourceDirectory->setText(dir);
+    this->setSourceDirectory(dir);
     }
 }
 
@@ -389,7 +390,7 @@
 {
   if(this->SourceDirectory->text() != dir)
     {
-    this->SourceDirectory->setText(dir);
+    this->setSourceDirectory(dir);
     }
 }
 
@@ -412,6 +413,11 @@
     "setBinaryDirectory", Qt::QueuedConnection, Q_ARG(QString, dir));
 }
 
+void CMakeSetupDialog::setSourceDirectory(const QString& dir)
+{
+  this->SourceDirectory->setText(dir);
+}
+
 void CMakeSetupDialog::showProgress(const QString& msg, float percent)
 {
   this->statusBar()->showMessage(msg);
@@ -530,9 +536,11 @@
 void CMakeSetupDialog::setExitAfterGenerate(bool b)
 {
   this->ExitAfterGenerate = b;
+  /*
   QSettings settings;
   settings.beginGroup("Settings/StartPath");
   settings.setValue("ExitAfterGenerate", b);
+  */
 }
 
 void CMakeSetupDialog::cacheModelDirty()
@@ -553,10 +561,8 @@
 {
   QString cleanpath = QDir::cleanPath(path);
   
-  QSettings settings;
-  settings.beginGroup("Settings/StartPath");
-  QStringList buildPaths = settings.value("WhereBuild").toStringList();
-  buildPaths.removeAll(cleanpath);
+  // update UI
+  this->BinaryDirectory->blockSignals(true);
   int idx = this->BinaryDirectory->findText(cleanpath);
   if(idx != -1)
     {
@@ -564,18 +570,19 @@
     }
   this->BinaryDirectory->insertItem(0, cleanpath);
   this->BinaryDirectory->setCurrentIndex(0);
+  this->BinaryDirectory->blockSignals(false);
+  
+  // save to registry
+  QStringList buildPaths = this->loadBuildPaths();
+  buildPaths.removeAll(cleanpath);
   buildPaths.prepend(cleanpath);
-  while(buildPaths.count() > 10)
-    {
-    buildPaths.removeLast();
-    }
-  settings.setValue("WhereBuild", buildPaths);
+  this->saveBuildPaths(buildPaths);
 }
 
 void CMakeSetupDialog::dragEnterEvent(QDragEnterEvent* e)
 {
-  const QMimeData* data = e->mimeData();
-  QList<QUrl> urls = data->urls();
+  const QMimeData* dat = e->mimeData();
+  QList<QUrl> urls = dat->urls();
   QString file = urls.count() ? urls[0].toLocalFile() : QString();
   if(!file.isEmpty() && 
     (file.endsWith("CMakeCache.txt", Qt::CaseInsensitive) ||
@@ -591,8 +598,8 @@
 
 void CMakeSetupDialog::dropEvent(QDropEvent* e)
 {
-  const QMimeData* data = e->mimeData();
-  QList<QUrl> urls = data->urls();
+  const QMimeData* dat = e->mimeData();
+  QList<QUrl> urls = dat->urls();
   QString file = urls.count() ? urls[0].toLocalFile() : QString();
   if(file.endsWith("CMakeCache.txt", Qt::CaseInsensitive))
     {
@@ -602,8 +609,42 @@
   else if(file.endsWith("CMakeLists.txt", Qt::CaseInsensitive))
     {
     QFileInfo info(file);
-    this->SourceDirectory->setText(info.absolutePath());
+    this->setSourceDirectory(info.absolutePath());
     this->setBinaryDirectory(info.absolutePath());
     }
 }
 
+QStringList CMakeSetupDialog::loadBuildPaths()
+{
+  QSettings settings;
+  settings.beginGroup("Settings/StartPath");
+
+  QStringList buildPaths;
+  for(int i=0; i<10; i++)
+    { 
+      QString p = settings.value(QString("WhereBuild%1").arg(i)).toString();
+      if(!p.isEmpty())
+        {
+        buildPaths.append(p);
+        }
+    }
+  return buildPaths;
+}
+
+void CMakeSetupDialog::saveBuildPaths(const QStringList& paths)
+{
+  QSettings settings;
+  settings.beginGroup("Settings/StartPath");
+
+  int num = paths.count();
+  if(num > 10)
+    {
+    num = 10;
+    }
+
+  for(int i=0; i<num; i++)
+    { 
+    settings.setValue(QString("WhereBuild%1").arg(i), paths[i]);
+    }
+}
+

Index: CMakeSetupDialog.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/QtDialog/CMakeSetupDialog.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- CMakeSetupDialog.h	7 Nov 2007 00:25:43 -0000	1.10
+++ CMakeSetupDialog.h	7 Nov 2007 02:27:45 -0000	1.11
@@ -36,6 +36,10 @@
   CMakeSetupDialog();
   ~CMakeSetupDialog();
 
+public slots:
+  void setBinaryDirectory(const QString& dir);
+  void setSourceDirectory(const QString& dir);
+
 protected slots: 
   void initialize();
   void doConfigure();
@@ -52,7 +56,6 @@
   void doReloadCache();
   void doDeleteCache();
   void updateSourceDirectory(const QString& dir);
-  void setBinaryDirectory(const QString& dir);
   void showProgress(const QString& msg, float percent);
   void setEnabledState(bool);
   void promptForGenerator();
@@ -61,6 +64,8 @@
   void cacheModelDirty();
   void setGenerateEnabled(bool);
   void addBinaryPath(const QString&);
+  QStringList loadBuildPaths();
+  void saveBuildPaths(const QStringList&);
 
 protected:
   void closeEvent(QCloseEvent*);



More information about the Cmake-commits mailing list