AlbumShaper  1.0a3
Public Member Functions | Private Attributes | List of all members
SettingGroup Class Reference

SettingGroup contains settings which are releated. More...

#include <settinggroup.h>

Collaboration diagram for SettingGroup:
Collaboration graph
[legend]

Public Member Functions

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

Private Attributes

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

Detailed Description

SettingGroup contains settings which are releated.

Definition at line 27 of file settinggroup.h.

Constructor & Destructor Documentation

◆ SettingGroup()

SettingGroup::SettingGroup ( QString  name)

Creates configuration variables using default avlues.

Definition at line 21 of file settinggroup.cpp.

22 {
23  this->name = name;
24  firstSetting = NULL;
25  lastSetting = NULL;
26  next = NULL;
27 }
QString name
groups identifying name
Definition: settinggroup.h:63
Setting * lastSetting
pointer to last setting in group
Definition: settinggroup.h:69
SettingGroup * next
pointer to next settingroup
Definition: settinggroup.h:72
Setting * firstSetting
pointer to first setting in group
Definition: settinggroup.h:66

References firstSetting, lastSetting, name, and next.

◆ ~SettingGroup()

SettingGroup::~SettingGroup ( )

Destructor.

Definition at line 29 of file settinggroup.cpp.

30 {
31  Setting* cur = firstSetting;
32  while(cur != NULL)
33  {
34  Setting* t = cur->getNext();
35  delete cur;
36  cur = t;
37  }
38 }
Setting class, allows the setting and retrieval of setting values.
Definition: setting.h:24
Setting * getNext()
gets a pointer to the next setting in the list
Definition: setting.cpp:41

References firstSetting, and Setting::getNext().

Member Function Documentation

◆ getName()

QString SettingGroup::getName ( )

Returns group's name.

Definition at line 40 of file settinggroup.cpp.

41 {
42  return name;
43 }

References name.

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

◆ getNext()

SettingGroup * SettingGroup::getNext ( )

◆ getValue()

QString SettingGroup::getValue ( QString  key)

Returns a setting value.

Definition at line 45 of file settinggroup.cpp.

46 {
47  Setting* cur = firstSetting;
48  while(cur != NULL)
49  {
50  if(cur->getKey().compare(key) == 0)
51  {
52  return cur->getValue();
53  }
54  cur = cur->getNext();
55  }
56  return "-1";
57 }
QString getKey()
Definition: setting.cpp:26
QString getValue()
Definition: setting.cpp:31

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

Referenced by Configuration::getString().

◆ loadSettings()

void SettingGroup::loadSettings ( QDomNode &  node)

Definition at line 119 of file settinggroup.cpp.

120 {
121  //iterate over all children (Settings)
122  QDomNode node = root.firstChild();
123  QDomText val;
124  while( !node.isNull() )
125  {
126  if( node.isElement() && node.nodeName() == "setting" )
127  {
128  //find key and value, if either is missing move on to next setting
129  QDomNamedNodeMap attributes = node.attributes();
130  if(attributes.namedItem("key").isNull() || attributes.namedItem("value").isNull())
131  {
132  node = node.nextSibling();
133  continue;
134  }
135 
136 
137  QString k = attributes.namedItem("key").nodeValue();
138  QString v = attributes.namedItem("value").nodeValue();
139 
140  //key and value found -> add new setting
141  setValue( attributes.namedItem("key").nodeValue(),
142  attributes.namedItem("value").nodeValue() );
143  }
144 
145  //move on to next setting
146  node = node.nextSibling();
147  }
148 }
void setValue(QString key, QString value)
Sets a setting value, create new setting if setting not found.

References setValue().

Referenced by Configuration::loadSettings().

◆ resetSetting()

void SettingGroup::resetSetting ( QString  key)

resets a setting to its default value

Definition at line 59 of file settinggroup.cpp.

60 {
61  Setting* cur = firstSetting;
62  while(cur != NULL)
63  {
64  if(cur->getKey().compare(key) == 0)
65  {
66  cur->resetSetting();
67  }
68  cur = cur->getNext();
69  }
70 }
void resetSetting()
resets value to default
Definition: setting.cpp:51

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

Referenced by Configuration::resetSetting().

◆ saveSettings()

void SettingGroup::saveSettings ( Q3TextStream &  stream)

writes out this group to file

Definition at line 104 of file settinggroup.cpp.

105 {
106  stream << " <group name=\"" << getName() << "\">\n";
107 
108  //iterate over every setting
109  Setting* cur = firstSetting;
110  while(cur != NULL)
111  {
112  stream << " <setting key=\"" << cur->getKey() << "\" value=\"" << cur->getValue() << "\"/>\n";
113  cur = cur->getNext();
114  }
115 
116  stream << " </group>\n";
117 }
QString getName()
Returns group's name.

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

Referenced by Configuration::saveSettings().

◆ setNext()

void SettingGroup::setNext ( SettingGroup next)

sets the next group setting

Definition at line 99 of file settinggroup.cpp.

100 {
101  this->next = next;
102 }

References next.

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

◆ setValue()

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.

73 {
74  Setting* cur = firstSetting;
75  while(cur != NULL)
76  {
77  if(cur->getKey().compare(key) == 0)
78  {
79  cur->setValue(value);
80  return;
81  }
82  cur = cur->getNext();
83  }
84 
85  //setting not found, create new one and append to list
86  cur = new Setting(key, value);
87  if(firstSetting == NULL)
88  firstSetting = cur;
89  else
90  lastSetting->setNext(cur);
91  lastSetting = cur;
92 }
void setValue(QString value)
Definition: setting.cpp:36
void setNext(Setting *next)
sets a pointer to the next setting in the list
Definition: setting.cpp:46

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

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

Member Data Documentation

◆ firstSetting

Setting* SettingGroup::firstSetting
private

pointer to first setting in group

Definition at line 66 of file settinggroup.h.

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

◆ lastSetting

Setting* SettingGroup::lastSetting
private

pointer to last setting in group

Definition at line 69 of file settinggroup.h.

Referenced by SettingGroup(), and setValue().

◆ name

QString SettingGroup::name
private

groups identifying name

Definition at line 63 of file settinggroup.h.

Referenced by getName(), and SettingGroup().

◆ next

SettingGroup* SettingGroup::next
private

pointer to next settingroup

Definition at line 72 of file settinggroup.h.

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


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