summaryrefslogtreecommitdiff
authortille <tille>2002-06-30 01:05:42 (UTC)
committer tille <tille>2002-06-30 01:05:42 (UTC)
commit064b3d7b91a526a64c22facba228e3c2fec8fdc8 (patch) (unidiff)
tree98221da79a27bc13b8214b92c8c936c529312e24
parent1f9e13bb2d287a2495e2cbb0f8be0f53c883eae2 (diff)
downloadopie-064b3d7b91a526a64c22facba228e3c2fec8fdc8.zip
opie-064b3d7b91a526a64c22facba228e3c2fec8fdc8.tar.gz
opie-064b3d7b91a526a64c22facba228e3c2fec8fdc8.tar.bz2
late night
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/confedit/listviewitemconf.cpp5
-rw-r--r--noncore/apps/confedit/listviewitemconf.h4
-rw-r--r--noncore/apps/confedit/listviewitemconffile.cpp24
-rw-r--r--noncore/apps/confedit/listviewitemconffile.h8
-rw-r--r--noncore/apps/confedit/listviewitemconfigentry.cpp18
-rw-r--r--noncore/apps/confedit/listviewitemconfigentry.h5
-rw-r--r--noncore/apps/confedit/mainwindow.cpp65
-rw-r--r--noncore/apps/confedit/mainwindow.h4
8 files changed, 104 insertions, 29 deletions
diff --git a/noncore/apps/confedit/listviewitemconf.cpp b/noncore/apps/confedit/listviewitemconf.cpp
index 55f8422..91edca2 100644
--- a/noncore/apps/confedit/listviewitemconf.cpp
+++ b/noncore/apps/confedit/listviewitemconf.cpp
@@ -40,7 +40,12 @@ void ListViewItemConf::unchanged()
40 _changed=false; 40 _changed=false;
41 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) 41 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling())
42 { 42 {
43 ((ListViewItemConf*)it)->unchanged(); 43 ((ListViewItemConf*)it)->unchanged();
44 } 44 }
45 displayText(); 45 displayText();
46}
47
48bool ListViewItemConf::revertable()
49{
50 return _changed;
46} \ No newline at end of file 51} \ No newline at end of file
diff --git a/noncore/apps/confedit/listviewitemconf.h b/noncore/apps/confedit/listviewitemconf.h
index c6e60ba..3c504ed 100644
--- a/noncore/apps/confedit/listviewitemconf.h
+++ b/noncore/apps/confedit/listviewitemconf.h
@@ -20,16 +20,20 @@ public:
20 20
21 ListViewItemConf(ListViewItemConf *parent); 21 ListViewItemConf(ListViewItemConf *parent);
22 ListViewItemConf(QListView *parent); 22 ListViewItemConf(QListView *parent);
23 ~ListViewItemConf(); 23 ~ListViewItemConf();
24 24
25 int getType(); 25 int getType();
26 void save();
27 virtual void revert() = 0;
28 virtual void remove() = 0;
26 virtual void displayText() = 0; 29 virtual void displayText() = 0;
27 virtual void changed(); 30 virtual void changed();
28 bool isChanged() {return _changed;}; 31 bool isChanged() {return _changed;};
29 virtual void unchanged(); 32 virtual void unchanged();
33 virtual bool revertable();
30 34
31protected: 35protected:
32 int _type; 36 int _type;
33 bool _changed; 37 bool _changed;
34}; 38};
35 39
diff --git a/noncore/apps/confedit/listviewitemconffile.cpp b/noncore/apps/confedit/listviewitemconffile.cpp
index b075063..228421b 100644
--- a/noncore/apps/confedit/listviewitemconffile.cpp
+++ b/noncore/apps/confedit/listviewitemconffile.cpp
@@ -75,21 +75,27 @@ void ListViewItemConfFile::parseFile()
75 confFile.close(); 75 confFile.close();
76 unchanged(); 76 unchanged();
77 setExpandable( _valid ); 77 setExpandable( _valid );
78} 78}
79 79
80 80
81void ListViewItemConfFile::remove()
82{
83 QFile::remove(confFileInfo->absFilePath());
84 QFile::remove(backupFileName());
85 delete this;
86}
87
81void ListViewItemConfFile::revert() 88void ListViewItemConfFile::revert()
82{ 89{
83 if (_changed) 90 if (_changed)
84 { 91 {
85 parseFile(); 92 parseFile();
86 }else{ 93 }else{
87 QString backup = confFileInfo->absFilePath()+"~";
88 QFile conf(confFileInfo->absFilePath()); 94 QFile conf(confFileInfo->absFilePath());
89 QFile back(backup); 95 QFile back(backupFileName());
90 96
91 if (!back.open(IO_ReadOnly)) return; 97 if (!back.open(IO_ReadOnly)) return;
92 if (!conf.open(IO_WriteOnly)) return; 98 if (!conf.open(IO_WriteOnly)) return;
93 99
94 #define SIZE 124 100 #define SIZE 124
95 char buf[SIZE]; 101 char buf[SIZE];
@@ -99,21 +105,18 @@ void ListViewItemConfFile::revert()
99 } 105 }
100} 106}
101 107
102void ListViewItemConfFile::save() 108void ListViewItemConfFile::save()
103{ 109{
104 if (!_changed) return; 110 if (!_changed) return;
105 QString backup = confFileInfo->absFilePath()+"~";
106 qDebug("make backup to "+backup);
107 QFile conf(confFileInfo->absFilePath()); 111 QFile conf(confFileInfo->absFilePath());
108 QFile back(backup); 112 QFile back(backupFileName());
109 113
110 if (!conf.open(IO_ReadOnly)) return; 114 if (!conf.open(IO_ReadOnly)) return;
111 if (!back.open(IO_WriteOnly)) return; 115 if (!back.open(IO_WriteOnly)) return;
112 116
113 #define SIZE 124
114 char buf[SIZE]; 117 char buf[SIZE];
115 while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c); 118 while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c);
116 conf.close(); 119 conf.close();
117 back.close(); 120 back.close();
118 121
119 122
@@ -127,8 +130,13 @@ void ListViewItemConfFile::save()
127 unchanged(); 130 unchanged();
128} 131}
129 132
130 133
131bool ListViewItemConfFile::revertable() 134bool ListViewItemConfFile::revertable()
132{ 135{
133 return _changed || QFile(confFileInfo->absFilePath()+"~").exists(); 136 return _changed || QFile(backupFileName()).exists();
134} \ No newline at end of file 137}
138
139QString ListViewItemConfFile::backupFileName()
140{
141 return confFileInfo->absFilePath()+"~";
142}
diff --git a/noncore/apps/confedit/listviewitemconffile.h b/noncore/apps/confedit/listviewitemconffile.h
index ae23eab..679a2ed 100644
--- a/noncore/apps/confedit/listviewitemconffile.h
+++ b/noncore/apps/confedit/listviewitemconffile.h
@@ -21,16 +21,18 @@
21class ListViewItemConfFile : public ListViewItemConf { 21class ListViewItemConfFile : public ListViewItemConf {
22public: 22public:
23 ListViewItemConfFile(QFileInfo *file, QListView *parent=0); 23 ListViewItemConfFile(QFileInfo *file, QListView *parent=0);
24 ~ListViewItemConfFile(); 24 ~ListViewItemConfFile();
25 void parseFile(); 25 void parseFile();
26 QString fileName(); 26 QString fileName();
27 virtual void displayText();
28 bool revertable();
29 void save(); 27 void save();
30 void revert(); 28 virtual void displayText();
29 virtual bool revertable();
30 virtual void revert();
31 virtual void remove();
32 QString backupFileName();
31protected: 33protected:
32private: 34private:
33 bool _valid; 35 bool _valid;
34 QFileInfo *confFileInfo; 36 QFileInfo *confFileInfo;
35}; 37};
36 38
diff --git a/noncore/apps/confedit/listviewitemconfigentry.cpp b/noncore/apps/confedit/listviewitemconfigentry.cpp
index 77ce17d..b947514 100644
--- a/noncore/apps/confedit/listviewitemconfigentry.cpp
+++ b/noncore/apps/confedit/listviewitemconfigentry.cpp
@@ -16,12 +16,15 @@ ListViewItemConfigEntry::ListViewItemConfigEntry(ListViewItemConfFile *parent, Q
16 : ListViewItemConf(parent) 16 : ListViewItemConf(parent)
17{ 17{
18 _fileItem = parent; 18 _fileItem = parent;
19 _file = parent->fileName(); 19 _file = parent->fileName();
20 _group = group; 20 _group = group;
21 setKey(key); 21 setKey(key);
22 _groupOrig = group;
23 _keyOrig = _key;
24 _valueOrig = _value;
22 _fileItem->unchanged(); 25 _fileItem->unchanged();
23} 26}
24 27
25ListViewItemConfigEntry::~ListViewItemConfigEntry() 28ListViewItemConfigEntry::~ListViewItemConfigEntry()
26{ 29{
27} 30}
@@ -104,12 +107,18 @@ void ListViewItemConfigEntry::changed()
104{ 107{
105 _changed=true; 108 _changed=true;
106 displayText(); 109 displayText();
107 _fileItem->changed(); 110 _fileItem->changed();
108} 111}
109 112
113
114void ListViewItemConfigEntry::remove()
115{
116 delete this;
117}
118
110void ListViewItemConfigEntry::save(QTextStream *t) 119void ListViewItemConfigEntry::save(QTextStream *t)
111{ 120{
112 QString s; 121 QString s;
113 if (isGroup()) 122 if (isGroup())
114 { 123 {
115 s += "["+_group+"]"; 124 s += "["+_group+"]";
@@ -122,7 +131,16 @@ void ListViewItemConfigEntry::save(QTextStream *t)
122 (*t) << s; 131 (*t) << s;
123 _changed = false; 132 _changed = false;
124 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) 133 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling())
125 { 134 {
126 ((ListViewItemConfigEntry*)it)->save(t); 135 ((ListViewItemConfigEntry*)it)->save(t);
127 } 136 }
137}
138
139void ListViewItemConfigEntry::revert()
140{
141 _group = _groupOrig;
142 _key = _keyOrig;
143 _value = _valueOrig;
144 _changed=false;
145 displayText();
128} \ No newline at end of file 146} \ No newline at end of file
diff --git a/noncore/apps/confedit/listviewitemconfigentry.h b/noncore/apps/confedit/listviewitemconfigentry.h
index 1ff0491..6b651a6 100644
--- a/noncore/apps/confedit/listviewitemconfigentry.h
+++ b/noncore/apps/confedit/listviewitemconfigentry.h
@@ -31,16 +31,21 @@ public:
31 QString getKey(); 31 QString getKey();
32 QString getValue(); 32 QString getValue();
33 void keyChanged(QString); 33 void keyChanged(QString);
34 void valueChanged(QString); 34 void valueChanged(QString);
35 virtual void displayText(); 35 virtual void displayText();
36 virtual void changed(); 36 virtual void changed();
37 virtual void remove();
37 void save(QTextStream*); 38 void save(QTextStream*);
39 virtual void revert();
38private: 40private:
39 QString _file; 41 QString _file;
40 QString _group; 42 QString _group;
41 QString _key; 43 QString _key;
42 QString _value; 44 QString _value;
45 QString _groupOrig;
46 QString _keyOrig;
47 QString _valueOrig;
43 ListViewItemConfFile *_fileItem; 48 ListViewItemConfFile *_fileItem;
44}; 49};
45 50
46#endif 51#endif
diff --git a/noncore/apps/confedit/mainwindow.cpp b/noncore/apps/confedit/mainwindow.cpp
index 77b91f6..17a5058 100644
--- a/noncore/apps/confedit/mainwindow.cpp
+++ b/noncore/apps/confedit/mainwindow.cpp
@@ -37,74 +37,97 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
37 QMainWindow( parent, name, f ), _currentItem(0), _fileItem(0) 37 QMainWindow( parent, name, f ), _currentItem(0), _fileItem(0)
38 { 38 {
39 setCaption( tr("Conf File Editor") ); 39 setCaption( tr("Conf File Editor") );
40 40
41 QWidget *mainWidget = new QWidget(this); 41 QWidget *mainWidget = new QWidget(this);
42 setCentralWidget( mainWidget); 42 setCentralWidget( mainWidget);
43
44 QGridLayout *mainLayout = new QGridLayout( mainWidget ); 43 QGridLayout *mainLayout = new QGridLayout( mainWidget );
45 mainLayout->setSpacing( 3 ); 44 mainLayout->setSpacing( 3 );
46 mainLayout->setMargin( 3 ); 45 mainLayout->setMargin( 3 );
47 46
48 47
48 qDebug("settingList");
49 settingList = new ListViewConfDir( "/root/Settings/", this, "settingslist"); 49 settingList = new ListViewConfDir( "/root/Settings/", this, "settingslist");
50 settingList->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding));//, sizePolicy().hasHeightForWidth() ) );
50 mainLayout->addWidget( settingList, 0, 0 ); 51 mainLayout->addWidget( settingList, 0, 0 );
51 52
53 qDebug("editor");
52 editor = new EditWidget(this); 54 editor = new EditWidget(this);
55 editor->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum));//, sizePolicy().hasHeightForWidth() ) );
56// editor->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3));//, sizePolicy().hasHeightForWidth() ) );
53 mainLayout->addWidget( editor, 1, 0 ); 57 mainLayout->addWidget( editor, 1, 0 );
54 58
59 makeMenu();
60
61 qDebug("connect");
55 connect(settingList, SIGNAL( pressed(QListViewItem*) ), 62 connect(settingList, SIGNAL( pressed(QListViewItem*) ),
56 this, SLOT(setCurrent(QListViewItem*))); 63 this, SLOT(setCurrent(QListViewItem*)));
57 64
58 65
59 connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ), 66 connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ),
60 SLOT( groupChanged(const QString&) ) ); 67 SLOT( groupChanged(const QString&) ) );
61 connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ), 68 connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ),
62 SLOT( keyChanged(const QString&) ) ); 69 SLOT( keyChanged(const QString&) ) );
63 connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ), 70 connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ),
64 SLOT( valueChanged(const QString&) ) ); 71 SLOT( valueChanged(const QString&) ) );
65 makeMenu(); 72// qDebug("editor->hide()");
73 // editor->hide();
74 qDebug("connect");
75 connect( settingList, SIGNAL( clicked( QListViewItem* ) ),
76 this, SLOT( stopTimer( QListViewItem* ) ) );
66} 77}
67 78
68void MainWindow::makeMenu() 79void MainWindow::makeMenu()
69{ 80{
70 81 qDebug("MainWindow::makeMenu()");
71 82
72 popupTimer = new QTimer(this); 83 popupTimer = new QTimer(this);
73 popupMenuFile = new QPopupMenu(this); 84 popupMenuFile = new QPopupMenu(this);
85 popupMenuEntry = new QPopupMenu(this);
74 86
87 qDebug("Save");
75 popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 ); 88 popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 );
76 popupActionSave->addTo( popupMenuFile ); 89 popupActionSave->addTo( popupMenuFile );
90 // popupActionSave->addTo( popupMenuEntry );
77 connect( popupActionSave, SIGNAL( activated() ), 91 connect( popupActionSave, SIGNAL( activated() ),
78 this , SLOT( saveConfFile() ) ); 92 this , SLOT( saveConfFile() ) );
93
94 qDebug("Revert");
79 popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 ); 95 popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 );
80 popupActionRevert->addTo( popupMenuFile ); 96 popupActionRevert->addTo( popupMenuFile );
97 popupActionRevert->addTo( popupMenuEntry );
81 connect( popupActionRevert, SIGNAL( activated() ), 98 connect( popupActionRevert, SIGNAL( activated() ),
82 this , SLOT( revertConfFile() ) ); 99 this , SLOT( revertConfFile() ) );
83 100
101 qDebug("Delete");
102 popupActionDelete = new QAction( tr("Delete"),QString::null, 0, this, 0 );
103 popupActionDelete->addTo( popupMenuFile );
104 popupActionDelete->addTo( popupMenuEntry );
105 connect( popupActionDelete, SIGNAL( activated() ),
106 this , SLOT( removeConfFile() ) );
107
108 qDebug("connect");
84 connect( popupTimer, SIGNAL(timeout()), 109 connect( popupTimer, SIGNAL(timeout()),
85 this, SLOT(showPopup()) ); 110 this, SLOT(showPopup()) );
86 connect( settingList, SIGNAL( clicked( QListViewItem* ) ), 111 qDebug("connect");
87 this, SLOT( stopTimer( QListViewItem* ) ) );
88} 112}
89 113
90MainWindow::~MainWindow() 114MainWindow::~MainWindow()
91{ 115{
92} 116}
93 117
94 118
95 119
96void MainWindow::setCurrent(QListViewItem *item) 120void MainWindow::setCurrent(QListViewItem *item)
97{ 121{
98 if (!item) return; 122 if (!item) return;
99 ListViewItemConf *i = (ListViewItemConf*) item; 123 _item = (ListViewItemConf*) item;
100 if (!i) return; 124 if (!_item) return;
101 if (i->getType() == ListViewItemConf::File) 125 popupTimer->start( 750, true );
126 if (_item->getType() == ListViewItemConf::File)
102 { 127 {
103 qDebug("start timer");
104 popupTimer->start( 750, true );
105 editor->hide(); 128 editor->hide();
106 updateGeometry(); 129 updateGeometry();
107 _currentItem=0; 130 _currentItem=0;
108 _fileItem = (ListViewItemConfFile*)item; 131 _fileItem = (ListViewItemConfFile*)item;
109 return; 132 return;
110 }else editor->show(); 133 }else editor->show();
@@ -123,12 +146,14 @@ void MainWindow::setCurrent(QListViewItem *item)
123 editor->LineEditKey->setText(key); 146 editor->LineEditKey->setText(key);
124 editor->LineEditValue->setText(val); 147 editor->LineEditValue->setText(val);
125 }else{ 148 }else{
126 editor->isKey(false); 149 editor->isKey(false);
127 } 150 }
128 updateGeometry(); 151 updateGeometry();
152 editor->updateGeometry();
153 settingList->updateGeometry();
129} 154}
130 155
131 156
132void MainWindow::groupChanged(const QString &g) 157void MainWindow::groupChanged(const QString &g)
133{ 158{
134 if (!_currentItem) return; 159 if (!_currentItem) return;
@@ -147,35 +172,41 @@ void MainWindow::valueChanged(const QString &v)
147 _currentItem->valueChanged(v); 172 _currentItem->valueChanged(v);
148} 173}
149 174
150 175
151void MainWindow::stopTimer( QListViewItem* ) 176void MainWindow::stopTimer( QListViewItem* )
152{ 177{
153 qDebug("stopTimer");
154 popupTimer->stop(); 178 popupTimer->stop();
155} 179}
156 180
157void MainWindow::saveConfFile() 181void MainWindow::saveConfFile()
158{ 182{
159 if (!_fileItem) return; 183 if (!_fileItem) return;
160 _fileItem->save(); 184 _fileItem->save();
161} 185}
162 186
163void MainWindow::revertConfFile() 187void MainWindow::revertConfFile()
164{ 188{
165 if (!_fileItem) return; 189 if (!_item) return;
166 _fileItem->revert(); 190 _item->revert();
167} 191}
168 192
193void MainWindow::removeConfFile()
194{
195 if (!_item) return;
196 _item->remove();
197}
169void MainWindow::showPopup() 198void MainWindow::showPopup()
170{ 199{
171 qDebug("showPopup"); 200qDebug("showPopup");
201 if (!_item) return;
202 popupActionRevert->setEnabled(_item->revertable());
203 popupActionSave->setEnabled(_item->isChanged());
172 if (_fileItem) 204 if (_fileItem)
173 { 205 {
174 popupActionSave->setEnabled(_fileItem->isChanged()); 206 popupActionSave->setEnabled(_fileItem->isChanged());
175 popupActionRevert->setEnabled(_fileItem->revertable());
176 popupMenuFile->popup( QCursor::pos() ); 207 popupMenuFile->popup( QCursor::pos() );
177 }else if(_currentItem->isChanged()) 208 }else if(_currentItem)
178 { 209 {
179 210 popupMenuEntry->popup( QCursor::pos() );
180 } 211 }
181} 212}
diff --git a/noncore/apps/confedit/mainwindow.h b/noncore/apps/confedit/mainwindow.h
index e0dc0b0..886b829 100644
--- a/noncore/apps/confedit/mainwindow.h
+++ b/noncore/apps/confedit/mainwindow.h
@@ -18,13 +18,13 @@
18#include <qpopupmenu.h> 18#include <qpopupmenu.h>
19#include "editwidget.h" 19#include "editwidget.h"
20 20
21class QPEToolBar; 21class QPEToolBar;
22class ListViewItemConfFile; 22class ListViewItemConfFile;
23class ListViewConfDir; 23class ListViewConfDir;
24 24class ListViewItemConf;
25 25
26class MainWindow : public QMainWindow 26class MainWindow : public QMainWindow
27{ 27{
28 Q_OBJECT 28 Q_OBJECT
29 29
30 30
@@ -39,16 +39,18 @@ public slots:
39 void keyChanged(const QString&); 39 void keyChanged(const QString&);
40 void valueChanged(const QString&); 40 void valueChanged(const QString&);
41 void showPopup(); 41 void showPopup();
42 void stopTimer( QListViewItem* ); 42 void stopTimer( QListViewItem* );
43 void saveConfFile(); 43 void saveConfFile();
44 void revertConfFile(); 44 void revertConfFile();
45 void removeConfFile();
45 46
46private: 47private:
47 ListViewConfDir *settingList; 48 ListViewConfDir *settingList;
48 EditWidget *editor; 49 EditWidget *editor;
50 ListViewItemConf *_item;
49 ListViewItemConfigEntry *_currentItem; 51 ListViewItemConfigEntry *_currentItem;
50 ListViewItemConfFile *_fileItem; 52 ListViewItemConfFile *_fileItem;
51 QTimer *popupTimer; 53 QTimer *popupTimer;
52 QPopupMenu *popupMenuFile; 54 QPopupMenu *popupMenuFile;
53 QPopupMenu *popupMenuEntry; 55 QPopupMenu *popupMenuEntry;
54 QAction *popupActionSave; 56 QAction *popupActionSave;