diff options
author | Clinton Stimpson <clinton@elemtech.com> | 2008-02-01 15:41:29 (GMT) |
---|---|---|
committer | Clinton Stimpson <clinton@elemtech.com> | 2008-02-01 15:41:29 (GMT) |
commit | 41ad9d20df1b6d5466459e654f75094c008c9a0b (patch) | |
tree | 7f3fa76fbd229cdc3af798d45686dca0176209e1 | |
parent | 587419db831b9e7e2172bcb6e5b04d81198c5eb8 (diff) | |
download | CMake-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.
-rw-r--r-- | Source/QtDialog/CMakeSetup.cxx | 9 | ||||
-rw-r--r-- | Source/QtDialog/CMakeSetupDialog.cxx | 61 | ||||
-rw-r--r-- | Source/QtDialog/CMakeSetupDialog.h | 3 | ||||
-rw-r--r-- | Source/QtDialog/QCMake.cxx | 2 |
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 |