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}
|
||||
)
|
||||
|
||||
add_subdirectory(preferences)
|
||||
|
||||
# the interface, in C++
|
||||
set(SUBSURFACE_INTERFACE
|
||||
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
Reference in a new issue