mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Preferences: start to port preferences to a more sane design
Our preferences dialog right now is a rather huge dialog with more than 9 subpages, and all of those pages are programmed inside of the same class, same methods and all that - which means that if I change something on the dialog I can break any other thing quite easily. The idea of this patch series is to make it harder to break user settings and the settings dialog. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
225ac07005
commit
b35ccc3a35
4 changed files with 59 additions and 0 deletions
|
@ -13,6 +13,8 @@ include_directories(.
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_subdirectory(preferences)
|
||||||
|
|
||||||
# the interface, in C++
|
# the interface, in C++
|
||||||
set(SUBSURFACE_INTERFACE
|
set(SUBSURFACE_INTERFACE
|
||||||
updatemanager.cpp
|
updatemanager.cpp
|
||||||
|
|
9
desktop-widgets/preferences/CMakeLists.txt
Normal file
9
desktop-widgets/preferences/CMakeLists.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# the profile widget
|
||||||
|
set(SUBSURFACE_PREFERENCES_LIB_SRCS
|
||||||
|
abstractpreferenceswidget.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
source_group("Subsurface Preferences" FILES ${SUBSURFACE_PREFERENCES_LIB_SRCS})
|
||||||
|
|
||||||
|
add_library(subsurface_desktop_preferences STATIC ${SUBSURFACE_PREFERENCES_LIB_SRCS})
|
||||||
|
target_link_libraries(subsurface_desktop_preferences ${QT_LIBRARIES})
|
21
desktop-widgets/preferences/abstractpreferenceswidget.cpp
Normal file
21
desktop-widgets/preferences/abstractpreferenceswidget.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#include "abstractpreferenceswidget.h"
|
||||||
|
|
||||||
|
AbstractPreferencesWidget::AbstractPreferencesWidget(const QString& name, const QIcon& icon, float positionHeight)
|
||||||
|
: QWidget(), _name(name), _icon(icon), _positionHeight(positionHeight)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon AbstractPreferencesWidget::icon() const
|
||||||
|
{
|
||||||
|
return _icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AbstractPreferencesWidget::name() const
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
float AbstractPreferencesWidget::positionHeight() const
|
||||||
|
{
|
||||||
|
return _positionHeight;
|
||||||
|
}
|
27
desktop-widgets/preferences/abstractpreferenceswidget.h
Normal file
27
desktop-widgets/preferences/abstractpreferenceswidget.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef ABSTRACTPREFERENCESWIDGET_H
|
||||||
|
#define ABSTRACTPREFERENCESWIDGET_H
|
||||||
|
|
||||||
|
#include <QIcon>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class AbstractPreferencesWidget : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
AbstractPreferencesWidget(const QString& name, const QIcon& icon, float positionHeight);
|
||||||
|
QIcon icon() const;
|
||||||
|
QString name() const;
|
||||||
|
float positionHeight() const;
|
||||||
|
|
||||||
|
/* gets the values from the preferences and should set the correct values in
|
||||||
|
* the interface */
|
||||||
|
virtual void refreshSettings() = 0;
|
||||||
|
|
||||||
|
/* gets the values from the interface and set in the preferences object. */
|
||||||
|
virtual void syncSettings() = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QIcon _icon;
|
||||||
|
QString _name;
|
||||||
|
float _positionHeight;
|
||||||
|
};
|
||||||
|
#endif
|
Loading…
Add table
Add a link
Reference in a new issue