BALL::VIEW::PreferencesEntry Class Reference

#include <BALL/VIEW/KERNEL/preferencesEntry.h>

Inheritance diagram for BALL::VIEW::PreferencesEntry:
Inheritance graph
[legend]

List of all members.

Classes

class  ExtendedPreferencesObject

Public Types

typedef std::list< std::pair
< QWidget *, String > > 
StackPages

Public Member Functions

 PreferencesEntry ()
virtual ~PreferencesEntry ()
virtual void writePreferenceEntries (INIFile &inifile)
 Store the settings of all registered objects.
virtual void readPreferenceEntries (const INIFile &inifile)
 Restore the settings of all registered objects.
void setINIFileSectionName (const String &name)
 Set the name for the section in the INIFile.
const StringgetINIFileSectionName () const
 Get the name for the section in the INIFile.
void setWidgetStackName (const String &name)
StackPagesgetStackPages ()
 Return all pages, that are to be shown in a parent QStackedWidget.
void setWidgetStack (QStackedWidget *stack)
virtual void showStackPage (Position nr)
 Show the specified page in the QStackedWidget.
virtual void showStackPage (QWidget *widget)
 Show the specified page in the QStackedWidget.
virtual Position currentStackPage () const
 Get the currently shown page in the QStackedWidget.
virtual void restoreDefaultValues (bool all=false)
 Set all registered objects to their default values.
virtual void storeValues ()
virtual void restoreValues (bool all=false)
virtual void dump (std::ostream &s=std::cout, Size depth=0) const

Protected Types

typedef HashMap< const QObject
*, String
ValueMap

Protected Member Functions

void registerWidgets_ ()
void registerObject_ (QObject *widget)
void unregisterObject_ (QObject *widget)
void registerWidgetForHelpSystem_ (const QWidget *widget, const String &url)
void restoreValues_ (bool all, const ValueMap &map)
void insertStackEntry_ (QWidget *, const String &name)
bool isSupported_ (QObject &widget)
bool getValue_ (const QObject *widget, String &value)
bool setValue_ (QObject *widget, const String &value)

Protected Attributes

String inifile_section_name_
HashSet< QObject * > registered_objects_
ValueMap default_values_
ValueMap last_values_
QStackedWidget * widget_stack_
StackPages stack_pages_

Detailed Description

Base class for a dialog or a Preferences page. It allows to register child widgets to support reading and writing their data into a INIFile. Also restoring of a default value and the last applied value is supported. Currently the following Qt widgets are supported:

To support more sophisticated items, e.g. color tables, a base class is provided to derive from (see ExtendedPreferencesObject). This object only needs to be a QObject with the PreferencesEntry as parent. \ Furthermore this class allows to use QStackedWidget items, like e.g. in the Preferences, where all individual child widgets are then also entries in a QListView. \ \ How to use this class:

  1. Derive from it.
  2. Ensure, that all child widgets have a unique name (see QWidget::setObjectName)
  3. Modify the constructor of the derived class:
  4. Make sure that every GUI element is set to its default value.
  5. Call registerWidgets_(), which automatically registeres all supported child widgets
  6. Call setINIFileSectionName(String)
  7. If the dialog is a page in a QStackedWidget (like in the Preferences dialog) call insertEntry(this, "Name to appear in the listview").
  8. If the dialog itself has a QStackedWidget call setWidgetStack() for it and set the names of the QStackedWidget pages accordingly.
See also:
ModelSettings for an example

Definition at line 68 of file preferencesEntry.h.


Member Typedef Documentation

typedef std::list<std::pair<QWidget*, String> > BALL::VIEW::PreferencesEntry::StackPages

Definition at line 96 of file preferencesEntry.h.

Definition at line 162 of file preferencesEntry.h.


Constructor & Destructor Documentation

BALL::VIEW::PreferencesEntry::PreferencesEntry (  ) 
virtual BALL::VIEW::PreferencesEntry::~PreferencesEntry (  )  [virtual]

Member Function Documentation

virtual Position BALL::VIEW::PreferencesEntry::currentStackPage (  )  const [virtual]

Get the currently shown page in the QStackedWidget.

virtual void BALL::VIEW::PreferencesEntry::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const [virtual]

Internal state dump. Dump the current internal state of this mainControl to the output ostream s with dumping depth depth.

Parameters:
s output stream where to output the internal state
depth the dumping depth
const String& BALL::VIEW::PreferencesEntry::getINIFileSectionName (  )  const [inline]

Get the name for the section in the INIFile.

Definition at line 114 of file preferencesEntry.h.

StackPages& BALL::VIEW::PreferencesEntry::getStackPages (  )  [inline]

Return all pages, that are to be shown in a parent QStackedWidget.

Definition at line 122 of file preferencesEntry.h.

bool BALL::VIEW::PreferencesEntry::getValue_ ( const QObject widget,
String value 
) [protected]
void BALL::VIEW::PreferencesEntry::insertStackEntry_ ( QWidget ,
const String name 
) [protected]
bool BALL::VIEW::PreferencesEntry::isSupported_ ( QObject widget  )  [protected]
virtual void BALL::VIEW::PreferencesEntry::readPreferenceEntries ( const INIFile inifile  )  [virtual]

Restore the settings of all registered objects.

Reimplemented in BALL::VIEW::MainControlPreferences, BALL::VIEW::PluginDialog, and BALL::VIEW::PythonSettings.

void BALL::VIEW::PreferencesEntry::registerObject_ ( QObject widget  )  [protected]
void BALL::VIEW::PreferencesEntry::registerWidgetForHelpSystem_ ( const QWidget widget,
const String url 
) [protected]

Register a widget for the internal help system

See also:
HelpViewer
void BALL::VIEW::PreferencesEntry::registerWidgets_ (  )  [protected]

Register all supported child objects for the storing of their data. Must be called at the end of the child classes constructor.

virtual void BALL::VIEW::PreferencesEntry::restoreDefaultValues ( bool  all = false  )  [virtual]

Set all registered objects to their default values.

Reimplemented in BALL::VIEW::LightSettings.

virtual void BALL::VIEW::PreferencesEntry::restoreValues ( bool  all = false  )  [virtual]

Restore the values of the child widgets. Called e.g. when a user presses a Cancel button.

Reimplemented in BALL::VIEW::LightSettings.

void BALL::VIEW::PreferencesEntry::restoreValues_ ( bool  all,
const ValueMap map 
) [protected]
void BALL::VIEW::PreferencesEntry::setINIFileSectionName ( const String name  )  [inline]

Set the name for the section in the INIFile.

Definition at line 111 of file preferencesEntry.h.

bool BALL::VIEW::PreferencesEntry::setValue_ ( QObject widget,
const String value 
) [protected]
void BALL::VIEW::PreferencesEntry::setWidgetStack ( QStackedWidget *  stack  ) 

Call this method in the constructor of the derived class has its own QStackedWidget.

void BALL::VIEW::PreferencesEntry::setWidgetStackName ( const String name  ) 

If the derived class is to be shown in a QStackedWidget, call this method to set the name for its entry.

virtual void BALL::VIEW::PreferencesEntry::showStackPage ( QWidget widget  )  [virtual]

Show the specified page in the QStackedWidget.

virtual void BALL::VIEW::PreferencesEntry::showStackPage ( Position  nr  )  [virtual]

Show the specified page in the QStackedWidget.

virtual void BALL::VIEW::PreferencesEntry::storeValues (  )  [virtual]

Store the values for later restoration by the restoreValues method. Called e.g. by the Preferences dialog apply button.

Reimplemented in BALL::VIEW::OpenSavePreferences.

void BALL::VIEW::PreferencesEntry::unregisterObject_ ( QObject widget  )  [protected]
virtual void BALL::VIEW::PreferencesEntry::writePreferenceEntries ( INIFile inifile  )  [virtual]

Store the settings of all registered objects.

Reimplemented in BALL::VIEW::MainControlPreferences, BALL::VIEW::PluginDialog, and BALL::VIEW::PythonSettings.


Member Data Documentation

Definition at line 207 of file preferencesEntry.h.

Definition at line 201 of file preferencesEntry.h.

Definition at line 207 of file preferencesEntry.h.

Definition at line 204 of file preferencesEntry.h.

Definition at line 212 of file preferencesEntry.h.

QStackedWidget* BALL::VIEW::PreferencesEntry::widget_stack_ [protected]

Definition at line 210 of file preferencesEntry.h.

Generated by  doxygen 1.6.3