Initial support for localization

FossilOrigin-Name: 8d881de4e52069221dd6ae38a436449fbccdac25
This commit is contained in:
kostas 2012-09-23 10:20:57 +00:00
parent 152041ff05
commit d40b70d737
11 changed files with 180 additions and 118 deletions

View File

@ -64,3 +64,7 @@ FORMS += ui/MainWindow.ui \
RESOURCES += \
rsrc/resources.qrc
unix {
system(intl/convert.sh)
}

17
intl/convert.sh Executable file
View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
1760813f6ce3ed23ab45bee2fbde8cbf487d2481
8d881de4e52069221dd6ae38a436449fbccdac25

View File

@ -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; i<num_wks; ++i)
{
qsettings->setArrayIndex(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; i<workspaceHistory.size(); ++i)
{
qsettings->setArrayIndex(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("<b>&gt; fossil ui</b><br>", 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()))
{

View File

@ -116,7 +116,7 @@ class MainWindow : public QMainWindow
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0, QString *workspacePath = 0, bool portableMode = false);
explicit MainWindow(Settings &_settings, QWidget *parent = 0, QString *workspacePath = 0);
~MainWindow();
bool diffFile(QString repoFile);
@ -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<RepoFile*> filelist_t;
typedef QMap<QString, RepoFile*> filemap_t;

View File

@ -3,6 +3,13 @@
#include <QFileDialog>
#include "Utils.h"
#include <QSettings>
#include <QCoreApplication>
#include <QDir>
#include <QTranslator>
#include <QResource>
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);
}

View File

@ -4,6 +4,8 @@
#include <QDialog>
#include <QMap>
#include <QVariant>
#include <QTranslator>
namespace Ui {
class SettingsDialog;
@ -44,20 +46,15 @@ struct Settings
SettingType Type;
};
Settings(bool portableMode = false);
~Settings();
void ApplyEnvironment();
typedef QMap<QString, Setting> 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);
}
};

View File

@ -1,4 +1,4 @@
#include <QtGui/QApplication>
#include <QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
@ -9,6 +9,7 @@ int main(int argc, char *argv[])
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);
@ -32,9 +33,11 @@ int main(int argc, char *argv[])
workspace = arg;
}
MainWindow mainwin(0,
workspace.isEmpty() ? 0 : &workspace,
portable);
Settings settings(portable);
MainWindow mainwin(settings,
0,
workspace.isEmpty() ? 0 : &workspace);
mainwin.show();
return app.exec();
}

View File

@ -64,7 +64,7 @@
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>CheckBox</string>
<string/>
</property>
</widget>
</item>

View File

@ -26,7 +26,7 @@
<enum>QFrame::NoFrame</enum>
</property>
<property name="text">
<string>TextLabel</string>
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>