diff --git a/fuel.pro b/fuel.pro index 3d6f809..18664a0 100644 --- a/fuel.pro +++ b/fuel.pro @@ -64,3 +64,7 @@ FORMS += ui/MainWindow.ui \ RESOURCES += \ rsrc/resources.qrc +unix { + system(intl/convert.sh) +} + diff --git a/intl/convert.sh b/intl/convert.sh new file mode 100755 index 0000000..aa12e97 --- /dev/null +++ b/intl/convert.sh @@ -0,0 +1,17 @@ +#!/bin/sh +SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PRJDIR=$SCRIPTDIR/.. +INTLDIR=$SCRIPTDIR + +echo "Converting localizations" + +rm -rf $PRJDIR/rsrc/intl +mkdir $PRJDIR/rsrc/intl + +for i in $INTLDIR/*.po +do + TARGET=`basename $i .po`.qm + echo "$TARGET" + lconvert $i -o $PRJDIR/rsrc/intl/$TARGET +done + diff --git a/manifest b/manifest index 57f6192..9eac04d 100644 --- a/manifest +++ b/manifest @@ -1,11 +1,12 @@ -C Added\sbuild\sinstructions\sfor\swindows -D 2012-05-17T14:41:29.847 +C Initial\ssupport\sfor\slocalization +D 2012-09-23T10:20:57.755 F dist/arch/PKGBUILD dd21073c035af4e6a4ecb3842c1fd7ae45c5e93d F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381 F doc/Changes.txt e21c9355aaeb7643c8d6784effd2f9ebadf3a8e0 F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c -F fuel.pro 2f1650c8b3e4b09eeb5b6283655d2142fe67cb00 +F fuel.pro f9053752c0ea40a7f9c90ac738a6c1689b92dfe5 +F intl/convert.sh 6dfabd9c78df20b2c5c767b301cc4cd8813f442d x F rsrc/fuel.desktop 43145556bc61f5a91b497c38a16aec44af271d29 F rsrc/fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79 F rsrc/icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8 @@ -174,20 +175,20 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp 4041709d8fa2d9485fd64b8838ddfed5eccb277d -F src/MainWindow.h f97ef3776d10211f42651cd2b7c7291d90bac3c1 -F src/SettingsDialog.cpp 296c77c5704bd8cb77a00d561db072aaaf60c1d6 -F src/SettingsDialog.h 9592ec491cd44a5bff70ea42853d7e1f053f4040 +F src/MainWindow.cpp 026cb929ead96dd5885be7ff14190c7ff8d033d5 +F src/MainWindow.h 7839457d09848b40beb03e36ddc4f755d8631881 +F src/SettingsDialog.cpp 824ab2445df35aec131e0c1d891c96f660c1bb28 +F src/SettingsDialog.h 09d3f375b2fab59248fae9bd12419f2985720d28 F src/Utils.cpp caca5268e3194abe77211040bf9511a82909d2e6 F src/Utils.h 5af911147390879176e587fc60fb662490bb9e97 -F src/main.cpp f2913af0af1a5fcbebe93fb53b8a9cf6e7bbf65a +F src/main.cpp fcd78f44b893fb9c93bbb71a2e861bd36af95f88 F tools/pack.sh d7f38a498c4e9327fecd6a6e5ac27be270d43008 x F ui/CloneDialog.ui 0fc820804df91f16506ee466a44519fdd44e468f -F ui/CommitDialog.ui 813d7cba316e226de1a22b7e480bb969fbe9b0c4 -F ui/FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7 +F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f +F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d F ui/MainWindow.ui 6ad583b6d864ccbeac8e3fd1d05cd964bc17c5f9 F ui/SettingsDialog.ui cd6faff19c1a6c2640193eb5a258f0daa926a2cf -P 623d92282857d1eef5ba9314b02ee9482ad7e7ea -R 994818d5dcdeeac6bdf896aa00d04986 +P 1760813f6ce3ed23ab45bee2fbde8cbf487d2481 +R 12e9a8ebc31d18b45a1d208db05caf62 U kostas -Z fa78223180c8f2827d94a33c07e67bbb +Z 63bee23b106d51238aa4d200b0a7da88 diff --git a/manifest.uuid b/manifest.uuid index 80bc6b2..d58c032 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1760813f6ce3ed23ab45bee2fbde8cbf487d2481 \ No newline at end of file +8d881de4e52069221dd6ae38a436449fbccdac25 \ No newline at end of file diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 2162d05..ae7d849 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -106,9 +106,10 @@ private: }; /////////////////////////////////////////////////////////////////////////////// -MainWindow::MainWindow(QWidget *parent, QString *workspacePath, bool portableMode) : +MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspacePath) : QMainWindow(parent), - ui(new Ui::MainWindow) + ui(new Ui::MainWindow), + settings(_settings) { ui->setupUi(this); @@ -197,17 +198,6 @@ MainWindow::MainWindow(QWidget *parent, QString *workspacePath, bool portableMod viewMode = VIEWMODE_TREE; - // Go into portable mode when explicitly requested or if a config file exists next to the executable - QString ini_path = QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + QDir::separator() + QCoreApplication::applicationName() + ".ini"); - if(portableMode || QFile::exists(ini_path)) - qsettings = new QSettings(ini_path, QSettings::IniFormat); - else - { - // Linux: ~/.config/organizationName/applicationName.conf - // Windows: HKEY_CURRENT_USER\Software\organizationName\Fuel - qsettings = new QSettings(QSettings::UserScope, QCoreApplication::organizationName(), QCoreApplication::applicationName()); - } - loadSettings(); // Apply any explicit workspace path if available @@ -228,7 +218,6 @@ MainWindow::~MainWindow() { stopUI(); saveSettings(); - delete qsettings; // Dispose RepoFiles for(filemap_t::iterator it = workspaceFiles.begin(); it!=workspaceFiles.end(); ++it) @@ -257,7 +246,7 @@ void MainWindow::setCurrentWorkspace(const QString &workspace) addWorkspace(new_workspace); if(!QDir::setCurrent(new_workspace)) - QMessageBox::critical(this, tr("Error"), tr("Could not change current diectory to ")+new_workspace, QMessageBox::Ok ); + QMessageBox::critical(this, tr("Error"), tr("Could not change current diectory to '%0'").arg(new_workspace), QMessageBox::Ok ); } //------------------------------------------------------------------------------ @@ -508,7 +497,7 @@ void MainWindow::rebuildRecent() for(int i = 0; i < enabled_acts; ++i) { - QString text = tr("&%1 %2").arg(i + 1).arg(QDir::toNativeSeparators(workspaceHistory[i])); + QString text = QString("&%1 %2").arg(i + 1).arg(QDir::toNativeSeparators(workspaceHistory[i])); recentWorkspaceActs[i]->setText(text); recentWorkspaceActs[i]->setData(workspaceHistory[i]); @@ -602,7 +591,7 @@ bool MainWindow::refresh() } else if(st==REPO_OLD_SCHEMA) { - setStatus(tr("Old fossil schema detected. Consider running rebuild.")); + setStatus(tr("Old fossil schema detected. Consider running 'fossil rebuild'")); enableActions(false); repoFileModel.removeRows(0, repoFileModel.rowCount()); repoDirModel.clear(); @@ -1104,7 +1093,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int process.start(fossil, args); if(!process.waitForStarted()) { - log(tr("Could not start fossil executable '") + fossil + "''\n"); + log(tr("Could not start Fossil executable '%s'\n").arg(fossil)); return false; } const QChar EOL_MARK('\n'); @@ -1295,20 +1284,20 @@ QString MainWindow::getFossilPath() //------------------------------------------------------------------------------ void MainWindow::loadSettings() { - if(qsettings->contains(FUEL_SETTING_FOSSIL_PATH)) - settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value = qsettings->value(FUEL_SETTING_FOSSIL_PATH); + if(settings.store->contains(FUEL_SETTING_FOSSIL_PATH)) + settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value = settings.store->value(FUEL_SETTING_FOSSIL_PATH); - if(qsettings->contains(FUEL_SETTING_COMMIT_MSG)) - settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = qsettings->value(FUEL_SETTING_COMMIT_MSG); + if(settings.store->contains(FUEL_SETTING_COMMIT_MSG)) + settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = settings.store->value(FUEL_SETTING_COMMIT_MSG); - if(qsettings->contains(FUEL_SETTING_FILE_DBLCLICK)) - settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value = qsettings->value(FUEL_SETTING_FILE_DBLCLICK); + if(settings.store->contains(FUEL_SETTING_FILE_DBLCLICK)) + settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value = settings.store->value(FUEL_SETTING_FILE_DBLCLICK); - int num_wks = qsettings->beginReadArray("Workspaces"); + int num_wks = settings.store->beginReadArray("Workspaces"); for(int i=0; isetArrayIndex(i); - QString wk = qsettings->value("Path").toString(); + settings.store->setArrayIndex(i); + QString wk = settings.store->value("Path").toString(); // Skip invalid workspaces if(wk.isEmpty() || !QDir(wk).exists()) @@ -1316,46 +1305,47 @@ void MainWindow::loadSettings() addWorkspace(wk); - if(qsettings->contains("Active") && qsettings->value("Active").toBool()) + if(settings.store->contains("Active") && settings.store->value("Active").toBool()) setCurrentWorkspace(wk); } - qsettings->endArray(); + settings.store->endArray(); - if(qsettings->contains("WindowX") && qsettings->contains("WindowY")) + if(settings.store->contains("WindowX") && settings.store->contains("WindowY")) { QPoint _pos; - _pos.setX(qsettings->value("WindowX").toInt()); - _pos.setY(qsettings->value("WindowY").toInt()); + _pos.setX(settings.store->value("WindowX").toInt()); + _pos.setY(settings.store->value("WindowY").toInt()); move(_pos); } - if(qsettings->contains("WindowWidth") && qsettings->contains("WindowHeight")) + if(settings.store->contains("WindowWidth") && settings.store->contains("WindowHeight")) { QSize _size; - _size.setWidth(qsettings->value("WindowWidth").toInt()); - _size.setHeight(qsettings->value("WindowHeight").toInt()); + _size.setWidth(settings.store->value("WindowWidth").toInt()); + _size.setHeight(settings.store->value("WindowHeight").toInt()); resize(_size); } - if(qsettings->contains("ViewUnknown")) - ui->actionViewUnknown->setChecked(qsettings->value("ViewUnknown").toBool()); - if(qsettings->contains("ViewModified")) - ui->actionViewModified->setChecked(qsettings->value("ViewModified").toBool()); - if(qsettings->contains("ViewUnchanged")) - ui->actionViewUnchanged->setChecked(qsettings->value("ViewUnchanged").toBool()); - if(qsettings->contains("ViewIgnored")) - ui->actionViewIgnored->setChecked(qsettings->value("ViewIgnored").toBool()); - if(qsettings->contains("ViewAsList")) + if(settings.store->contains("ViewUnknown")) + ui->actionViewUnknown->setChecked(settings.store->value("ViewUnknown").toBool()); + if(settings.store->contains("ViewModified")) + ui->actionViewModified->setChecked(settings.store->value("ViewModified").toBool()); + if(settings.store->contains("ViewUnchanged")) + ui->actionViewUnchanged->setChecked(settings.store->value("ViewUnchanged").toBool()); + if(settings.store->contains("ViewIgnored")) + ui->actionViewIgnored->setChecked(settings.store->value("ViewIgnored").toBool()); + if(settings.store->contains("ViewAsList")) { - ui->actionViewAsList->setChecked(qsettings->value("ViewAsList").toBool()); - viewMode = qsettings->value("ViewAsList").toBool()? VIEWMODE_LIST : VIEWMODE_TREE; + ui->actionViewAsList->setChecked(settings.store->value("ViewAsList").toBool()); + viewMode = settings.store->value("ViewAsList").toBool()? VIEWMODE_LIST : VIEWMODE_TREE; } ui->treeView->setVisible(viewMode == VIEWMODE_TREE); - if(qsettings->contains("ViewStash")) - ui->actionViewStash->setChecked(qsettings->value("ViewStash").toBool()); + if(settings.store->contains("ViewStash")) + ui->actionViewStash->setChecked(settings.store->value("ViewStash").toBool()); ui->tableViewStash->setVisible(ui->actionViewStash->isChecked()); + } //------------------------------------------------------------------------------ @@ -1363,32 +1353,32 @@ void MainWindow::saveSettings() { // If we have a customize fossil path, save it QString fossil_path = settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString(); - qsettings->setValue(FUEL_SETTING_FOSSIL_PATH, fossil_path); - qsettings->setValue(FUEL_SETTING_COMMIT_MSG, settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value); - qsettings->setValue(FUEL_SETTING_FILE_DBLCLICK, settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value); + settings.store->setValue(FUEL_SETTING_FOSSIL_PATH, fossil_path); + settings.store->setValue(FUEL_SETTING_COMMIT_MSG, settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value); + settings.store->setValue(FUEL_SETTING_FILE_DBLCLICK, settings.Mappings[FUEL_SETTING_FILE_DBLCLICK].Value); - qsettings->beginWriteArray("Workspaces", workspaceHistory.size()); + settings.store->beginWriteArray("Workspaces", workspaceHistory.size()); for(int i=0; isetArrayIndex(i); - qsettings->setValue("Path", workspaceHistory[i]); + settings.store->setArrayIndex(i); + settings.store->setValue("Path", workspaceHistory[i]); if(getCurrentWorkspace() == workspaceHistory[i]) - qsettings->setValue("Active", true); + settings.store->setValue("Active", true); else - qsettings->remove("Active"); + settings.store->remove("Active"); } - qsettings->endArray(); + settings.store->endArray(); - qsettings->setValue("WindowX", x()); - qsettings->setValue("WindowY", y()); - qsettings->setValue("WindowWidth", width()); - qsettings->setValue("WindowHeight", height()); - qsettings->setValue("ViewUnknown", ui->actionViewUnknown->isChecked()); - qsettings->setValue("ViewModified", ui->actionViewModified->isChecked()); - qsettings->setValue("ViewUnchanged", ui->actionViewUnchanged->isChecked()); - qsettings->setValue("ViewIgnored", ui->actionViewIgnored->isChecked()); - qsettings->setValue("ViewAsList", ui->actionViewAsList->isChecked()); - qsettings->setValue("ViewStash", ui->actionViewStash->isChecked()); + settings.store->setValue("WindowX", x()); + settings.store->setValue("WindowY", y()); + settings.store->setValue("WindowWidth", width()); + settings.store->setValue("WindowHeight", height()); + settings.store->setValue("ViewUnknown", ui->actionViewUnknown->isChecked()); + settings.store->setValue("ViewModified", ui->actionViewModified->isChecked()); + settings.store->setValue("ViewUnchanged", ui->actionViewUnchanged->isChecked()); + settings.store->setValue("ViewIgnored", ui->actionViewIgnored->isChecked()); + settings.store->setValue("ViewAsList", ui->actionViewAsList->isChecked()); + settings.store->setValue("ViewStash", ui->actionViewStash->isChecked()); } //------------------------------------------------------------------------------ @@ -1570,13 +1560,13 @@ bool MainWindow::startUI() fossilUI.setWorkingDirectory(getCurrentWorkspace()); log("> fossil ui
", true); - log(tr("Starting Fossil UI. Please wait.\n")); + log(tr("Starting Fossil browser UI. Please wait.\n")); QString fossil = getFossilPath(); fossilUI.start(fossil, QStringList() << "ui"); if(!fossilUI.waitForStarted() || fossilUI.state()!=QProcess::Running) { - log(tr("%0 does not exist\n").arg(fossil)); + log(tr("Could not start Fossil executable '%s'\n").arg(fossil)); ui->actionFossilUI->setChecked(false); return false; } @@ -1885,7 +1875,7 @@ void MainWindow::on_actionRename_triggered() if(fi_after.exists()) { - QMessageBox::critical(this, tr("Error"), tr("File %0 already exists.\nRename aborted.").arg(new_name), QMessageBox::Ok ); + QMessageBox::critical(this, tr("Error"), tr("File '%0' already exists.\nRename aborted.").arg(new_name), QMessageBox::Ok ); return; } @@ -1951,7 +1941,7 @@ void MainWindow::on_actionAbout_triggered() { int off = res[0].indexOf("version "); if(off!=-1) - fossil_ver = tr("Fossil version ")+res[0].mid(off) + "\n\n"; + fossil_ver = tr("Fossil version %0").arg(res[0].mid(off)) + "\n\n"; } QMessageBox::about(this, tr("About Fuel..."), @@ -2269,10 +2259,10 @@ void MainWindow::on_actionRenameFolder_triggered() QDir wkdir(getCurrentWorkspace()); Q_ASSERT(wkdir.exists()); - log(tr("Creating folder '")+target_path+"'\n"); + log(tr("Creating folder '%0'\n").arg(target_path)); if(!wkdir.mkpath(new_paths[i] + PATH_SEP + ".")) { - QMessageBox::critical(this, tr("Error"), tr("Cannot make target folder '")+target_path+"'\n"); + QMessageBox::critical(this, tr("Error"), tr("Cannot make target folder '%0'\n").arg(target_path)); goto _exit; } } @@ -2289,7 +2279,7 @@ void MainWindow::on_actionRenameFolder_triggered() goto _exit; } - log(tr("Copying file '")+r->getFilePath()+tr("' to '")+new_file_path+"'\n"); + log(tr("Copying file '%0' to '%1'\n").arg(r->getFilePath(), new_file_path)); if(!QFile::copy(r->getFilePath(), new_file_path)) { @@ -2303,7 +2293,7 @@ void MainWindow::on_actionRenameFolder_triggered() { RepoFile *r = files_to_move[i]; - log(tr("Removing old file '")+r->getFilePath()+"'\n"); + log(tr("Removing old file '%0'\n").arg(r->getFilePath())); if(!QFile::exists(r->getFilePath())) { diff --git a/src/MainWindow.h b/src/MainWindow.h index 3ad7e70..5051b9b 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -12,7 +12,7 @@ #include "SettingsDialog.h" namespace Ui { - class MainWindow; + class MainWindow; } @@ -113,11 +113,11 @@ private: ////////////////////////////////////////////////////////////////////////// class MainWindow : public QMainWindow { - Q_OBJECT + Q_OBJECT public: - explicit MainWindow(QWidget *parent = 0, QString *workspacePath = 0, bool portableMode = false); - ~MainWindow(); + explicit MainWindow(Settings &_settings, QWidget *parent = 0, QString *workspacePath = 0); + ~MainWindow(); bool diffFile(QString repoFile); private: @@ -227,7 +227,7 @@ private slots: void on_actionApplyStash_triggered(); void on_actionDeleteStash_triggered(); void on_actionDiffStash_triggered(); - void on_textBrowser_customContextMenuRequested(const QPoint &pos); + void on_textBrowser_customContextMenuRequested(const QPoint &pos); void on_tableView_customContextMenuRequested(const QPoint &pos); private: @@ -247,7 +247,7 @@ private: class QProgressBar *progressBar; bool fossilAbort; // FIXME: No GUI for it yet - Settings settings; + Settings &settings; QString projectName; QString repositoryFile; QStringList workspaceHistory; @@ -255,8 +255,6 @@ private: ViewMode viewMode; stringset_t selectedDirs; // The directory selected in the tree - class QSettings *qsettings; - // Repository State typedef QList filelist_t; typedef QMap filemap_t; diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index 2ea5182..aee3269 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -3,6 +3,13 @@ #include #include "Utils.h" +#include +#include +#include +#include +#include + + QString SettingsDialog::SelectExe(QWidget *parent, const QString &description) { QString filter(tr("Applications")); @@ -104,3 +111,48 @@ void SettingsDialog::on_btnClearMessageHistory_clicked() if(DialogQuery(this, tr("Clear Commit Message History"), tr("Are you sure want to clear the commit message history?"))==QMessageBox::Yes) settings->Mappings[FUEL_SETTING_COMMIT_MSG].Value = QStringList(); } + +/////////////////////////////////////////////////////////////////////////////// +Settings::Settings(bool portableMode) : store(0) +{ + Mappings[FUEL_SETTING_FOSSIL_PATH] = Setting(); + Mappings[FUEL_SETTING_COMMIT_MSG] = Setting(); + Mappings[FUEL_SETTING_FILE_DBLCLICK] = Setting(0); // Maps to FileDblClickAction + Mappings[FUEL_SETTING_GDIFF_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); + Mappings[FUEL_SETTING_GMERGE_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); + Mappings[FUEL_SETTING_IGNORE_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); + Mappings[FUEL_SETTING_CRNL_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); + Mappings[FUEL_SETTING_REMOTE_URL] = Setting("off", Setting::TYPE_FOSSIL_COMMAND); + + + // Go into portable mode when explicitly requested or if a config file exists next to the executable + QString ini_path = QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + QDir::separator() + QCoreApplication::applicationName() + ".ini"); + if(portableMode || QFile::exists(ini_path)) + store = new QSettings(ini_path, QSettings::IniFormat); + else + { + // Linux: ~/.config/organizationName/applicationName.conf + // Windows: HKEY_CURRENT_USER\Software\organizationName\Fuel + store = new QSettings(QSettings::UserScope, QCoreApplication::organizationName(), QCoreApplication::applicationName()); + } + + ApplyEnvironment(); +} + +//----------------------------------------------------------------------------- +Settings::~Settings() +{ + delete store; +} + +//----------------------------------------------------------------------------- +void Settings::ApplyEnvironment() +{ + QString locale_name = QLocale::system().name(); + //locale_name = "el_GR"; + + QString locale_path = QString(":intl/intl/%0.qm").arg(locale_name); + QResource res(locale_path); + if(res.isValid() && translator.load(res.data(), res.size())) + QCoreApplication::instance()->installTranslator(&translator); +} diff --git a/src/SettingsDialog.h b/src/SettingsDialog.h index 5b5c67f..791a653 100644 --- a/src/SettingsDialog.h +++ b/src/SettingsDialog.h @@ -4,6 +4,8 @@ #include #include #include +#include + namespace Ui { class SettingsDialog; @@ -44,20 +46,15 @@ struct Settings SettingType Type; }; - typedef QMap mappings_t; - mappings_t Mappings; + Settings(bool portableMode = false); + ~Settings(); + void ApplyEnvironment(); + + typedef QMap mappings_t; + mappings_t Mappings; + class QSettings *store; + QTranslator translator; - Settings() - { - Mappings[FUEL_SETTING_FOSSIL_PATH] = Setting(); - Mappings[FUEL_SETTING_COMMIT_MSG] = Setting(); - Mappings[FUEL_SETTING_FILE_DBLCLICK] = Setting(0); // Maps to FileDblClickAction - Mappings[FUEL_SETTING_GDIFF_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); - Mappings[FUEL_SETTING_GMERGE_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); - Mappings[FUEL_SETTING_IGNORE_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); - Mappings[FUEL_SETTING_CRNL_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); - Mappings[FUEL_SETTING_REMOTE_URL] = Setting("off", Setting::TYPE_FOSSIL_COMMAND); - } }; diff --git a/src/main.cpp b/src/main.cpp index aea12f8..58b1398 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,14 +1,15 @@ -#include +#include #include "MainWindow.h" int main(int argc, char *argv[]) { - QApplication app(argc, argv); + QApplication app(argc, argv); app.setApplicationName("Fuel"); app.setApplicationVersion("0.9.6"); app.setOrganizationDomain("fuel-scm.org"); app.setOrganizationName("Fuel-SCM"); + #ifdef Q_WS_MACX // Native OSX applications don't use menu icons app.setAttribute(Qt::AA_DontShowIconsInMenus); @@ -16,7 +17,7 @@ int main(int argc, char *argv[]) { bool portable = false; QString workspace; - + Q_ASSERT(app.arguments().size()>0); for(int i=1; i - CheckBox + diff --git a/ui/FileActionDialog.ui b/ui/FileActionDialog.ui index b686a2f..610b150 100644 --- a/ui/FileActionDialog.ui +++ b/ui/FileActionDialog.ui @@ -26,7 +26,7 @@ QFrame::NoFrame - TextLabel + true