summaryrefslogtreecommitdiffstats
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
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.
-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