00001 /*************************************************************************** 00002 * * 00003 * This program is free software; you can redistribute it and/or modify * 00004 * it under the terms of the GNU General Public License as published by * 00005 * the Free Software Foundation; either version 2 of the License, or * 00006 * (at your option) any later version. * 00007 * * 00008 ***************************************************************************/ 00009 // (c) 2002 Patrick S. Vogtp <tille@handhelds.org> 00010 00011 #include "listviewitemconfigentry.h" 00012 #include <qtextstream.h> 00013 00014 ListViewItemConfigEntry::ListViewItemConfigEntry(ListViewItemConfFile *parent, QString group, QString key) 00015 : ListViewItemConf(parent) 00016 { 00017 _fileItem = parent; 00018 _file = parent->fileName(); 00019 _group = group; 00020 setKey(key); 00021 _groupOrig = group; 00022 _keyOrig = _key; 00023 _valueOrig = _value; 00024 } 00025 00026 ListViewItemConfigEntry::~ListViewItemConfigEntry() 00027 { 00028 } 00029 00030 bool ListViewItemConfigEntry::isGroup() 00031 { 00032 return _key.isEmpty(); 00033 } 00034 00035 bool ListViewItemConfigEntry::isKey() 00036 { 00037 return !_key.isEmpty(); 00038 } 00039 00040 QString ListViewItemConfigEntry::getFile() 00041 { 00042 return _file; 00043 } 00044 00045 void ListViewItemConfigEntry::setGroup(QString g) 00046 { 00047 if (g==_group) return; 00048 _group = g; 00049 changed(); 00050 } 00051 00052 QString ListViewItemConfigEntry::getGroup() 00053 { 00054 return _group; 00055 } 00056 00057 void ListViewItemConfigEntry::setKey(QString key) 00058 { 00059 int pos = key.find("="); 00060 _key = key.left(pos).stripWhiteSpace(); 00061 _value = key.right(key.length() - pos - 1).stripWhiteSpace(); 00062 displayText(); 00063 } 00064 00065 QString ListViewItemConfigEntry::getKey() 00066 { 00067 return _key; 00068 } 00069 00070 QString ListViewItemConfigEntry::getValue() 00071 { 00072 return _value; 00073 } 00074 00075 void ListViewItemConfigEntry::keyChanged(QString k) 00076 { 00077 if (k==_key) return; 00078 _key = k; 00079 changed(); 00080 } 00081 00082 void ListViewItemConfigEntry::valueChanged(QString v) 00083 { 00084 if (v==_value) return; 00085 _value = v; 00086 changed(); 00087 } 00088 00089 void ListViewItemConfigEntry::displayText() 00090 { 00091 QString s; 00092 if (_changed) s="*"; 00093 if (isGroup()) 00094 { 00095 s += "["+_group+"]"; 00096 _type = Group; 00097 }else{ 00098 s += _key+" = "+_value; 00099 _type = Key; 00100 } 00101 setText(0,s); 00102 } 00103 00104 void ListViewItemConfigEntry::changed() 00105 { 00106 _changed=true; 00107 displayText(); 00108 _fileItem->changed(); 00109 } 00110 00111 00112 void ListViewItemConfigEntry::remove() 00113 { 00114 delete this; 00115 } 00116 00117 void ListViewItemConfigEntry::save(QTextStream *t) 00118 { 00119 QString s; 00120 if (isGroup()) 00121 { 00122 s += "["+_group+"]"; 00123 _type = Group; 00124 }else{ 00125 s += _key+" = "+_value; 00126 _type = Key; 00127 } 00128 s += "\n"; 00129 (*t) << s; 00130 _changed = false; 00131 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) 00132 { 00133 ((ListViewItemConfigEntry*)it)->save(t); 00134 } 00135 } 00136 00137 void ListViewItemConfigEntry::revert() 00138 { 00139 _group = _groupOrig; 00140 _key = _keyOrig; 00141 _value = _valueOrig; 00142 _changed=false; 00143 displayText(); 00144 } 00145 00146 00147 void ListViewItemConfigEntry::expand() 00148 { 00149 00150 }
1.4.2