BALL::VIEW::PreferencesEntry Class Reference

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

Inheritance diagram for BALL::VIEW::PreferencesEntry:
BALL::VIEW::AmberConfigurationDialog BALL::VIEW::AssignBondOrderConfigurationDialog BALL::VIEW::CharmmConfigurationDialog BALL::VIEW::ColoringSettingsDialog BALL::VIEW::DisplayProperties BALL::VIEW::DockDialog BALL::VIEW::EditSettings BALL::VIEW::FDPBDialog BALL::VIEW::GeometricFitDialog BALL::VIEW::LightSettings BALL::VIEW::MainControlPreferences BALL::VIEW::MaterialSettings BALL::VIEW::MinimizationDialog BALL::VIEW::MMFF94ConfigurationDialog BALL::VIEW::ModelSettingsDialog BALL::VIEW::MolecularDynamicsDialog BALL::VIEW::NetworkPreferences BALL::VIEW::OpenSavePreferences BALL::VIEW::PluginDialog BALL::VIEW::PythonSettings BALL::VIEW::ServerPreferences BALL::VIEW::ShortcutDialog BALL::VIEW::StageSettings

List of all members.


Classes

class  ExtendedPreferencesObject

Public Types

typedef 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

Member Typedef Documentation


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.

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

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

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.

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, and BALL::VIEW::PythonSettings.


Member Data Documentation

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