Gui: expose various overlay UI options to preference pages

This commit is contained in:
Zheng, Lei
2022-11-24 08:00:15 +08:00
committed by Yorik van Havre
parent ba6b2a4375
commit 033f520cc5
12 changed files with 1419 additions and 79 deletions

View File

@@ -574,6 +574,7 @@ SET(Dialog_Settings_CPP_SRCS
PreferencePages/DlgSettingsTheme.cpp
PreferencePages/DlgSettingsViewColor.cpp
PreferencePages/DlgSettingsWorkbenchesImp.cpp
PreferencePages/DlgSettingsUI.cpp
)
SET(Dialog_Settings_HPP_SRCS
DlgOnlineHelpImp.h
@@ -594,6 +595,7 @@ SET(Dialog_Settings_HPP_SRCS
PreferencePages/DlgSettingsTheme.h
PreferencePages/DlgSettingsViewColor.h
PreferencePages/DlgSettingsWorkbenchesImp.h
PreferencePages/DlgSettingsUI.h
)
SET(Dialog_Settings_SRCS
${Dialog_Settings_CPP_SRCS}
@@ -1035,7 +1037,6 @@ SET(Widget_CPP_SRCS
WidgetFactory.cpp
Widgets.cpp
Window.cpp
ViewParams.cpp
)
SET(Widget_HPP_SRCS
FileDialog.h
@@ -1056,7 +1057,6 @@ SET(Widget_HPP_SRCS
WidgetFactory.h
Widgets.h
Window.h
ViewParams.h
)
SET(Widget_SRCS
${Widget_CPP_SRCS}
@@ -1067,11 +1067,15 @@ SOURCE_GROUP("Widget" FILES ${Widget_SRCS})
SET(Params_CPP_SRCS
TreeParams.cpp
OverlayParams.cpp
ParamHandler.cpp
ViewParams.cpp
)
SET(Params_HPP_SRCS
TreeParams.h
OverlayParams.h
ParamHandler.cpp
ViewParams.h
)
SET(Params_SRCS

61
src/Gui/ParamHandler.cpp Normal file
View File

@@ -0,0 +1,61 @@
/****************************************************************************
* Copyright (c) 2023 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* FreeCAD is free software: you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, either version 2.1 of the *
* License, or (at your option) any later version. *
* *
* FreeCAD is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with FreeCAD. If not, see *
* <https://www.gnu.org/licenses/>. *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "ParamHandler.h"
using namespace Gui;
ParamHandlers::ParamHandlers()
{
}
ParamHandlers::~ParamHandlers()
{
}
void ParamHandlers::addHandler(const ParamKey &key, const std::shared_ptr<ParamHandler> &handler)
{
if (handlers.empty()) {
conn = App::GetApplication().GetUserParameter().signalParamChanged.connect(
[this](ParameterGrp *Param, ParameterGrp::ParamType, const char *Name, const char *) {
if (!Param || !Name)
return;
auto it = handlers.find(ParamKey(Param, Name));
if (it != handlers.end() && it->second->onChange(&it->first)) {
pendings.insert(it->second);
timer.start(100);
}
});
timer.setSingleShot(true);
QObject::connect(&timer, &QTimer::timeout, [this]() {
for (const auto &v : pendings) {
v->onTimer();
}
pendings.clear();
});
}
handlers[key] = handler;
}

231
src/Gui/ParamHandler.h Normal file
View File

@@ -0,0 +1,231 @@
/****************************************************************************
* Copyright (c) 2023 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* FreeCAD is free software: you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, either version 2.1 of the *
* License, or (at your option) any later version. *
* *
* FreeCAD is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with FreeCAD. If not, see *
* <https://www.gnu.org/licenses/>. *
* *
***************************************************************************/
#ifndef GUI_PARAM_HANDLER_H
#define GUI_PARAM_HANDLER_H
#include <map>
#include <memory>
#include <boost_signals2.hpp>
#include <QTimer>
#include <FCGlobal.h>
#include <App/Application.h>
#include <Base/Parameter.h>
namespace Gui {
/// Structure for storing a parameter key and its path to be used in std::map
struct GuiExport ParamKey {
ParameterGrp::handle hGrp;
const char *key;
ParamKey(const char *path, const char *key)
:hGrp(App::GetApplication().GetUserParameter().GetGroup(path))
,key(key)
{}
ParamKey(ParameterGrp *h, const char *key)
:hGrp(h), key(key)
{}
bool operator < (const ParamKey &other) const {
if (hGrp < other.hGrp)
return true;
if (hGrp > other.hGrp)
return false;
return strcmp(key, other.key) < 0;
}
};
/// Helper class to handle parameter change
class GuiExport ParamHandler {
public:
virtual ~ParamHandler() {}
/** Called when the corresponding parameter key changes
* @param key: the parameter key
* @return Returns true if the handler needs to be delay triggered by a timer
*/
virtual bool onChange(const ParamKey *key) = 0;
/// Called in delay triggered
virtual void onTimer() {}
};
/// Template class for a non-delayed parameter handler
template<class Func>
class ParamHandlerT : public ParamHandler
{
public:
ParamHandlerT(Func f)
:func(f)
{}
bool onChange(const ParamKey *key) override {
func(key);
return false;
}
private:
Func func;
};
/// Template class for a delayed parameter handler
template<class Func>
class ParamDelayedHandlerT : public ParamHandler
{
public:
ParamDelayedHandlerT(Func f)
:func(f)
{}
bool onChange(const ParamKey *) override {
return true;
}
void onTimer() override {
func();
}
private:
Func func;
};
// Helper class to manage handlers of a list of parameters.
//
// The handlers are stored in a map from ParamKey to shared pointer to a
// ParamHandler. The same handler can be registered with multiple keys. When
// the registered parameter key is changed, the manager will call the
// registered handler function ParamHandler::onChange(). If it returns True,
// then the handler will be appended to a queue to be invoked later by a timer
// to avoid repeatitive processing on change of multiple keys.
//
// The handler manager is meant to be initiated by some static function, e.g.
// DlgSettingsGeneral::attachObserver(). It is intended to be one and only
// place of handling changes of the given set of parameters, regardless of
// whether the changes are coming from direct editing through parameter editor,
// user code changing of parameters, changing preference dialog, or loading a
// preference pack.
//
class GuiExport ParamHandlers {
public:
ParamHandlers();
virtual ~ParamHandlers();
void addHandler(const ParamKey &key, const std::shared_ptr<ParamHandler> &handler);
void addHandler(const char *path, const char *key, const std::shared_ptr<ParamHandler> &handler) {
addHandler(ParamKey(path, key), handler);
}
void addHandler(ParameterGrp *hGrp, const char *key, const std::shared_ptr<ParamHandler> &handler) {
addHandler(ParamKey(hGrp, key), handler);
}
void addHandler(const std::vector<ParamKey> &keys, const std::shared_ptr<ParamHandler> &handler) {
for (const auto &key : keys)
addHandler(key, handler);
}
void addHandler(const char *path, const std::vector<const char*> &keys, const std::shared_ptr<ParamHandler> &handler) {
for (const auto &key : keys)
addHandler(path, key, handler);
}
void addHandler(ParameterGrp *hGrp, const std::vector<const char*> &keys, const std::shared_ptr<ParamHandler> &handler) {
for (const auto &key : keys)
addHandler(hGrp, key, handler);
}
template<class Func>
std::shared_ptr<ParamHandler> addHandler(const char *path, const char *key, Func func) {
std::shared_ptr<ParamHandler> handler(new ParamHandlerT<Func>(func));
addHandler(path, key, handler);
return handler;
}
template<class Func>
std::shared_ptr<ParamHandler> addHandler(ParameterGrp *hGrp, const char *key, Func func) {
std::shared_ptr<ParamHandler> handler(new ParamHandlerT<Func>(func));
addHandler(hGrp, key, handler);
return handler;
}
template<class Func>
std::shared_ptr<ParamHandler> addDelayedHandler(const char *path, const char *key, Func func) {
auto hGrp = App::GetApplication().GetUserParameter().GetGroup(path);
auto wrap = [hGrp, func]() {
func(hGrp);
};
std::shared_ptr<ParamHandler> handler(new ParamDelayedHandlerT<decltype(wrap)>(wrap));
addHandler(hGrp, key, handler);
return handler;
}
template<class Func>
std::shared_ptr<ParamHandler> addDelayedHandler(ParameterGrp *hGrp, const char *key, Func func) {
auto wrap = [hGrp, func]() {
func(hGrp);
};
std::shared_ptr<ParamHandler> handler(new ParamDelayedHandlerT<decltype(wrap)>(wrap));
addHandler(hGrp, key, handler);
return handler;
}
template<class Func>
std::shared_ptr<ParamHandler> addDelayedHandler(const char *path,
const std::vector<const char *> &keys,
Func func)
{
auto hGrp = App::GetApplication().GetUserParameter().GetGroup(path);
auto wrap = [hGrp, func]() {
func(hGrp);
};
std::shared_ptr<ParamHandler> handler(new ParamDelayedHandlerT<decltype(wrap)>(wrap));
for (const auto &key : keys)
addHandler(ParamKey(hGrp, key), handler);
return handler;
}
template<class Func>
std::shared_ptr<ParamHandler> addDelayedHandler(ParameterGrp::handle hGrp,
const std::vector<const char *> &keys,
Func func)
{
auto wrap = [hGrp, func]() {
func(hGrp);
};
std::shared_ptr<ParamHandler> handler(new ParamDelayedHandlerT<decltype(wrap)>(wrap));
for (const auto &key : keys)
addHandler(ParamKey(hGrp, key), handler);
return handler;
}
protected:
std::map<ParamKey, std::shared_ptr<ParamHandler>> handlers;
std::set<std::shared_ptr<ParamHandler>> pendings;
boost::signals2::scoped_connection conn;
QTimer timer;
};
} // namespace Gui
#endif // GUI_PARAM_HANDLER_H

View File

@@ -47,12 +47,15 @@
#include <Gui/DlgPreferencePackManagementImp.h>
#include <Gui/DlgRevertToBackupConfigImp.h>
#include <Gui/MainWindow.h>
#include <Gui/OverlayManager.h>
#include <Gui/ParamHandler.h>
#include <Gui/PreferencePackManager.h>
#include <Gui/Language/Translator.h>
#include "DlgSettingsGeneral.h"
#include "ui_DlgSettingsGeneral.h"
using namespace Gui;
using namespace Gui::Dialog;
namespace fs = boost::filesystem;
using namespace Base;
@@ -655,4 +658,34 @@ void DlgSettingsGeneral::onThemeChanged(int index) {
themeChanged = true;
}
///////////////////////////////////////////////////////////
namespace {
class ApplyDockWidget: public ParamHandler {
public:
bool onChange(const ParamKey *) override {
OverlayManager::instance()->reload(OverlayManager::ReloadMode::ReloadPause);
return true;
}
void onTimer() override {
getMainWindow()->initDockWindows(true);
OverlayManager::instance()->reload(OverlayManager::ReloadMode::ReloadResume);
}
};
} // anonymous namespace
void DlgSettingsGeneral::attachObserver()
{
static ParamHandlers handlers;
auto hDockWindows = App::GetApplication().GetUserParameter().GetGroup("BaseApp/Preferences/DockWindows");
auto applyDockWidget = std::shared_ptr<ParamHandler>(new ApplyDockWidget);
handlers.addHandler(ParamKey(hDockWindows->GetGroup("ComboView"), "Enabled"), applyDockWidget);
handlers.addHandler(ParamKey(hDockWindows->GetGroup("TreeView"), "Enabled"), applyDockWidget);
handlers.addHandler(ParamKey(hDockWindows->GetGroup("PropertyView"), "Enabled"), applyDockWidget);
handlers.addHandler(ParamKey(hDockWindows->GetGroup("DAGView"), "Enabled"), applyDockWidget);
}
#include "moc_DlgSettingsGeneral.cpp"

View File

@@ -57,6 +57,8 @@ public:
void saveThemes();
void loadThemes();
static void attachObserver();
protected:
void changeEvent(QEvent *event) override;

View File

@@ -26,6 +26,7 @@
#endif
#include <Gui/Application.h>
#include <Gui/ParamHandler.h>
#include "DlgSettingsTheme.h"
#include "ui_DlgSettingsTheme.h"
@@ -42,14 +43,8 @@ using namespace Gui::Dialog;
DlgSettingsTheme::DlgSettingsTheme(QWidget* parent)
: PreferencePage(parent)
, ui(new Ui_DlgSettingsTheme)
, styleSheetChanged(false)
{
ui->setupUi(this);
connect(ui->styleSheetsCombobox, qOverload<int>(&QComboBox::activated), this, &DlgSettingsTheme::onStyleSheetChanged);
connect(ui->ThemeAccentColor1, &Gui::PrefColorButton::changed, this, &DlgSettingsTheme::onColorChanged);
connect(ui->ThemeAccentColor2, &Gui::PrefColorButton::changed, this, &DlgSettingsTheme::onColorChanged);
connect(ui->ThemeAccentColor3, &Gui::PrefColorButton::changed, this, &DlgSettingsTheme::onColorChanged);
}
/**
@@ -62,9 +57,8 @@ void DlgSettingsTheme::saveSettings()
ui->ThemeAccentColor1->onSave();
ui->ThemeAccentColor2->onSave();
ui->ThemeAccentColor3->onSave();
if (styleSheetChanged)
saveStyleSheet();
ui->StyleSheets->onSave();
ui->OverlayStyleSheets->onSave();
}
void DlgSettingsTheme::loadSettings()
@@ -76,50 +70,50 @@ void DlgSettingsTheme::loadSettings()
loadStyleSheet();
}
void DlgSettingsTheme::saveStyleSheet()
{
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
QVariant sheet = ui->styleSheetsCombobox->itemData(ui->styleSheetsCombobox->currentIndex());
hGrp->SetASCII("StyleSheet", (const char*)sheet.toByteArray());
bool tiledBackground = hGrp->GetBool("TiledBackground", false);
Application::Instance->setStyleSheet(sheet.toString(), tiledBackground);
styleSheetChanged = false;
}
void DlgSettingsTheme::loadStyleSheet()
{
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
populateStylesheets("StyleSheet", "qss", ui->StyleSheets, "No style sheet");
populateStylesheets("OverlayActiveStyleSheet", "overlay", ui->OverlayStyleSheets, "Auto");
}
void DlgSettingsTheme::populateStylesheets(const char *key,
const char *path,
PrefComboBox *combo,
const char *def,
QStringList filter)
{
auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
// List all .qss/.css files
QMap<QString, QString> cssFiles;
QDir dir;
QStringList filter;
filter << QString::fromLatin1("*.qss");
filter << QString::fromLatin1("*.css");
if (filter.isEmpty()) {
filter << QStringLiteral("*.qss");
filter << QStringLiteral("*.css");
}
QFileInfoList fileNames;
// read from user, resource and built-in directory
QStringList qssPaths = QDir::searchPaths(QString::fromLatin1("qss"));
for (const auto& qssPath : qssPaths) {
dir.setPath(qssPath);
QFileInfoList fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name);
for (const auto& fileName : qAsConst(fileNames)) {
if (cssFiles.find(fileName.baseName()) == cssFiles.end()) {
cssFiles[fileName.baseName()] = fileName.fileName();
QStringList qssPaths = QDir::searchPaths(QString::fromUtf8(path));
for (QStringList::iterator it = qssPaths.begin(); it != qssPaths.end(); ++it) {
dir.setPath(*it);
fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name);
for (QFileInfoList::iterator jt = fileNames.begin(); jt != fileNames.end(); ++jt) {
if (cssFiles.find(jt->baseName()) == cssFiles.end()) {
cssFiles[jt->baseName()] = jt->fileName();
}
}
}
combo->clear();
// now add all unique items
ui->styleSheetsCombobox->clear();
ui->styleSheetsCombobox->addItem(tr("No style sheet"), QString::fromLatin1(""));
combo->addItem(tr(def), QStringLiteral(""));
for (QMap<QString, QString>::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) {
ui->styleSheetsCombobox->addItem(it.key(), it.value());
combo->addItem(it.key(), it.value());
}
QString selectedStyleSheet = QString::fromLatin1(hGrp->GetASCII("StyleSheet").c_str());
int index = ui->styleSheetsCombobox->findData(selectedStyleSheet);
QString selectedStyleSheet = QString::fromUtf8(hGrp->GetASCII(key).c_str());
int index = combo->findData(selectedStyleSheet);
// might be an absolute path name
if (index < 0 && !selectedStyleSheet.isEmpty()) {
@@ -131,24 +125,13 @@ void DlgSettingsTheme::loadStyleSheet()
}
else {
selectedStyleSheet = fi.absoluteFilePath();
ui->styleSheetsCombobox->addItem(fi.baseName(), selectedStyleSheet);
combo->addItem(fi.baseName(), selectedStyleSheet);
}
index = ui->styleSheetsCombobox->findData(selectedStyleSheet);
}
}
if (index > -1)
ui->styleSheetsCombobox->setCurrentIndex(index);
}
void DlgSettingsTheme::onStyleSheetChanged(int index) {
Q_UNUSED(index);
styleSheetChanged = true;
}
void DlgSettingsTheme::onColorChanged() {
styleSheetChanged = true;
combo->setCurrentIndex(index);
combo->onRestore();
}
/**
@@ -158,12 +141,35 @@ void DlgSettingsTheme::changeEvent(QEvent *e)
{
if (e->type() == QEvent::LanguageChange) {
ui->retranslateUi(this);
loadStyleSheet();
}
else {
QWidget::changeEvent(e);
}
}
namespace {
void applyStyleSheet(ParameterGrp *hGrp)
{
auto sheet = hGrp->GetASCII("StyleSheet");
bool tiledBG = hGrp->GetBool("TiledBackground", false);
Gui::Application::Instance->setStyleSheet(QString::fromUtf8(sheet.c_str()), tiledBG);
}
} // anonymous namespace
void DlgSettingsTheme::attachObserver()
{
static ParamHandlers handlers;
auto handler = handlers.addDelayedHandler("BaseApp/Preferences/MainWindow",
{"StyleSheet", "TiledBackground"},
applyStyleSheet);
handlers.addHandler("BaseApp/Preferences/Themes",
{"ThemeAccentColor1", "ThemeAccentColor2", "ThemeAccentColor2"},
handler);
}
#include "moc_DlgSettingsTheme.cpp"

View File

@@ -28,6 +28,9 @@
#include <memory>
namespace Gui {
class PrefComboBox;
namespace Dialog {
class Ui_DlgSettingsTheme;
@@ -46,19 +49,21 @@ public:
void saveSettings() override;
void loadSettings() override;
void saveStyleSheet();
void loadStyleSheet();
static void attachObserver();
protected:
void changeEvent(QEvent *e) override;
protected Q_SLOTS:
void onStyleSheetChanged(int index);
void onColorChanged();
void populateStylesheets(const char *key,
const char *path,
PrefComboBox *combo,
const char *def,
QStringList filter = QStringList());
private:
std::unique_ptr<Ui_DlgSettingsTheme> ui;
bool styleSheetChanged;
};
} // namespace Dialog

View File

@@ -15,7 +15,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel">
<widget class="QLabel" name="label">
<property name="text">
<string>This page let you customize your current theme. The offered settings are optional for theme developers so they may or may not have an effect in your current theme.</string>
</property>
@@ -28,8 +28,38 @@
<layout class="QGridLayout">
<item row="0" column="0">
<layout class="QGridLayout">
<item row="3" column="1">
<widget class="Gui::PrefComboBox" name="StyleSheets">
<property name="toolTip">
<string>Style sheet how user interface will look like</string>
</property>
<property name="prefPath" stdset="0">
<cstring>MainWindow</cstring>
</property>
<property name="prefEntry" stdset="0">
<cstring>StyleSheet</cstring>
</property>
<property name="prefType" stdset="0">
<cstring></cstring>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Accent color 2</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Accent color 3</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel">
<widget class="QLabel" name="label">
<property name="text">
<string>Accent color 1</string>
</property>
@@ -61,10 +91,10 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel">
<item row="3" column="0">
<widget class="QLabel" name="styleSheetLabel">
<property name="text">
<string>Accent color 2</string>
<string>Style sheet (advanced):</string>
</property>
</widget>
</item>
@@ -94,13 +124,6 @@
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel">
<property name="text">
<string>Accent color 3</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="Gui::PrefColorButton" name="ThemeAccentColor3">
<property name="sizePolicy">
@@ -127,18 +150,23 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="styleSheetLabel">
<item row="4" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Style sheet (advanced):</string>
<string>Overlay style sheet:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="styleSheetsCombobox">
<property name="toolTip">
<string>Apply manually .qss Qt Stylesheets. This is the legacy way that was used to customize the interface.
You can now use Theme to get a full customization of the interface.</string>
<item row="4" column="1">
<widget class="Gui::PrefComboBox" name="OverlayStyleSheets">
<property name="prefPath" stdset="0">
<cstring>MainWindow</cstring>
</property>
<property name="prefEntry" stdset="0">
<cstring>OverlayActiveStyleSheet</cstring>
</property>
<property name="prefType" stdset="0">
<cstring></cstring>
</property>
</widget>
</item>
@@ -185,6 +213,11 @@ You can now use Theme to get a full customization of the interface.</string>
<extends>Gui::ColorButton</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
<customwidget>
<class>Gui::PrefComboBox</class>
<extends>QComboBox</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>

View File

@@ -0,0 +1,698 @@
/****************************************************************************
* Copyright (c) 2020 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
****************************************************************************/
#include "PreCompiled.h"
#include <QPropertyAnimation>
#include <QTimer>
/*[[[cog
import DlgSettingsUI
DlgSettingsUI.define()
]]]*/
// Auto generated code (Tools/params_utils.py:567)
#ifndef _PreComp_
# include <QApplication>
# include <QLabel>
# include <QGroupBox>
# include <QGridLayout>
# include <QVBoxLayout>
# include <QHBoxLayout>
#endif
#include <Gui/TreeParams.h>
#include <Gui/OverlayParams.h>
// Auto generated code (Tools/params_utils.py:589)
#include "Gui/PreferencePages/DlgSettingsUI.h"
using namespace Gui::Dialog;
/* TRANSLATOR Gui::Dialog::DlgSettingsUI */
// Auto generated code (Tools/params_utils.py:598)
DlgSettingsUI::DlgSettingsUI(QWidget* parent)
: PreferencePage( parent )
{
auto layout = new QVBoxLayout(this);
// Auto generated code (Tools/params_utils.py:420)
groupTreeview = new QGroupBox(this);
layout->addWidget(groupTreeview);
auto layoutHorizTreeview = new QHBoxLayout(groupTreeview);
auto layoutTreeview = new QGridLayout();
layoutHorizTreeview->addLayout(layoutTreeview);
layoutHorizTreeview->addStretch();
// Auto generated code (Tools/params_utils.py:433)
labelItemBackground = new QLabel(this);
layoutTreeview->addWidget(labelItemBackground, 0, 0);
ItemBackground = new Gui::PrefColorButton(this);
layoutTreeview->addWidget(ItemBackground, 0, 1);
ItemBackground->setPackedColor(Gui::TreeParams::defaultItemBackground());
ItemBackground->setEntryName("ItemBackground");
ItemBackground->setParamGrpPath("TreeView");
ItemBackground->setAllowTransparency(true);
// Auto generated code (Tools/params_utils.py:433)
labelItemBackgroundPadding = new QLabel(this);
layoutTreeview->addWidget(labelItemBackgroundPadding, 1, 0);
ItemBackgroundPadding = new Gui::PrefSpinBox(this);
layoutTreeview->addWidget(ItemBackgroundPadding, 1, 1);
ItemBackgroundPadding->setValue(Gui::TreeParams::defaultItemBackgroundPadding());
ItemBackgroundPadding->setEntryName("ItemBackgroundPadding");
ItemBackgroundPadding->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:1134)
ItemBackgroundPadding->setMinimum(0);
ItemBackgroundPadding->setMaximum(100);
ItemBackgroundPadding->setSingleStep(1);
// Auto generated code (Tools/params_utils.py:433)
ResizableColumn = new Gui::PrefCheckBox(this);
layoutTreeview->addWidget(ResizableColumn, 2, 0);
ResizableColumn->setChecked(Gui::TreeParams::defaultResizableColumn());
ResizableColumn->setEntryName("ResizableColumn");
ResizableColumn->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
CheckBoxesSelection = new Gui::PrefCheckBox(this);
layoutTreeview->addWidget(CheckBoxesSelection, 3, 0);
CheckBoxesSelection->setChecked(Gui::TreeParams::defaultCheckBoxesSelection());
CheckBoxesSelection->setEntryName("CheckBoxesSelection");
CheckBoxesSelection->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
HideColumn = new Gui::PrefCheckBox(this);
layoutTreeview->addWidget(HideColumn, 4, 0);
HideColumn->setChecked(Gui::TreeParams::defaultHideColumn());
HideColumn->setEntryName("HideColumn");
HideColumn->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
HideScrollBar = new Gui::PrefCheckBox(this);
layoutTreeview->addWidget(HideScrollBar, 5, 0);
HideScrollBar->setChecked(Gui::TreeParams::defaultHideScrollBar());
HideScrollBar->setEntryName("HideScrollBar");
HideScrollBar->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
HideHeaderView = new Gui::PrefCheckBox(this);
layoutTreeview->addWidget(HideHeaderView, 6, 0);
HideHeaderView->setChecked(Gui::TreeParams::defaultHideHeaderView());
HideHeaderView->setEntryName("HideHeaderView");
HideHeaderView->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
labelIconSize = new QLabel(this);
layoutTreeview->addWidget(labelIconSize, 7, 0);
IconSize = new Gui::PrefSpinBox(this);
layoutTreeview->addWidget(IconSize, 7, 1);
IconSize->setValue(Gui::TreeParams::defaultIconSize());
IconSize->setEntryName("IconSize");
IconSize->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
labelFontSize = new QLabel(this);
layoutTreeview->addWidget(labelFontSize, 8, 0);
FontSize = new Gui::PrefSpinBox(this);
layoutTreeview->addWidget(FontSize, 8, 1);
FontSize->setValue(Gui::TreeParams::defaultFontSize());
FontSize->setEntryName("FontSize");
FontSize->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:433)
labelItemSpacing = new QLabel(this);
layoutTreeview->addWidget(labelItemSpacing, 9, 0);
ItemSpacing = new Gui::PrefSpinBox(this);
layoutTreeview->addWidget(ItemSpacing, 9, 1);
ItemSpacing->setValue(Gui::TreeParams::defaultItemSpacing());
ItemSpacing->setEntryName("ItemSpacing");
ItemSpacing->setParamGrpPath("TreeView");
// Auto generated code (Tools/params_utils.py:420)
groupOverlay = new QGroupBox(this);
layout->addWidget(groupOverlay);
auto layoutHorizOverlay = new QHBoxLayout(groupOverlay);
auto layoutOverlay = new QGridLayout();
layoutHorizOverlay->addLayout(layoutOverlay);
layoutHorizOverlay->addStretch();
// Auto generated code (Tools/params_utils.py:433)
DockOverlayHideTabBar = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayHideTabBar, 0, 0);
DockOverlayHideTabBar->setChecked(Gui::OverlayParams::defaultDockOverlayHideTabBar());
DockOverlayHideTabBar->setEntryName("DockOverlayHideTabBar");
DockOverlayHideTabBar->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
DockOverlayHidePropertyViewScrollBar = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayHidePropertyViewScrollBar, 1, 0);
DockOverlayHidePropertyViewScrollBar->setChecked(Gui::OverlayParams::defaultDockOverlayHidePropertyViewScrollBar());
DockOverlayHidePropertyViewScrollBar->setEntryName("DockOverlayHidePropertyViewScrollBar");
DockOverlayHidePropertyViewScrollBar->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
DockOverlayAutoView = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayAutoView, 2, 0);
DockOverlayAutoView->setChecked(Gui::OverlayParams::defaultDockOverlayAutoView());
DockOverlayAutoView->setEntryName("DockOverlayAutoView");
DockOverlayAutoView->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
DockOverlayAutoMouseThrough = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayAutoMouseThrough, 3, 0);
DockOverlayAutoMouseThrough->setChecked(Gui::OverlayParams::defaultDockOverlayAutoMouseThrough());
DockOverlayAutoMouseThrough->setEntryName("DockOverlayAutoMouseThrough");
DockOverlayAutoMouseThrough->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
DockOverlayWheelPassThrough = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayWheelPassThrough, 4, 0);
DockOverlayWheelPassThrough->setChecked(Gui::OverlayParams::defaultDockOverlayWheelPassThrough());
DockOverlayWheelPassThrough->setEntryName("DockOverlayWheelPassThrough");
DockOverlayWheelPassThrough->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayWheelDelay = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayWheelDelay, 5, 0);
DockOverlayWheelDelay = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayWheelDelay, 5, 1);
DockOverlayWheelDelay->setValue(Gui::OverlayParams::defaultDockOverlayWheelDelay());
DockOverlayWheelDelay->setEntryName("DockOverlayWheelDelay");
DockOverlayWheelDelay->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayWheelDelay->setMinimum(0);
DockOverlayWheelDelay->setMaximum(99999);
DockOverlayWheelDelay->setSingleStep(1);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayAlphaRadius = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayAlphaRadius, 6, 0);
DockOverlayAlphaRadius = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayAlphaRadius, 6, 1);
DockOverlayAlphaRadius->setValue(Gui::OverlayParams::defaultDockOverlayAlphaRadius());
DockOverlayAlphaRadius->setEntryName("DockOverlayAlphaRadius");
DockOverlayAlphaRadius->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayAlphaRadius->setMinimum(1);
DockOverlayAlphaRadius->setMaximum(100);
DockOverlayAlphaRadius->setSingleStep(1);
// Auto generated code (Tools/params_utils.py:433)
DockOverlayCheckNaviCube = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayCheckNaviCube, 7, 0);
DockOverlayCheckNaviCube->setChecked(Gui::OverlayParams::defaultDockOverlayCheckNaviCube());
DockOverlayCheckNaviCube->setEntryName("DockOverlayCheckNaviCube");
DockOverlayCheckNaviCube->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintTriggerSize = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintTriggerSize, 8, 0);
DockOverlayHintTriggerSize = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintTriggerSize, 8, 1);
DockOverlayHintTriggerSize->setValue(Gui::OverlayParams::defaultDockOverlayHintTriggerSize());
DockOverlayHintTriggerSize->setEntryName("DockOverlayHintTriggerSize");
DockOverlayHintTriggerSize->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintTriggerSize->setMinimum(1);
DockOverlayHintTriggerSize->setMaximum(100);
DockOverlayHintTriggerSize->setSingleStep(1);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintSize = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintSize, 9, 0);
DockOverlayHintSize = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintSize, 9, 1);
DockOverlayHintSize->setValue(Gui::OverlayParams::defaultDockOverlayHintSize());
DockOverlayHintSize->setEntryName("DockOverlayHintSize");
DockOverlayHintSize->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintSize->setMinimum(1);
DockOverlayHintSize->setMaximum(100);
DockOverlayHintSize->setSingleStep(1);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintLeftOffset = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintLeftOffset, 10, 0);
DockOverlayHintLeftOffset = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintLeftOffset, 10, 1);
DockOverlayHintLeftOffset->setValue(Gui::OverlayParams::defaultDockOverlayHintLeftOffset());
DockOverlayHintLeftOffset->setEntryName("DockOverlayHintLeftOffset");
DockOverlayHintLeftOffset->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintLeftOffset->setMinimum(0);
DockOverlayHintLeftOffset->setMaximum(10000);
DockOverlayHintLeftOffset->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintLeftLength = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintLeftLength, 11, 0);
DockOverlayHintLeftLength = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintLeftLength, 11, 1);
DockOverlayHintLeftLength->setValue(Gui::OverlayParams::defaultDockOverlayHintLeftLength());
DockOverlayHintLeftLength->setEntryName("DockOverlayHintLeftLength");
DockOverlayHintLeftLength->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintLeftLength->setMinimum(0);
DockOverlayHintLeftLength->setMaximum(10000);
DockOverlayHintLeftLength->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintRightOffset = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintRightOffset, 12, 0);
DockOverlayHintRightOffset = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintRightOffset, 12, 1);
DockOverlayHintRightOffset->setValue(Gui::OverlayParams::defaultDockOverlayHintRightOffset());
DockOverlayHintRightOffset->setEntryName("DockOverlayHintRightOffset");
DockOverlayHintRightOffset->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintRightOffset->setMinimum(0);
DockOverlayHintRightOffset->setMaximum(10000);
DockOverlayHintRightOffset->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintRightLength = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintRightLength, 13, 0);
DockOverlayHintRightLength = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintRightLength, 13, 1);
DockOverlayHintRightLength->setValue(Gui::OverlayParams::defaultDockOverlayHintRightLength());
DockOverlayHintRightLength->setEntryName("DockOverlayHintRightLength");
DockOverlayHintRightLength->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintRightLength->setMinimum(0);
DockOverlayHintRightLength->setMaximum(10000);
DockOverlayHintRightLength->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintTopOffset = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintTopOffset, 14, 0);
DockOverlayHintTopOffset = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintTopOffset, 14, 1);
DockOverlayHintTopOffset->setValue(Gui::OverlayParams::defaultDockOverlayHintTopOffset());
DockOverlayHintTopOffset->setEntryName("DockOverlayHintTopOffset");
DockOverlayHintTopOffset->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintTopOffset->setMinimum(0);
DockOverlayHintTopOffset->setMaximum(10000);
DockOverlayHintTopOffset->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintTopLength = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintTopLength, 15, 0);
DockOverlayHintTopLength = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintTopLength, 15, 1);
DockOverlayHintTopLength->setValue(Gui::OverlayParams::defaultDockOverlayHintTopLength());
DockOverlayHintTopLength->setEntryName("DockOverlayHintTopLength");
DockOverlayHintTopLength->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintTopLength->setMinimum(0);
DockOverlayHintTopLength->setMaximum(10000);
DockOverlayHintTopLength->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintBottomOffset = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintBottomOffset, 16, 0);
DockOverlayHintBottomOffset = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintBottomOffset, 16, 1);
DockOverlayHintBottomOffset->setValue(Gui::OverlayParams::defaultDockOverlayHintBottomOffset());
DockOverlayHintBottomOffset->setEntryName("DockOverlayHintBottomOffset");
DockOverlayHintBottomOffset->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintBottomOffset->setMinimum(0);
DockOverlayHintBottomOffset->setMaximum(10000);
DockOverlayHintBottomOffset->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintBottomLength = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintBottomLength, 17, 0);
DockOverlayHintBottomLength = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintBottomLength, 17, 1);
DockOverlayHintBottomLength->setValue(Gui::OverlayParams::defaultDockOverlayHintBottomLength());
DockOverlayHintBottomLength->setEntryName("DockOverlayHintBottomLength");
DockOverlayHintBottomLength->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintBottomLength->setMinimum(0);
DockOverlayHintBottomLength->setMaximum(10000);
DockOverlayHintBottomLength->setSingleStep(10);
// Auto generated code (Tools/params_utils.py:433)
DockOverlayHintTabBar = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayHintTabBar, 18, 0);
DockOverlayHintTabBar->setChecked(Gui::OverlayParams::defaultDockOverlayHintTabBar());
DockOverlayHintTabBar->setEntryName("DockOverlayHintTabBar");
DockOverlayHintTabBar->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayHintDelay = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayHintDelay, 19, 0);
DockOverlayHintDelay = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayHintDelay, 19, 1);
DockOverlayHintDelay->setValue(Gui::OverlayParams::defaultDockOverlayHintDelay());
DockOverlayHintDelay->setEntryName("DockOverlayHintDelay");
DockOverlayHintDelay->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayHintDelay->setMinimum(0);
DockOverlayHintDelay->setMaximum(1000);
DockOverlayHintDelay->setSingleStep(100);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlaySplitterHandleTimeout = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlaySplitterHandleTimeout, 20, 0);
DockOverlaySplitterHandleTimeout = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlaySplitterHandleTimeout, 20, 1);
DockOverlaySplitterHandleTimeout->setValue(Gui::OverlayParams::defaultDockOverlaySplitterHandleTimeout());
DockOverlaySplitterHandleTimeout->setEntryName("DockOverlaySplitterHandleTimeout");
DockOverlaySplitterHandleTimeout->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlaySplitterHandleTimeout->setMinimum(0);
DockOverlaySplitterHandleTimeout->setMaximum(99999);
DockOverlaySplitterHandleTimeout->setSingleStep(100);
// Auto generated code (Tools/params_utils.py:433)
DockOverlayActivateOnHover = new Gui::PrefCheckBox(this);
layoutOverlay->addWidget(DockOverlayActivateOnHover, 21, 0);
DockOverlayActivateOnHover->setChecked(Gui::OverlayParams::defaultDockOverlayActivateOnHover());
DockOverlayActivateOnHover->setEntryName("DockOverlayActivateOnHover");
DockOverlayActivateOnHover->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayDelay = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayDelay, 22, 0);
DockOverlayDelay = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayDelay, 22, 1);
DockOverlayDelay->setValue(Gui::OverlayParams::defaultDockOverlayDelay());
DockOverlayDelay->setEntryName("DockOverlayDelay");
DockOverlayDelay->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayDelay->setMinimum(0);
DockOverlayDelay->setMaximum(5000);
DockOverlayDelay->setSingleStep(100);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayAnimationDuration = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayAnimationDuration, 23, 0);
DockOverlayAnimationDuration = new Gui::PrefSpinBox(this);
layoutOverlay->addWidget(DockOverlayAnimationDuration, 23, 1);
DockOverlayAnimationDuration->setValue(Gui::OverlayParams::defaultDockOverlayAnimationDuration());
DockOverlayAnimationDuration->setEntryName("DockOverlayAnimationDuration");
DockOverlayAnimationDuration->setParamGrpPath("View");
// Auto generated code (Tools/params_utils.py:1134)
DockOverlayAnimationDuration->setMinimum(0);
DockOverlayAnimationDuration->setMaximum(5000);
DockOverlayAnimationDuration->setSingleStep(100);
// Auto generated code (Tools/params_utils.py:433)
labelDockOverlayAnimationCurve = new QLabel(this);
layoutOverlay->addWidget(labelDockOverlayAnimationCurve, 24, 0);
DockOverlayAnimationCurve = new Gui::PrefComboBox(this);
layoutOverlay->addWidget(DockOverlayAnimationCurve, 24, 1);
DockOverlayAnimationCurve->setEntryName("DockOverlayAnimationCurve");
DockOverlayAnimationCurve->setParamGrpPath("View");
// Auto generated code (Gui/OverlayParams.py:94)
for (const auto &item : OverlayParams::AnimationCurveTypes)
DockOverlayAnimationCurve->addItem(item);
DockOverlayAnimationCurve->setCurrentIndex(Gui::OverlayParams::defaultDockOverlayAnimationCurve());
layout->addItem(new QSpacerItem(40, 20, QSizePolicy::Fixed, QSizePolicy::Expanding));
retranslateUi();
// Auto generated code (Tools/params_utils.py:607)
init();
}
// Auto generated code (Tools/params_utils.py:614)
DlgSettingsUI::~DlgSettingsUI()
{
}
// Auto generated code (Tools/params_utils.py:622)
void DlgSettingsUI::saveSettings()
{
// Auto generated code (Tools/params_utils.py:461)
ItemBackground->onSave();
ItemBackgroundPadding->onSave();
ResizableColumn->onSave();
CheckBoxesSelection->onSave();
HideColumn->onSave();
HideScrollBar->onSave();
HideHeaderView->onSave();
IconSize->onSave();
FontSize->onSave();
ItemSpacing->onSave();
DockOverlayHideTabBar->onSave();
DockOverlayHidePropertyViewScrollBar->onSave();
DockOverlayAutoView->onSave();
DockOverlayAutoMouseThrough->onSave();
DockOverlayWheelPassThrough->onSave();
DockOverlayWheelDelay->onSave();
DockOverlayAlphaRadius->onSave();
DockOverlayCheckNaviCube->onSave();
DockOverlayHintTriggerSize->onSave();
DockOverlayHintSize->onSave();
DockOverlayHintLeftOffset->onSave();
DockOverlayHintLeftLength->onSave();
DockOverlayHintRightOffset->onSave();
DockOverlayHintRightLength->onSave();
DockOverlayHintTopOffset->onSave();
DockOverlayHintTopLength->onSave();
DockOverlayHintBottomOffset->onSave();
DockOverlayHintBottomLength->onSave();
DockOverlayHintTabBar->onSave();
DockOverlayHintDelay->onSave();
DockOverlaySplitterHandleTimeout->onSave();
DockOverlayActivateOnHover->onSave();
DockOverlayDelay->onSave();
DockOverlayAnimationDuration->onSave();
DockOverlayAnimationCurve->onSave();
}
// Auto generated code (Tools/params_utils.py:631)
void DlgSettingsUI::loadSettings()
{
// Auto generated code (Tools/params_utils.py:449)
ItemBackground->onRestore();
ItemBackgroundPadding->onRestore();
ResizableColumn->onRestore();
CheckBoxesSelection->onRestore();
HideColumn->onRestore();
HideScrollBar->onRestore();
HideHeaderView->onRestore();
IconSize->onRestore();
FontSize->onRestore();
ItemSpacing->onRestore();
DockOverlayHideTabBar->onRestore();
DockOverlayHidePropertyViewScrollBar->onRestore();
DockOverlayAutoView->onRestore();
DockOverlayAutoMouseThrough->onRestore();
DockOverlayWheelPassThrough->onRestore();
DockOverlayWheelDelay->onRestore();
DockOverlayAlphaRadius->onRestore();
DockOverlayCheckNaviCube->onRestore();
DockOverlayHintTriggerSize->onRestore();
DockOverlayHintSize->onRestore();
DockOverlayHintLeftOffset->onRestore();
DockOverlayHintLeftLength->onRestore();
DockOverlayHintRightOffset->onRestore();
DockOverlayHintRightLength->onRestore();
DockOverlayHintTopOffset->onRestore();
DockOverlayHintTopLength->onRestore();
DockOverlayHintBottomOffset->onRestore();
DockOverlayHintBottomLength->onRestore();
DockOverlayHintTabBar->onRestore();
DockOverlayHintDelay->onRestore();
DockOverlaySplitterHandleTimeout->onRestore();
DockOverlayActivateOnHover->onRestore();
DockOverlayDelay->onRestore();
DockOverlayAnimationDuration->onRestore();
DockOverlayAnimationCurve->onRestore();
}
// Auto generated code (Tools/params_utils.py:640)
void DlgSettingsUI::retranslateUi()
{
setWindowTitle(QObject::tr("UI"));
groupTreeview->setTitle(QObject::tr("Tree view"));
ItemBackground->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docItemBackground()));
labelItemBackground->setText(QObject::tr("Item background color"));
labelItemBackground->setToolTip(ItemBackground->toolTip());
ItemBackgroundPadding->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docItemBackgroundPadding()));
labelItemBackgroundPadding->setText(QObject::tr("Item background padding"));
labelItemBackgroundPadding->setToolTip(ItemBackgroundPadding->toolTip());
ResizableColumn->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docResizableColumn()));
ResizableColumn->setText(QObject::tr("Resizable columns"));
CheckBoxesSelection->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docCheckBoxesSelection()));
CheckBoxesSelection->setText(QObject::tr("Show item checkbox"));
HideColumn->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docHideColumn()));
HideColumn->setText(QObject::tr("Hide extra column"));
HideScrollBar->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docHideScrollBar()));
HideScrollBar->setText(QObject::tr("Hide scroll bar"));
HideHeaderView->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docHideHeaderView()));
HideHeaderView->setText(QObject::tr("Hide header"));
IconSize->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docIconSize()));
labelIconSize->setText(QObject::tr("IconSize"));
labelIconSize->setToolTip(IconSize->toolTip());
FontSize->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docFontSize()));
labelFontSize->setText(QObject::tr("FontSize"));
labelFontSize->setToolTip(FontSize->toolTip());
ItemSpacing->setToolTip(QApplication::translate("TreeParams", Gui::TreeParams::docItemSpacing()));
labelItemSpacing->setText(QObject::tr("ItemSpacing"));
labelItemSpacing->setToolTip(ItemSpacing->toolTip());
groupOverlay->setTitle(QObject::tr("Overlay"));
DockOverlayHideTabBar->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHideTabBar()));
DockOverlayHideTabBar->setText(QObject::tr("Hide tab bar"));
DockOverlayHidePropertyViewScrollBar->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHidePropertyViewScrollBar()));
DockOverlayHidePropertyViewScrollBar->setText(QObject::tr("Hide property view scroll bar"));
DockOverlayAutoView->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayAutoView()));
DockOverlayAutoView->setText(QObject::tr("Auto hide in non 3D view"));
DockOverlayAutoMouseThrough->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayAutoMouseThrough()));
DockOverlayAutoMouseThrough->setText(QObject::tr("Auto mouse pass through"));
DockOverlayWheelPassThrough->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayWheelPassThrough()));
DockOverlayWheelPassThrough->setText(QObject::tr("Auto mouse wheel pass through"));
DockOverlayWheelDelay->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayWheelDelay()));
labelDockOverlayWheelDelay->setText(QObject::tr("Delay mouse wheel pass through (ms)"));
labelDockOverlayWheelDelay->setToolTip(DockOverlayWheelDelay->toolTip());
DockOverlayAlphaRadius->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayAlphaRadius()));
labelDockOverlayAlphaRadius->setText(QObject::tr("Alpha test radius"));
labelDockOverlayAlphaRadius->setToolTip(DockOverlayAlphaRadius->toolTip());
DockOverlayCheckNaviCube->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayCheckNaviCube()));
DockOverlayCheckNaviCube->setText(QObject::tr("Check Navigation Cube"));
DockOverlayHintTriggerSize->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintTriggerSize()));
labelDockOverlayHintTriggerSize->setText(QObject::tr("Hint trigger size"));
labelDockOverlayHintTriggerSize->setToolTip(DockOverlayHintTriggerSize->toolTip());
DockOverlayHintSize->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintSize()));
labelDockOverlayHintSize->setText(QObject::tr("Hint width"));
labelDockOverlayHintSize->setToolTip(DockOverlayHintSize->toolTip());
DockOverlayHintLeftOffset->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintLeftOffset()));
labelDockOverlayHintLeftOffset->setText(QObject::tr("Left panel hint offset"));
labelDockOverlayHintLeftOffset->setToolTip(DockOverlayHintLeftOffset->toolTip());
DockOverlayHintLeftLength->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintLeftLength()));
labelDockOverlayHintLeftLength->setText(QObject::tr("Left panel hint length"));
labelDockOverlayHintLeftLength->setToolTip(DockOverlayHintLeftLength->toolTip());
DockOverlayHintRightOffset->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintRightOffset()));
labelDockOverlayHintRightOffset->setText(QObject::tr("Right panel hint offset"));
labelDockOverlayHintRightOffset->setToolTip(DockOverlayHintRightOffset->toolTip());
DockOverlayHintRightLength->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintRightLength()));
labelDockOverlayHintRightLength->setText(QObject::tr("Right panel hint length"));
labelDockOverlayHintRightLength->setToolTip(DockOverlayHintRightLength->toolTip());
DockOverlayHintTopOffset->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintTopOffset()));
labelDockOverlayHintTopOffset->setText(QObject::tr("Top panel hint offset"));
labelDockOverlayHintTopOffset->setToolTip(DockOverlayHintTopOffset->toolTip());
DockOverlayHintTopLength->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintTopLength()));
labelDockOverlayHintTopLength->setText(QObject::tr("Top panel hint length"));
labelDockOverlayHintTopLength->setToolTip(DockOverlayHintTopLength->toolTip());
DockOverlayHintBottomOffset->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintBottomOffset()));
labelDockOverlayHintBottomOffset->setText(QObject::tr("Bottom panel hint offset"));
labelDockOverlayHintBottomOffset->setToolTip(DockOverlayHintBottomOffset->toolTip());
DockOverlayHintBottomLength->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintBottomLength()));
labelDockOverlayHintBottomLength->setText(QObject::tr("Bottom panel hint length"));
labelDockOverlayHintBottomLength->setToolTip(DockOverlayHintBottomLength->toolTip());
DockOverlayHintTabBar->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintTabBar()));
DockOverlayHintTabBar->setText(QObject::tr("Hint show tab bar"));
DockOverlayHintDelay->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayHintDelay()));
labelDockOverlayHintDelay->setText(QObject::tr("Hint delay (ms)"));
labelDockOverlayHintDelay->setToolTip(DockOverlayHintDelay->toolTip());
DockOverlaySplitterHandleTimeout->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlaySplitterHandleTimeout()));
labelDockOverlaySplitterHandleTimeout->setText(QObject::tr("Splitter auto hide delay (ms)"));
labelDockOverlaySplitterHandleTimeout->setToolTip(DockOverlaySplitterHandleTimeout->toolTip());
DockOverlayActivateOnHover->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayActivateOnHover()));
DockOverlayActivateOnHover->setText(QObject::tr("Activate on hover"));
DockOverlayDelay->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayDelay()));
labelDockOverlayDelay->setText(QObject::tr("Layout delay (ms)"));
labelDockOverlayDelay->setToolTip(DockOverlayDelay->toolTip());
DockOverlayAnimationDuration->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayAnimationDuration()));
labelDockOverlayAnimationDuration->setText(QObject::tr("Animation duration (ms)"));
labelDockOverlayAnimationDuration->setToolTip(DockOverlayAnimationDuration->toolTip());
DockOverlayAnimationCurve->setToolTip(QApplication::translate("OverlayParams", Gui::OverlayParams::docDockOverlayAnimationCurve()));
labelDockOverlayAnimationCurve->setText(QObject::tr("Animation curve type"));
labelDockOverlayAnimationCurve->setToolTip(DockOverlayAnimationCurve->toolTip());
}
// Auto generated code (Tools/params_utils.py:657)
void DlgSettingsUI::changeEvent(QEvent *e)
{
if (e->type() == QEvent::LanguageChange) {
retranslateUi();
}
QWidget::changeEvent(e);
}
// Auto generated code (Tools/params_utils.py:670)
#include "moc_DlgSettingsUI.cpp"
//[[[end]]]
// -----------------------------------------------------------------------------------
// user code start
void DlgSettingsUI::init()
{
timer = new QTimer(this);
timer->setSingleShot(true);
animator1 = new QPropertyAnimation(this, "offset1", this);
QObject::connect(animator1, &QPropertyAnimation::stateChanged, [this]() {
if (animator1->state() != QAbstractAnimation::Running)
timer->start(1000);
});
QObject::connect(DockOverlayAnimationCurve, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &DlgSettingsUI::onCurveChange);
QObject::connect(timer, &QTimer::timeout, [=]() {
if (animator1->state() != QAbstractAnimation::Running) {
this->setOffset1(1);
this->a1 = this->b1 = 0;
}
});
}
qreal DlgSettingsUI::offset1() const
{
return this->t1;
}
void DlgSettingsUI::setOffset1(qreal t)
{
if (t == this->t1)
return;
this->t1 = t;
QLabel *label = this->labelDockOverlayAnimationCurve;
if (this->a1 == this->b1) {
this->a1 = label->x();
QPoint pos(width(), 0);
this->b1 = width() - label->fontMetrics().boundingRect(label->text()).width() - 5;
}
label->move(this->a1 * (1-t) + this->b1 * t, label->y());
}
void DlgSettingsUI::onCurveChange(int index)
{
if (sender() != DockOverlayAnimationCurve)
return;
double value = DockOverlayAnimationDuration->value()*2;
auto animator = animator1;
animator->setStartValue(0.0);
animator->setEndValue(1.0);
animator->setEasingCurve((QEasingCurve::Type)index);
animator->setDuration(value);
animator->start();
}
// user code end
// -----------------------------------------------------------------------------------

View File

@@ -0,0 +1,168 @@
/****************************************************************************
* Copyright (c) 2020 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
****************************************************************************/
#ifndef GUI_DIALOG_DLGSETTINGSUI_H
#define GUI_DIALOG_DLGSETTINGSUI_H
class QTimer;
class QPropertyAnimation;
/*[[[cog
import DlgSettingsUI
DlgSettingsUI.declare_begin()
]]]*/
// Auto generated code (Tools/params_utils.py:482)
#include <Gui/PropertyPage.h>
#include <Gui/PrefWidgets.h>
// Auto generated code (Tools/params_utils.py:489)
class QLabel;
class QGroupBox;
namespace Gui {
namespace Dialog {
/** Preference dialog for various UI related settings
* This class is auto generated by Gui/PreferencePages/DlgSettingsUI.py. Modify that file
* instead of this one, if you want to make any change. You need
* to install Cog Python package for code generation:
* @code
* pip install cogapp
* @endcode
*
* Once modified, you can regenerate the header and the source file,
* @code
* python3 -m cogapp -r Gui/PreferencePages/DlgSettingsUI.h Gui/PreferencePages/DlgSettingsUI.cpp
* @endcode
*/
class DlgSettingsUI : public Gui::Dialog::PreferencePage
{
Q_OBJECT
public:
DlgSettingsUI( QWidget* parent = 0 );
~DlgSettingsUI();
void saveSettings();
void loadSettings();
void retranslateUi();
protected:
void changeEvent(QEvent *e);
private:
// Auto generated code (Tools/params_utils.py:400)
QGroupBox * groupTreeview = nullptr;
QLabel *labelItemBackground = nullptr;
Gui::PrefColorButton *ItemBackground = nullptr;
QLabel *labelItemBackgroundPadding = nullptr;
Gui::PrefSpinBox *ItemBackgroundPadding = nullptr;
Gui::PrefCheckBox *ResizableColumn = nullptr;
Gui::PrefCheckBox *CheckBoxesSelection = nullptr;
Gui::PrefCheckBox *HideColumn = nullptr;
Gui::PrefCheckBox *HideScrollBar = nullptr;
Gui::PrefCheckBox *HideHeaderView = nullptr;
QLabel *labelIconSize = nullptr;
Gui::PrefSpinBox *IconSize = nullptr;
QLabel *labelFontSize = nullptr;
Gui::PrefSpinBox *FontSize = nullptr;
QLabel *labelItemSpacing = nullptr;
Gui::PrefSpinBox *ItemSpacing = nullptr;
// Auto generated code (Tools/params_utils.py:400)
QGroupBox * groupOverlay = nullptr;
Gui::PrefCheckBox *DockOverlayHideTabBar = nullptr;
Gui::PrefCheckBox *DockOverlayHidePropertyViewScrollBar = nullptr;
Gui::PrefCheckBox *DockOverlayAutoView = nullptr;
Gui::PrefCheckBox *DockOverlayAutoMouseThrough = nullptr;
Gui::PrefCheckBox *DockOverlayWheelPassThrough = nullptr;
QLabel *labelDockOverlayWheelDelay = nullptr;
Gui::PrefSpinBox *DockOverlayWheelDelay = nullptr;
QLabel *labelDockOverlayAlphaRadius = nullptr;
Gui::PrefSpinBox *DockOverlayAlphaRadius = nullptr;
Gui::PrefCheckBox *DockOverlayCheckNaviCube = nullptr;
QLabel *labelDockOverlayHintTriggerSize = nullptr;
Gui::PrefSpinBox *DockOverlayHintTriggerSize = nullptr;
QLabel *labelDockOverlayHintSize = nullptr;
Gui::PrefSpinBox *DockOverlayHintSize = nullptr;
QLabel *labelDockOverlayHintLeftOffset = nullptr;
Gui::PrefSpinBox *DockOverlayHintLeftOffset = nullptr;
QLabel *labelDockOverlayHintLeftLength = nullptr;
Gui::PrefSpinBox *DockOverlayHintLeftLength = nullptr;
QLabel *labelDockOverlayHintRightOffset = nullptr;
Gui::PrefSpinBox *DockOverlayHintRightOffset = nullptr;
QLabel *labelDockOverlayHintRightLength = nullptr;
Gui::PrefSpinBox *DockOverlayHintRightLength = nullptr;
QLabel *labelDockOverlayHintTopOffset = nullptr;
Gui::PrefSpinBox *DockOverlayHintTopOffset = nullptr;
QLabel *labelDockOverlayHintTopLength = nullptr;
Gui::PrefSpinBox *DockOverlayHintTopLength = nullptr;
QLabel *labelDockOverlayHintBottomOffset = nullptr;
Gui::PrefSpinBox *DockOverlayHintBottomOffset = nullptr;
QLabel *labelDockOverlayHintBottomLength = nullptr;
Gui::PrefSpinBox *DockOverlayHintBottomLength = nullptr;
Gui::PrefCheckBox *DockOverlayHintTabBar = nullptr;
QLabel *labelDockOverlayHintDelay = nullptr;
Gui::PrefSpinBox *DockOverlayHintDelay = nullptr;
QLabel *labelDockOverlaySplitterHandleTimeout = nullptr;
Gui::PrefSpinBox *DockOverlaySplitterHandleTimeout = nullptr;
Gui::PrefCheckBox *DockOverlayActivateOnHover = nullptr;
QLabel *labelDockOverlayDelay = nullptr;
Gui::PrefSpinBox *DockOverlayDelay = nullptr;
QLabel *labelDockOverlayAnimationDuration = nullptr;
Gui::PrefSpinBox *DockOverlayAnimationDuration = nullptr;
QLabel *labelDockOverlayAnimationCurve = nullptr;
Gui::PrefComboBox *DockOverlayAnimationCurve = nullptr;
//[[[end]]]
// -----------------------------------------------------------------------------------
// user code start
Q_PROPERTY(qreal offset1 READ offset1 WRITE setOffset1 DESIGNABLE true SCRIPTABLE true)
qreal offset1() const;
void setOffset1(qreal);
private:
void init();
void onCurveChange(int index);
private:
QTimer *timer;
QPropertyAnimation *animator1;
qreal t1 = 0;
qreal a1 = 0, b1 = 0;
// user code end
// -----------------------------------------------------------------------------------
/*[[[cog
import DlgSettingsUI
DlgSettingsUI.declare_end()
]]]*/
// Auto generated code (Tools/params_utils.py:536)
};
} // namespace Dialog
} // namespace Gui
//[[[end]]]
#endif // GUI_DIALOG_DLGSETTINGSUI_H

View File

@@ -0,0 +1,96 @@
# -*- coding: utf-8 -*-
# ***************************************************************************
# * Copyright (c) 2022 Zheng Lei (realthunder) <realthunder.dev@gmail.com>*
# * *
# * This program is free software; you can redistribute it and/or modify *
# * it under the terms of the GNU Lesser General Public License (LGPL) *
# * as published by the Free Software Foundation; either version 2 of *
# * the License, or (at your option) any later version. *
# * for detail see the LICENCE text file. *
# * *
# * This program is distributed in the hope that it will be useful, *
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
# * GNU Library General Public License for more details. *
# * *
# * You should have received a copy of the GNU Library General Public *
# * License along with this program; if not, write to the Free Software *
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
# * USA *
# * *
# ***************************************************************************
'''Auto code generator for preference page of Display/UI
'''
import cog, sys
from os import sys, path
# import Tools/params_utils.py
sys.path.append(path.join(path.dirname(
path.dirname(path.dirname(path.abspath(__file__)))), 'Tools'))
import params_utils
from params_utils import auto_comment
sys.path.append(path.join(path.dirname(
path.dirname(path.dirname(path.abspath(__file__)))), 'Gui'))
import OverlayParams, TreeParams
Title = 'UI'
NameSpace = 'Gui'
ClassName = 'DlgSettingsUI'
ClassDoc = 'Preference dialog for various UI related settings'
UserInit = 'init();'
_OverlayParams = { param.name : param for param in OverlayParams.Params }
_TreeParams = { param.name : param for param in TreeParams.Params }
ParamGroup = (
('Tree view', [_TreeParams[name] for name in (
'ItemBackground',
'ItemBackgroundPadding',
'ResizableColumn',
'CheckBoxesSelection',
'HideColumn',
'HideScrollBar',
'HideHeaderView',
'IconSize',
'FontSize',
'ItemSpacing',
)]),
('Overlay', [_OverlayParams[name] for name in (
'DockOverlayHideTabBar',
'DockOverlayHidePropertyViewScrollBar',
'DockOverlayAutoView',
'DockOverlayAutoMouseThrough',
'DockOverlayWheelPassThrough',
'DockOverlayWheelDelay',
'DockOverlayAlphaRadius',
'DockOverlayCheckNaviCube',
'DockOverlayHintTriggerSize',
'DockOverlayHintSize',
'DockOverlayHintLeftOffset',
'DockOverlayHintLeftLength',
'DockOverlayHintRightOffset',
'DockOverlayHintRightLength',
'DockOverlayHintTopOffset',
'DockOverlayHintTopLength',
'DockOverlayHintBottomOffset',
'DockOverlayHintBottomLength',
'DockOverlayHintTabBar',
'DockOverlayHintDelay',
'DockOverlaySplitterHandleTimeout',
'DockOverlayActivateOnHover',
'DockOverlayDelay',
'DockOverlayAnimationDuration',
'DockOverlayAnimationCurve',
)]),
)
def declare_begin():
params_utils.preference_dialog_declare_begin(sys.modules[__name__])
def declare_end():
params_utils.preference_dialog_declare_end(sys.modules[__name__])
def define():
params_utils.preference_dialog_define(sys.modules[__name__])

View File

@@ -44,7 +44,7 @@
#include "PreferencePages/DlgSettingsTheme.h"
#include "PreferencePages/DlgSettingsViewColor.h"
#include "PreferencePages/DlgSettingsWorkbenchesImp.h"
#include "PreferencePages/DlgSettingsUI.h"
#include "DlgToolbarsImp.h"
#include "DlgActionsImp.h"
@@ -67,15 +67,18 @@ WidgetFactorySupplier::WidgetFactorySupplier()
//
//
new PrefPageProducer<DlgSettingsGeneral> ( QT_TRANSLATE_NOOP("QObject","General") );
DlgSettingsGeneral::attachObserver();
new PrefPageProducer<DlgSettingsDocumentImp> ( QT_TRANSLATE_NOOP("QObject","General") );
new PrefPageProducer<DlgSettingsSelection> ( QT_TRANSLATE_NOOP("QObject","General") );
new PrefPageProducer<DlgSettingsCacheDirectory> ( QT_TRANSLATE_NOOP("QObject","General") );
new PrefPageProducer<DlgSettingsNotificationArea> ( QT_TRANSLATE_NOOP("QObject","General") );
new PrefPageProducer<DlgSettingsReportView> ( QT_TRANSLATE_NOOP("QObject","General") );
new PrefPageProducer<DlgSettings3DViewImp> ( QT_TRANSLATE_NOOP("QObject","Display") );
new PrefPageProducer<DlgSettingsUI> ( QT_TRANSLATE_NOOP("QObject","Display") );
new PrefPageProducer<DlgSettingsNavigation> ( QT_TRANSLATE_NOOP("QObject","Display") );
new PrefPageProducer<DlgSettingsViewColor> ( QT_TRANSLATE_NOOP("QObject","Display") );
new PrefPageProducer<DlgSettingsTheme> ( QT_TRANSLATE_NOOP("QObject","Display") );
DlgSettingsTheme::attachObserver();
new PrefPageProducer<DlgSettingsWorkbenchesImp> ( QT_TRANSLATE_NOOP("QObject","Workbenches") );
new PrefPageProducer<DlgSettingsMacroImp> ( QT_TRANSLATE_NOOP("QObject", "Python"));
new PrefPageProducer<DlgSettingsPythonConsole> ( QT_TRANSLATE_NOOP("QObject", "Python"));