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 ( )

◆ 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: