AlbumShaper  1.0a3
Public Member Functions | Private Attributes
SettingGroup Class Reference

SettingGroup contains settings which are releated. More...

#include <settinggroup.h>

Collaboration diagram for SettingGroup:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SettingGroup (QString name)
 Creates configuration variables using default avlues.
 ~SettingGroup ()
 Destructor.
QString getName ()
 Returns group's name.
QString getValue (QString key)
 Returns a setting value.
void setValue (QString key, QString value)
 Sets a setting value, create new setting if setting not found.
SettingGroupgetNext ()
 returns the next groupsetting
void setNext (SettingGroup *next)
 sets the next group setting
void loadSettings (QDomNode &node)
void saveSettings (QTextStream &stream)
 writes out this group to file
void resetSetting (QString key)
 resets a setting to its default value

Private Attributes

QString name
 groups identifying name
SettingfirstSetting
 pointer to first setting in group
SettinglastSetting
 pointer to last setting in group
SettingGroupnext
 pointer to next settingroup

Detailed Description

SettingGroup contains settings which are releated.

Definition at line 25 of file settinggroup.h.


Constructor & Destructor Documentation

SettingGroup::SettingGroup ( QString  name)

Creates configuration variables using default avlues.

Definition at line 21 of file settinggroup.cpp.

References firstSetting, lastSetting, name, and next.

{
  this->name = name;
  firstSetting = NULL;
  lastSetting = NULL;
  next = NULL;
}
SettingGroup::~SettingGroup ( )

Destructor.

Definition at line 29 of file settinggroup.cpp.

References firstSetting, and Setting::getNext().

{
  Setting* cur = firstSetting;
  while(cur != NULL)
  {
    Setting* t = cur->getNext();
    delete cur;
    cur = t;
  }
}

Member Function Documentation

QString SettingGroup::getName ( )
SettingGroup * SettingGroup::getNext ( )
QString SettingGroup::getValue ( QString  key)

Returns a setting value.

Definition at line 45 of file settinggroup.cpp.

References firstSetting, Setting::getKey(), Setting::getNext(), and Setting::getValue().

Referenced by Configuration::getString().

{
  Setting* cur = firstSetting;
  while(cur != NULL)
  {
    if(cur->getKey().compare(key) == 0)
    {
      return cur->getValue();
    }
    cur = cur->getNext();
  }
  return "-1";
}
void SettingGroup::loadSettings ( QDomNode &  node)

Definition at line 119 of file settinggroup.cpp.

References setValue().

Referenced by Configuration::loadSettings().

{
  //iterate over all children (Settings)
  QDomNode node = root.firstChild();
  QDomText val;
  while( !node.isNull() )
  {
    if( node.isElement() && node.nodeName() == "setting" )
    {
      //find key and value, if either is missing move on to next setting
      QDomNamedNodeMap attributes = node.attributes();
      if(attributes.namedItem("key").isNull() || attributes.namedItem("value").isNull())
      {
        node = node.nextSibling();
        continue;
      }


      QString k = attributes.namedItem("key").nodeValue();
      QString v = attributes.namedItem("value").nodeValue();

      //key and value found -> add new setting
      setValue( attributes.namedItem("key").nodeValue(),
                    attributes.namedItem("value").nodeValue() );
    }

    //move on to next setting
    node = node.nextSibling();
  }
}
void SettingGroup::resetSetting ( QString  key)

resets a setting to its default value

Definition at line 59 of file settinggroup.cpp.

References firstSetting, Setting::getKey(), Setting::getNext(), and Setting::resetSetting().

Referenced by Configuration::resetSetting().

{
  Setting* cur = firstSetting;
  while(cur != NULL)
  {
    if(cur->getKey().compare(key) == 0)
    {
      cur->resetSetting();
    }
    cur = cur->getNext();
  }
}
void SettingGroup::saveSettings ( QTextStream &  stream)

writes out this group to file

Definition at line 104 of file settinggroup.cpp.

References firstSetting, Setting::getKey(), getName(), Setting::getNext(), and Setting::getValue().

Referenced by Configuration::saveSettings().

{
  stream << "  <group name=\"" << getName() << "\">\n";

  //iterate over every setting
  Setting* cur = firstSetting;
  while(cur != NULL)
  {
    stream << "    <setting key=\"" << cur->getKey() << "\" value=\"" << cur->getValue() << "\"/>\n";
    cur = cur->getNext();
  }

  stream << "  </group>\n";
}
void SettingGroup::setNext ( SettingGroup next)

sets the next group setting

Definition at line 99 of file settinggroup.cpp.

References next.

Referenced by Configuration::loadSettings(), Configuration::removeGroup(), and Configuration::setString().

{
  this->next = next;
}
void SettingGroup::setValue ( QString  key,
QString  value 
)

Sets a setting value, create new setting if setting not found.

Definition at line 72 of file settinggroup.cpp.

References firstSetting, Setting::getKey(), Setting::getNext(), lastSetting, Setting::setNext(), and Setting::setValue().

Referenced by loadSettings(), and Configuration::setString().

{
  Setting* cur = firstSetting;
  while(cur != NULL)
  {
    if(cur->getKey().compare(key) == 0)
    {
      cur->setValue(value);
      return;
    }
    cur = cur->getNext();
  }

  //setting not found, create new one and append to list
  cur = new Setting(key, value);
  if(firstSetting == NULL)
    firstSetting = cur;
  else
    lastSetting->setNext(cur);
  lastSetting = cur;
}

Member Data Documentation

pointer to first setting in group

Definition at line 64 of file settinggroup.h.

Referenced by getValue(), resetSetting(), saveSettings(), SettingGroup(), setValue(), and ~SettingGroup().

pointer to last setting in group

Definition at line 67 of file settinggroup.h.

Referenced by SettingGroup(), and setValue().

QString SettingGroup::name [private]

groups identifying name

Definition at line 61 of file settinggroup.h.

Referenced by getName(), and SettingGroup().

pointer to next settingroup

Definition at line 70 of file settinggroup.h.

Referenced by getNext(), setNext(), and SettingGroup().


The documentation for this class was generated from the following files: