diff --git a/src/Gui/DlgGeneral.ui b/src/Gui/DlgGeneral.ui
index 25dbc60bf7..354fa5de18 100644
--- a/src/Gui/DlgGeneral.ui
+++ b/src/Gui/DlgGeneral.ui
@@ -156,26 +156,6 @@
- -
-
-
- 6
-
-
- 0
-
-
-
-
-
- Window style:
-
-
-
- -
-
-
-
-
-
@@ -235,26 +215,6 @@
6
-
-
-
-
- Switch to tab of report window:
-
-
-
- -
-
-
- -
-
-
- AutoloadTab
-
-
- General
-
-
-
-
@@ -262,6 +222,9 @@
+ -
+
+
@@ -336,7 +299,6 @@
Languages
- WindowStyle
RecentFiles
SplashScreen
PythonWordWrap
diff --git a/src/Gui/DlgGeneralImp.cpp b/src/Gui/DlgGeneralImp.cpp
index 4126a8046b..a18445f77a 100644
--- a/src/Gui/DlgGeneralImp.cpp
+++ b/src/Gui/DlgGeneralImp.cpp
@@ -30,6 +30,7 @@
#endif
#include "DlgGeneralImp.h"
+#include "ui_DlgGeneral.h"
#include "Action.h"
#include "Application.h"
#include "DockWindowManager.h"
@@ -50,12 +51,10 @@ using namespace Gui::Dialog;
* true to construct a modal dialog.
*/
DlgGeneralImp::DlgGeneralImp( QWidget* parent )
- : PreferencePage( parent ), watched(0)
+ : PreferencePage(parent)
+ , ui(new Ui_DlgGeneral)
{
- this->setupUi(this);
- // hide to fix 0000375: Mac Interface window style setting not saved
- windowStyleLabel->hide();
- WindowStyle->hide();
+ ui->setupUi(this);
// fills the combo box with all available workbenches
// sorted by their menu text
@@ -69,27 +68,9 @@ DlgGeneralImp::DlgGeneralImp( QWidget* parent )
for (QMap::Iterator it = menuText.begin(); it != menuText.end(); ++it) {
QPixmap px = Application::Instance->workbenchIcon(it.value());
if (px.isNull())
- AutoloadModuleCombo->addItem(it.key(), QVariant(it.value()));
+ ui->AutoloadModuleCombo->addItem(it.key(), QVariant(it.value()));
else
- AutoloadModuleCombo->addItem(px, it.key(), QVariant(it.value()));
- }
-
- // do not save the content but the current item only
- QWidget* dw = DockWindowManager::instance()->getDockWindow("Report view");
- if (dw)
- {
- watched = dw->findChild();
- if (watched)
- {
- for (int i=0; icount(); i++)
- AutoloadTabCombo->addItem( watched->tabText(i) );
- watched->installEventFilter(this);
- }
- }
- if (!watched) {
- // use separate dock widgets instead of the old tab widget
- tabReportLabel->hide();
- AutoloadTabCombo->hide();
+ ui->AutoloadModuleCombo->addItem(px, it.key(), QVariant(it.value()));
}
}
@@ -98,9 +79,6 @@ DlgGeneralImp::DlgGeneralImp( QWidget* parent )
*/
DlgGeneralImp::~DlgGeneralImp()
{
- // no need to delete child widgets, Qt does it all for us
- if (watched)
- watched->removeEventFilter(this);
}
/** Sets the size of the recent file list from the user parameters.
@@ -118,16 +96,15 @@ void DlgGeneralImp::setRecentFileSize()
void DlgGeneralImp::saveSettings()
{
- int index = AutoloadModuleCombo->currentIndex();
- QVariant data = AutoloadModuleCombo->itemData(index);
+ int index = ui->AutoloadModuleCombo->currentIndex();
+ QVariant data = ui->AutoloadModuleCombo->itemData(index);
QString startWbName = data.toString();
App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/General")->
SetASCII("AutoloadModule", startWbName.toLatin1());
-
- AutoloadTabCombo->onSave();
- RecentFiles->onSave();
- SplashScreen->onSave();
- PythonWordWrap->onSave();
+
+ ui->RecentFiles->onSave();
+ ui->SplashScreen->onSave();
+ ui->PythonWordWrap->onSave();
QWidget* pc = DockWindowManager::instance()->getDockWindow("Python console");
PythonConsole *pcPython = qobject_cast(pc);
@@ -149,24 +126,24 @@ void DlgGeneralImp::saveSettings()
ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General");
QString lang = QLocale::languageToString(QLocale::system().language());
QByteArray language = hGrp->GetASCII("Language", (const char*)lang.toLatin1()).c_str();
- QByteArray current = Languages->itemData(Languages->currentIndex()).toByteArray();
+ QByteArray current = ui->Languages->itemData(ui->Languages->currentIndex()).toByteArray();
if (current != language)
{
hGrp->SetASCII("Language", current.constData());
Translator::instance()->activateLanguage(current.constData());
}
- QVariant size = this->toolbarIconSize->itemData(this->toolbarIconSize->currentIndex());
+ QVariant size = ui->toolbarIconSize->itemData(ui->toolbarIconSize->currentIndex());
int pixel = size.toInt();
hGrp->SetInt("ToolbarIconSize", pixel);
getMainWindow()->setIconSize(QSize(pixel,pixel));
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
- hGrp->SetBool("TiledBackground", this->tiledBackground->isChecked());
+ hGrp->SetBool("TiledBackground", ui->tiledBackground->isChecked());
QMdiArea* mdi = getMainWindow()->findChild();
- mdi->setProperty("showImage", this->tiledBackground->isChecked());
+ mdi->setProperty("showImage", ui->tiledBackground->isChecked());
- QVariant sheet = this->StyleSheets->itemData(this->StyleSheets->currentIndex());
+ QVariant sheet = ui->StyleSheets->itemData(ui->StyleSheets->currentIndex());
if (this->selectedStyleSheet != sheet.toString()) {
this->selectedStyleSheet = sheet.toString();
hGrp->SetASCII("StyleSheet", (const char*)sheet.toByteArray());
@@ -185,7 +162,7 @@ void DlgGeneralImp::saveSettings()
}
if (sheet.toString().isEmpty()) {
- if (this->tiledBackground->isChecked()) {
+ if (ui->tiledBackground->isChecked()) {
qApp->setStyleSheet(QString());
ActionStyleEvent e(ActionStyleEvent::Restore);
qApp->sendEvent(getMainWindow(), &e);
@@ -225,32 +202,18 @@ void DlgGeneralImp::loadSettings()
start = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/General")->
GetASCII("AutoloadModule", start.c_str());
QString startWbName = QLatin1String(start.c_str());
- AutoloadModuleCombo->setCurrentIndex(AutoloadModuleCombo->findData(startWbName));
+ ui->AutoloadModuleCombo->setCurrentIndex(ui->AutoloadModuleCombo->findData(startWbName));
- AutoloadTabCombo->onRestore();
- RecentFiles->onRestore();
- SplashScreen->onRestore();
- PythonWordWrap->onRestore();
-
- // fill up styles
- //
- QStringList styles = QStyleFactory::keys();
- WindowStyle->addItems(styles);
- QString style = QApplication::style()->objectName().toLower();
- int i=0;
- for (QStringList::ConstIterator it = styles.begin(); it != styles.end(); ++it, i++) {
- if (style == (*it).toLower()) {
- WindowStyle->setCurrentIndex( i );
- break;
- }
- }
+ ui->RecentFiles->onRestore();
+ ui->SplashScreen->onRestore();
+ ui->PythonWordWrap->onRestore();
// search for the language files
ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General");
QString lang = QLocale::languageToString(QLocale::system().language());
QByteArray language = hGrp->GetASCII("Language", (const char*)lang.toLatin1()).c_str();
int index = 1;
- Languages->addItem(QString::fromLatin1("English"), QByteArray("English"));
+ ui->Languages->addItem(QString::fromLatin1("English"), QByteArray("English"));
TStringMap list = Translator::instance()->supportedLocales();
for (TStringMap::iterator it = list.begin(); it != list.end(); ++it, index++) {
QLocale locale(QString::fromLatin1(it->second.c_str()));
@@ -264,26 +227,26 @@ void DlgGeneralImp::loadSettings()
langname = native;
}
#endif
- Languages->addItem(langname, lang);
+ ui->Languages->addItem(langname, lang);
if (language == lang) {
- Languages->setCurrentIndex(index);
+ ui->Languages->setCurrentIndex(index);
}
}
int current = getMainWindow()->iconSize().width();
- this->toolbarIconSize->addItem(tr("Small (%1px)").arg(16), QVariant((int)16));
- this->toolbarIconSize->addItem(tr("Medium (%1px)").arg(24), QVariant((int)24));
- this->toolbarIconSize->addItem(tr("Large (%1px)").arg(32), QVariant((int)32));
- this->toolbarIconSize->addItem(tr("Extra large (%1px)").arg(48), QVariant((int)48));
- index = this->toolbarIconSize->findData(QVariant(current));
+ ui->toolbarIconSize->addItem(tr("Small (%1px)").arg(16), QVariant((int)16));
+ ui->toolbarIconSize->addItem(tr("Medium (%1px)").arg(24), QVariant((int)24));
+ ui->toolbarIconSize->addItem(tr("Large (%1px)").arg(32), QVariant((int)32));
+ ui->toolbarIconSize->addItem(tr("Extra large (%1px)").arg(48), QVariant((int)48));
+ index = ui->toolbarIconSize->findData(QVariant(current));
if (index < 0) {
- this->toolbarIconSize->addItem(tr("Custom (%1px)").arg(current), QVariant((int)current));
- index = this->toolbarIconSize->findData(QVariant(current));
+ ui->toolbarIconSize->addItem(tr("Custom (%1px)").arg(current), QVariant((int)current));
+ index = ui->toolbarIconSize->findData(QVariant(current));
}
- this->toolbarIconSize->setCurrentIndex(index);
+ ui->toolbarIconSize->setCurrentIndex(index);
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
- this->tiledBackground->setChecked(hGrp->GetBool("TiledBackground", false));
+ ui->tiledBackground->setChecked(hGrp->GetBool("TiledBackground", false));
// List all .qss/.css files
QMap cssFiles;
@@ -306,38 +269,28 @@ void DlgGeneralImp::loadSettings()
}
// now add all unique items
- this->StyleSheets->addItem(tr("No style sheet"), QString::fromLatin1(""));
+ ui->StyleSheets->addItem(tr("No style sheet"), QString::fromLatin1(""));
for (QMap::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) {
- this->StyleSheets->addItem(it.key(), it.value());
+ ui->StyleSheets->addItem(it.key(), it.value());
}
this->selectedStyleSheet = QString::fromLatin1(hGrp->GetASCII("StyleSheet").c_str());
- index = this->StyleSheets->findData(this->selectedStyleSheet);
- if (index > -1) this->StyleSheets->setCurrentIndex(index);
+ index = ui->StyleSheets->findData(this->selectedStyleSheet);
+ if (index > -1) ui->StyleSheets->setCurrentIndex(index);
}
void DlgGeneralImp::changeEvent(QEvent *e)
{
if (e->type() == QEvent::LanguageChange) {
- retranslateUi(this);
- for (int i = 0; i < Languages->count(); i++) {
- QByteArray lang = Languages->itemData(i).toByteArray();
- Languages->setItemText(i, Gui::Translator::tr(lang.constData()));
+ ui->retranslateUi(this);
+ for (int i = 0; i < ui->Languages->count(); i++) {
+ QByteArray lang = ui->Languages->itemData(i).toByteArray();
+ ui->Languages->setItemText(i, Gui::Translator::tr(lang.constData()));
}
- } else {
+ }
+ else {
QWidget::changeEvent(e);
}
}
-bool DlgGeneralImp::eventFilter(QObject* o, QEvent* e)
-{
- // make sure that report tabs have been translated
- if (o == watched && e->type() == QEvent::LanguageChange) {
- for (int i=0; icount(); i++)
- AutoloadTabCombo->setItemText( i, watched->tabText(i) );
- }
-
- return QWidget::eventFilter(o, e);
-}
-
#include "moc_DlgGeneralImp.cpp"
diff --git a/src/Gui/DlgGeneralImp.h b/src/Gui/DlgGeneralImp.h
index 42933520e5..6316f00ec4 100644
--- a/src/Gui/DlgGeneralImp.h
+++ b/src/Gui/DlgGeneralImp.h
@@ -24,19 +24,20 @@
#ifndef GUI_DIALOG_DLGGENERALIMP_H
#define GUI_DIALOG_DLGGENERALIMP_H
-#include "ui_DlgGeneral.h"
#include "PropertyPage.h"
+#include
class QTabWidget;
namespace Gui {
namespace Dialog {
+class Ui_DlgGeneral;
/** This class implements the settings for the application.
* You can change window style, size of pixmaps, size of recent file list and so on
* \author Werner Mayer
*/
-class DlgGeneralImp : public PreferencePage, public Ui_DlgGeneral
+class DlgGeneralImp : public PreferencePage
{
Q_OBJECT
@@ -46,14 +47,15 @@ public:
void saveSettings();
void loadSettings();
- bool eventFilter ( QObject* o, QEvent* e );
protected:
void changeEvent(QEvent *e);
private:
void setRecentFileSize();
- QTabWidget* watched;
+
+private:
+ std::unique_ptr ui;
QString selectedStyleSheet;
};