summaryrefslogtreecommitdiffstats
path: root/Source/QtDialog
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2008-02-01 15:41:29 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2008-02-01 15:41:29 (GMT)
commit41ad9d20df1b6d5466459e654f75094c008c9a0b (patch)
tree7f3fa76fbd229cdc3af798d45686dca0176209e1 /Source/QtDialog
parent587419db831b9e7e2172bcb6e5b04d81198c5eb8 (diff)
downloadCMake-41ad9d20df1b6d5466459e654f75094c008c9a0b.zip
CMake-41ad9d20df1b6d5466459e654f75094c008c9a0b.tar.gz
CMake-41ad9d20df1b6d5466459e654f75094c008c9a0b.tar.bz2
ENH: Use translation file if it exists for the locale.
Consolidate some strings. More responsive interrupting. Prompt user if they try to close during configure, and allow them to close.
Diffstat (limited to 'Source/QtDialog')
-rw-r--r--Source/QtDialog/CMakeSetup.cxx9
-rw-r--r--Source/QtDialog/CMakeSetupDialog.cxx61
-rw-r--r--Source/QtDialog/CMakeSetupDialog.h3
-rw-r--r--Source/QtDialog/QCMake.cxx2
4 files changed, 46 insertions, 29 deletions
diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx
index 3543903..255b757 100644
--- a/Source/QtDialog/CMakeSetup.cxx
+++ b/Source/QtDialog/CMakeSetup.cxx
@@ -18,6 +18,7 @@
#include <QApplication>
#include <QFileInfo>
#include <QDir>
+#include <QTranslator>
#include "CMakeSetupDialog.h"
#include "cmDocumentation.h"
@@ -64,6 +65,12 @@ int main(int argc, char** argv)
{
cmSystemTools::FindExecutableDirectory(argv[0]);
QApplication app(argc, argv);
+
+ QTranslator translator;
+ QString transfile = QString("cmake_%1").arg(QLocale::system().name());
+ translator.load(transfile, app.applicationDirPath());
+ app.installTranslator(&translator);
+
app.setApplicationName("CMakeSetup");
app.setOrganizationName("Kitware");
app.setWindowIcon(QIcon(":/Icons/CMakeSetup.png"));
@@ -99,7 +106,7 @@ int main(int argc, char** argv)
}
CMakeSetupDialog dialog;
- dialog.setWindowTitle("CMakeSetup");
+ dialog.setWindowTitle(QApplication::applicationName());
dialog.show();
// for now: args support specifying build and/or source directory
diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx
index 21e5782..04a4dc7 100644
--- a/Source/QtDialog/CMakeSetupDialog.cxx
+++ b/Source/QtDialog/CMakeSetupDialog.cxx
@@ -48,19 +48,9 @@ QCMake* QCMakeThread::cmakeInstance() const
return this->CMakeInstance;
}
-void QCMakeThread::processEvents()
-{
- QCoreApplication::processEvents();
-}
-
void QCMakeThread::run()
{
this->CMakeInstance = new QCMake;
- // make the cmake thread to process events it receives from the GUI thread
- QObject::connect(this->CMakeInstance, SIGNAL(progressChanged(QString, float)),
- this, SLOT(processEvents()), Qt::DirectConnection);
- QObject::connect(this->CMakeInstance, SIGNAL(outputMessage(QString)),
- this, SLOT(processEvents()), Qt::DirectConnection);
// emit that this cmake thread is ready for use
emit this->cmakeInitialized();
this->exec();
@@ -233,7 +223,7 @@ CMakeSetupDialog::~CMakeSetupDialog()
// wait for thread to stop
this->CMakeThread->quit();
- this->CMakeThread->wait();
+ this->CMakeThread->wait(2000);
}
void CMakeSetupDialog::doConfigure()
@@ -250,8 +240,9 @@ void CMakeSetupDialog::doConfigure()
if(!dir.exists())
{
QString message = tr("Build directory does not exist, "
- "should I create it?\n\n"
- "Directory: ");
+ "should I create it?")
+ + "\n\n"
+ + tr("Directory: ");
message += bindir;
QString title = tr("Create Directory");
QMessageBox::StandardButton btn;
@@ -330,13 +321,7 @@ void CMakeSetupDialog::doGenerate()
void CMakeSetupDialog::closeEvent(QCloseEvent* e)
{
- // don't close if we're busy
- if(this->CurrentState == Configuring || this->CurrentState == Generating)
- {
- e->ignore();
- }
-
- // prompt for close if there are unsaved changes
+ // prompt for close if there are unsaved changes, and we're not busy
if(this->CacheModified)
{
QString message = tr("You have changed options but not rebuilt, "
@@ -350,6 +335,32 @@ void CMakeSetupDialog::closeEvent(QCloseEvent* e)
e->ignore();
}
}
+
+ // don't close if we're busy, unless the user really wants to
+ if(this->CurrentState == Configuring)
+ {
+ QString message = "You are in the middle of a Configure.\n"
+ "If you Exit now the configure information will be lost.\n"
+ "Are you sure you want to Exit?";
+ QString title = tr("Confirm Exit");
+ QMessageBox::StandardButton btn;
+ btn = QMessageBox::critical(this, title, message,
+ QMessageBox::Yes | QMessageBox::No);
+ if(btn == QMessageBox::No)
+ {
+ e->ignore();
+ }
+ else
+ {
+ this->doInterrupt();
+ }
+ }
+
+ // let the generate finish
+ if(this->CurrentState == Generating)
+ {
+ e->ignore();
+ }
}
void CMakeSetupDialog::doHelp()
@@ -373,7 +384,7 @@ void CMakeSetupDialog::doHelp()
"directory.");
QDialog dialog;
- dialog.setWindowTitle(tr("CMakeSetup Help"));
+ dialog.setWindowTitle(tr("Help"));
QVBoxLayout* l = new QVBoxLayout(&dialog);
QLabel* lab = new QLabel(&dialog);
l->addWidget(lab);
@@ -484,7 +495,7 @@ void CMakeSetupDialog::promptForGenerator()
QStringList gens = this->CMakeThread->cmakeInstance()->availableGenerators();
QDialog dialog;
- dialog.setWindowTitle(tr("CMakeSetup choose generator"));
+ dialog.setWindowTitle(tr("Choose Generator"));
QLabel* lab = new QLabel(&dialog);
lab->setText(tr("Please select what build system you want CMake to generate files for.\n"
"You should select the tool that you will use to build the project.\n"
@@ -539,10 +550,10 @@ void CMakeSetupDialog::doDeleteCache()
void CMakeSetupDialog::doAbout()
{
- QString msg = "CMakeSetup\nwww.cmake.org";
+ QString msg = QApplication::applicationName() + "\nwww.cmake.org";
QDialog dialog;
- dialog.setWindowTitle(tr("About CMakeSetup"));
+ dialog.setWindowTitle(tr("About"));
QVBoxLayout* l = new QVBoxLayout(&dialog);
QLabel* lab = new QLabel(&dialog);
l->addWidget(lab);
@@ -762,7 +773,7 @@ void CMakeSetupDialog::addCacheEntry()
{
QDialog dialog(this);
dialog.resize(400, 200);
- dialog.setWindowTitle(tr("CMakeSetup Help"));
+ dialog.setWindowTitle(tr("Add Cache Entry"));
QVBoxLayout* l = new QVBoxLayout(&dialog);
AddCacheEntry* w = new AddCacheEntry(&dialog);
QDialogButtonBox* btns = new QDialogButtonBox(
diff --git a/Source/QtDialog/CMakeSetupDialog.h b/Source/QtDialog/CMakeSetupDialog.h
index 1294594..edbede6 100644
--- a/Source/QtDialog/CMakeSetupDialog.h
+++ b/Source/QtDialog/CMakeSetupDialog.h
@@ -103,9 +103,6 @@ public:
signals:
void cmakeInitialized();
-protected slots:
- void processEvents();
-
protected:
virtual void run();
QCMake* CMakeInstance;
diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx
index 92fca88..5c68898 100644
--- a/Source/QtDialog/QCMake.cxx
+++ b/Source/QtDialog/QCMake.cxx
@@ -292,6 +292,7 @@ void QCMake::progressCallback(const char* msg, float percent, void* cd)
{
emit self->outputMessage(msg);
}
+ QCoreApplication::processEvents();
}
void QCMake::errorCallback(const char* msg, const char* /*title*/,
@@ -299,6 +300,7 @@ void QCMake::errorCallback(const char* msg, const char* /*title*/,
{
QCMake* self = reinterpret_cast<QCMake*>(cd);
emit self->errorMessage(msg);
+ QCoreApplication::processEvents();
}
QString QCMake::binaryDirectory() const