Separated Application and Fossil settings into separate dialogs.
FossilOrigin-Name: 97d0d1e2408832e1fc8b532e059b2141afd9ac55
This commit is contained in:
72
src/FslSettingsDialog.cpp
Normal file
72
src/FslSettingsDialog.cpp
Normal file
@@ -0,0 +1,72 @@
|
||||
#include "FslSettingsDialog.h"
|
||||
#include "ui_FslSettingsDialog.h"
|
||||
#include "Utils.h"
|
||||
|
||||
#include <QDir>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
FslSettingsDialog::FslSettingsDialog(QWidget *parent, Settings &_settings) :
|
||||
QDialog(parent, Qt::Sheet),
|
||||
ui(new Ui::FslSettingsDialog),
|
||||
settings(&_settings)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->lineUIPort->setText(settings->GetValue(FOSSIL_SETTING_HTTP_PORT).toString());
|
||||
|
||||
// Global Settings
|
||||
ui->lineGDiffCommand->setText(settings->GetFossilValue(FOSSIL_SETTING_GDIFF_CMD).toString());
|
||||
ui->lineGMergeCommand->setText(settings->GetFossilValue(FOSSIL_SETTING_GMERGE_CMD).toString());
|
||||
ui->lineProxy->setText(settings->GetFossilValue(FOSSIL_SETTING_PROXY_URL).toString());
|
||||
|
||||
// Repository Settings
|
||||
ui->lineRemoteURL->setText(settings->GetFossilValue(FOSSIL_SETTING_REMOTE_URL).toString());
|
||||
ui->lineIgnore->setText(settings->GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString());
|
||||
ui->lineIgnoreCRNL->setText(settings->GetFossilValue(FOSSIL_SETTING_CRNL_GLOB).toString());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
FslSettingsDialog::~FslSettingsDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool FslSettingsDialog::run(QWidget *parent, Settings &settings)
|
||||
{
|
||||
FslSettingsDialog dlg(parent, settings);
|
||||
return dlg.exec() == QDialog::Accepted;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void FslSettingsDialog::on_buttonBox_accepted()
|
||||
{
|
||||
settings->SetValue(FOSSIL_SETTING_HTTP_PORT, ui->lineUIPort->text());
|
||||
|
||||
settings->SetFossilValue(FOSSIL_SETTING_GDIFF_CMD, ui->lineGDiffCommand->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_GMERGE_CMD, ui->lineGMergeCommand->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_PROXY_URL, ui->lineProxy->text());
|
||||
|
||||
settings->SetFossilValue(FOSSIL_SETTING_REMOTE_URL, ui->lineRemoteURL->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_IGNORE_GLOB, ui->lineIgnore->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_CRNL_GLOB, ui->lineIgnoreCRNL->text());
|
||||
|
||||
settings->ApplyEnvironment();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void FslSettingsDialog::on_btnSelectFossilGDiff_clicked()
|
||||
{
|
||||
QString path = SelectExe(this, tr("Select Graphical Diff application"));
|
||||
if(!path.isEmpty())
|
||||
ui->lineGDiffCommand->setText(QDir::toNativeSeparators(path));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void FslSettingsDialog::on_btnSelectGMerge_clicked()
|
||||
{
|
||||
QString path = SelectExe(this, tr("Select Graphical Merge application"));
|
||||
if(!path.isEmpty())
|
||||
ui->lineGMergeCommand->setText(path);
|
||||
}
|
||||
|
33
src/FslSettingsDialog.h
Normal file
33
src/FslSettingsDialog.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef FSLSETTINGSDIALOG_H
|
||||
#define FSLSETTINGSDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "Settings.h"
|
||||
|
||||
namespace Ui {
|
||||
class FslSettingsDialog;
|
||||
}
|
||||
|
||||
class FslSettingsDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FslSettingsDialog(QWidget *parent, Settings &_settings);
|
||||
~FslSettingsDialog();
|
||||
|
||||
static bool run(QWidget *parent, Settings &_settings);
|
||||
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
void on_btnSelectFossilGDiff_clicked();
|
||||
void on_btnSelectGMerge_clicked();
|
||||
|
||||
private:
|
||||
|
||||
Ui::FslSettingsDialog *ui;
|
||||
Settings *settings;
|
||||
};
|
||||
|
||||
#endif // FSLSETTINGSDIALOG_H
|
@@ -12,6 +12,8 @@
|
||||
#include <QLabel>
|
||||
#include <QSettings>
|
||||
#include <QShortcut>
|
||||
#include "SettingsDialog.h"
|
||||
#include "FslSettingsDialog.h"
|
||||
#include "SearchBox.h"
|
||||
#include "CommitDialog.h"
|
||||
#include "FileActionDialog.h"
|
||||
@@ -19,7 +21,7 @@
|
||||
#include "RevisionDialog.h"
|
||||
#include "Utils.h"
|
||||
|
||||
#define REVISION_LATEST "Latest"
|
||||
#define REVISION_LATEST "Latest revision"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
enum
|
||||
@@ -1641,11 +1643,19 @@ void MainWindow::loadFossilSettings()
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void MainWindow::on_actionSettings_triggered()
|
||||
{
|
||||
// Run the dialog
|
||||
if(!SettingsDialog::run(this, settings))
|
||||
return;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void MainWindow::on_actionFossilSettings_triggered()
|
||||
{
|
||||
loadFossilSettings();
|
||||
|
||||
// Run the dialog
|
||||
if(!SettingsDialog::run(this, settings))
|
||||
if(!FslSettingsDialog::run(this, settings))
|
||||
return;
|
||||
|
||||
// Apply settings
|
||||
@@ -1668,6 +1678,7 @@ void MainWindow::on_actionSettings_triggered()
|
||||
QString value = it.value().Value.toString();
|
||||
fossil().setFossilSetting(name, value, type == Settings::Setting::TYPE_FOSSIL_GLOBAL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
@@ -4,7 +4,7 @@
|
||||
#include <QMainWindow>
|
||||
#include <QStringList>
|
||||
#include <QFileIconProvider>
|
||||
#include "SettingsDialog.h"
|
||||
#include "Settings.h"
|
||||
#include "Workspace.h"
|
||||
|
||||
namespace Ui {
|
||||
@@ -99,6 +99,7 @@ private slots:
|
||||
void on_actionAbout_triggered();
|
||||
void on_actionUpdate_triggered();
|
||||
void on_actionSettings_triggered();
|
||||
void on_actionFossilSettings_triggered();
|
||||
void on_actionViewUnchanged_triggered();
|
||||
void on_actionViewModified_triggered();
|
||||
void on_actionViewUnknown_triggered();
|
||||
|
@@ -13,6 +13,7 @@ Settings::Settings(bool portableMode) : store(0)
|
||||
Mappings.insert(FOSSIL_SETTING_GDIFF_CMD, Setting("", Setting::TYPE_FOSSIL_GLOBAL));
|
||||
Mappings.insert(FOSSIL_SETTING_GMERGE_CMD, Setting("", Setting::TYPE_FOSSIL_GLOBAL));
|
||||
Mappings.insert(FOSSIL_SETTING_PROXY_URL, Setting("", Setting::TYPE_FOSSIL_GLOBAL));
|
||||
Mappings.insert(FOSSIL_SETTING_HTTP_PORT, Setting("", Setting::TYPE_FOSSIL_GLOBAL));
|
||||
|
||||
Mappings.insert(FOSSIL_SETTING_IGNORE_GLOB, Setting("", Setting::TYPE_FOSSIL_LOCAL));
|
||||
Mappings.insert(FOSSIL_SETTING_CRNL_GLOB, Setting("", Setting::TYPE_FOSSIL_LOCAL));
|
||||
@@ -36,8 +37,6 @@ Settings::Settings(bool portableMode) : store(0)
|
||||
SetValue(FUEL_SETTING_LANGUAGE, QLocale::system().name());
|
||||
if(!HasValue(FUEL_SETTING_WEB_BROWSER))
|
||||
SetValue(FUEL_SETTING_WEB_BROWSER, 0);
|
||||
if(!HasValue(FUEL_SETTING_HTTP_PORT))
|
||||
SetValue(FUEL_SETTING_HTTP_PORT, "8090");
|
||||
|
||||
ApplyEnvironment();
|
||||
}
|
||||
|
@@ -10,7 +10,6 @@
|
||||
#define FUEL_SETTING_FILE_DBLCLICK "FileDblClickAction"
|
||||
#define FUEL_SETTING_LANGUAGE "Language"
|
||||
#define FUEL_SETTING_WEB_BROWSER "WebBrowser"
|
||||
#define FUEL_SETTING_HTTP_PORT "HTTPPort"
|
||||
|
||||
#define FOSSIL_SETTING_GDIFF_CMD "gdiff-command"
|
||||
#define FOSSIL_SETTING_GMERGE_CMD "gmerge-command"
|
||||
@@ -18,6 +17,7 @@
|
||||
#define FOSSIL_SETTING_IGNORE_GLOB "ignore-glob"
|
||||
#define FOSSIL_SETTING_CRNL_GLOB "crnl-glob"
|
||||
#define FOSSIL_SETTING_REMOTE_URL "remote-url"
|
||||
#define FOSSIL_SETTING_HTTP_PORT "http-port"
|
||||
|
||||
|
||||
enum FileDblClickAction
|
||||
|
@@ -25,7 +25,6 @@ SettingsDialog::SettingsDialog(QWidget *parent, Settings &_settings) :
|
||||
ui->lineFossilPath->setText(QDir::toNativeSeparators(settings->GetValue(FUEL_SETTING_FOSSIL_PATH).toString()));
|
||||
ui->cmbDoubleClickAction->setCurrentIndex(settings->GetValue(FUEL_SETTING_FILE_DBLCLICK).toInt());
|
||||
ui->cmbFossilBrowser->setCurrentIndex(settings->GetValue(FUEL_SETTING_WEB_BROWSER).toInt());
|
||||
ui->lineUIPort->setText(settings->GetValue(FUEL_SETTING_HTTP_PORT).toString());
|
||||
|
||||
// Initialize language combo
|
||||
foreach(const LangMap &m, langMap)
|
||||
@@ -37,15 +36,6 @@ SettingsDialog::SettingsDialog(QWidget *parent, Settings &_settings) :
|
||||
ui->cmbActiveLanguage->findText(
|
||||
LangIdToName(lang)));
|
||||
|
||||
// Global Settings
|
||||
ui->lineGDiffCommand->setText(settings->GetFossilValue(FOSSIL_SETTING_GDIFF_CMD).toString());
|
||||
ui->lineGMergeCommand->setText(settings->GetFossilValue(FOSSIL_SETTING_GMERGE_CMD).toString());
|
||||
ui->lineProxy->setText(settings->GetFossilValue(FOSSIL_SETTING_PROXY_URL).toString());
|
||||
|
||||
// Repository Settings
|
||||
ui->lineRemoteURL->setText(settings->GetFossilValue(FOSSIL_SETTING_REMOTE_URL).toString());
|
||||
ui->lineIgnore->setText(settings->GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString());
|
||||
ui->lineIgnoreCRNL->setText(settings->GetFossilValue(FOSSIL_SETTING_CRNL_GLOB).toString());
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -68,7 +58,6 @@ void SettingsDialog::on_buttonBox_accepted()
|
||||
Q_ASSERT(ui->cmbDoubleClickAction->currentIndex()>=FILE_DLBCLICK_ACTION_DIFF && ui->cmbDoubleClickAction->currentIndex()<FILE_DLBCLICK_ACTION_MAX);
|
||||
settings->SetValue(FUEL_SETTING_FILE_DBLCLICK, ui->cmbDoubleClickAction->currentIndex());
|
||||
settings->SetValue(FUEL_SETTING_WEB_BROWSER, ui->cmbFossilBrowser->currentIndex());
|
||||
settings->SetValue(FUEL_SETTING_HTTP_PORT, ui->lineUIPort->text());
|
||||
|
||||
Q_ASSERT(settings->HasValue(FUEL_SETTING_LANGUAGE));
|
||||
QString curr_langid = settings->GetValue(FUEL_SETTING_LANGUAGE).toString();
|
||||
@@ -79,15 +68,6 @@ void SettingsDialog::on_buttonBox_accepted()
|
||||
if(curr_langid != new_langid)
|
||||
QMessageBox::information(this, tr("Restart required"), tr("The language change will take effect after restarting the application"), QMessageBox::Ok);
|
||||
|
||||
settings->SetFossilValue(FOSSIL_SETTING_GDIFF_CMD, ui->lineGDiffCommand->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_GMERGE_CMD, ui->lineGMergeCommand->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_PROXY_URL, ui->lineProxy->text());
|
||||
|
||||
settings->SetFossilValue(FOSSIL_SETTING_REMOTE_URL, ui->lineRemoteURL->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_IGNORE_GLOB, ui->lineIgnore->text());
|
||||
settings->SetFossilValue(FOSSIL_SETTING_CRNL_GLOB, ui->lineIgnoreCRNL->text());
|
||||
|
||||
|
||||
settings->ApplyEnvironment();
|
||||
}
|
||||
|
||||
@@ -99,22 +79,6 @@ void SettingsDialog::on_btnSelectFossil_clicked()
|
||||
ui->lineFossilPath->setText(QDir::toNativeSeparators(path));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void SettingsDialog::on_btnSelectFossilGDiff_clicked()
|
||||
{
|
||||
QString path = SelectExe(this, tr("Select Graphical Diff application"));
|
||||
if(!path.isEmpty())
|
||||
ui->lineGDiffCommand->setText(QDir::toNativeSeparators(path));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void SettingsDialog::on_btnSelectGMerge_clicked()
|
||||
{
|
||||
QString path = SelectExe(this, tr("Select Graphical Merge application"));
|
||||
if(!path.isEmpty())
|
||||
ui->lineGMergeCommand->setText(path);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void SettingsDialog::on_btnClearMessageHistory_clicked()
|
||||
{
|
||||
|
@@ -22,8 +22,6 @@ public:
|
||||
private slots:
|
||||
void on_btnSelectFossil_clicked();
|
||||
void on_buttonBox_accepted();
|
||||
void on_btnSelectFossilGDiff_clicked();
|
||||
void on_btnSelectGMerge_clicked();
|
||||
void on_btnClearMessageHistory_clicked();
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user