summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/confedit/listviewitemconffile.cpp15
-rw-r--r--noncore/apps/confedit/mainwindow.cpp1
2 files changed, 13 insertions, 3 deletions
diff --git a/noncore/apps/confedit/listviewitemconffile.cpp b/noncore/apps/confedit/listviewitemconffile.cpp
index 1f85095..ce6504c 100644
--- a/noncore/apps/confedit/listviewitemconffile.cpp
+++ b/noncore/apps/confedit/listviewitemconffile.cpp
@@ -69,83 +69,92 @@ void ListViewItemConfFile::parseFile()
69 } else 69 } else
70 if ( int pos = s.find('=') ) 70 if ( int pos = s.find('=') )
71 { 71 {
72// qDebug("got key"+s); 72// qDebug("got key"+s);
73 if (!groupItem) qDebug("PANIK NO GROUP! >%s<",group.latin1()); 73 if (!groupItem) qDebug("PANIK NO GROUP! >%s<",group.latin1());
74 item = new ListViewItemConfigEntry(this, group, s ); 74 item = new ListViewItemConfigEntry(this, group, s );
75 groupItem->insertItem( item ); 75 groupItem->insertItem( item );
76 } 76 }
77 } 77 }
78 confFile.close(); 78 confFile.close();
79 setExpandable( _valid ); 79 setExpandable( _valid );
80 //qDebug("ListViewItemConfFile::parseFile END"); 80 //qDebug("ListViewItemConfFile::parseFile END");
81} 81}
82 82
83 83
84void ListViewItemConfFile::remove() 84void ListViewItemConfFile::remove()
85{ 85{
86 QFile::remove(confFileInfo->absFilePath()); 86 QFile::remove(confFileInfo->absFilePath());
87 QFile::remove(backupFileName()); 87 QFile::remove(backupFileName());
88 delete this; 88 delete this;
89} 89}
90 90
91void ListViewItemConfFile::revert() 91void ListViewItemConfFile::revert()
92{ 92{
93 if (_changed) 93 if (!_changed)
94 { 94 {
95 parseFile(); 95 // read the backup file
96 }else{
97 QFile conf(confFileInfo->absFilePath()); 96 QFile conf(confFileInfo->absFilePath());
98 QFile back(backupFileName()); 97 QFile back(backupFileName());
99 98
100 if (!back.open(IO_ReadOnly)) return; 99 if (!back.open(IO_ReadOnly)) return;
101 if (!conf.open(IO_WriteOnly)) return; 100 if (!conf.open(IO_WriteOnly)) return;
102 101
103 #define SIZE 124 102 #define SIZE 124
104 char buf[SIZE]; 103 char buf[SIZE];
105 while (int c = back.readBlock(buf, SIZE) ) conf.writeBlock(buf,c); 104 while (int c = back.readBlock(buf, SIZE) ) conf.writeBlock(buf,c);
106 conf.close(); 105 conf.close();
107 back.close(); 106 back.close();
108 } 107 }
108 parseFile();
109 expand();
109} 110}
110 111
111void ListViewItemConfFile::save() 112void ListViewItemConfFile::save()
112{ 113{
113 if (!_changed) return; 114 if (!_changed) return;
114 QFile conf(confFileInfo->absFilePath()); 115 QFile conf(confFileInfo->absFilePath());
115 QFile back(backupFileName()); 116 QFile back(backupFileName());
116 117
117 if (!conf.open(IO_ReadOnly)) return; 118 if (!conf.open(IO_ReadOnly)) return;
118 if (!back.open(IO_WriteOnly)) return; 119 if (!back.open(IO_WriteOnly)) return;
119 120
120 char buf[SIZE]; 121 char buf[SIZE];
121 while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c); 122 while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c);
122 conf.close(); 123 conf.close();
123 back.close(); 124 back.close();
124 125
125 126
126 if (!conf.open(IO_WriteOnly)) return; 127 if (!conf.open(IO_WriteOnly)) return;
127 QTextStream *t = new QTextStream( &conf ); 128 QTextStream *t = new QTextStream( &conf );
128 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling()) 129 for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling())
129 { 130 {
130 ((ListViewItemConfigEntry*)it)->save(t); 131 ((ListViewItemConfigEntry*)it)->save(t);
131 } 132 }
132 conf.close(); 133 conf.close();
133 unchanged(); 134 unchanged();
134} 135}
135 136
136 137
137bool ListViewItemConfFile::revertable() 138bool ListViewItemConfFile::revertable()
138{ 139{
139 return _changed || QFile(backupFileName()).exists(); 140 return _changed || QFile(backupFileName()).exists();
140} 141}
141 142
142QString ListViewItemConfFile::backupFileName() 143QString ListViewItemConfFile::backupFileName()
143{ 144{
144 return confFileInfo->absFilePath()+"~"; 145 return confFileInfo->absFilePath()+"~";
145} 146}
146 147
147 148
148void ListViewItemConfFile::expand() 149void ListViewItemConfFile::expand()
149{ 150{
151 QListViewItem *subItem = firstChild();
152 QListViewItem *toDel;
153 while(subItem)
154 {
155 toDel = subItem;
156 subItem = subItem->nextSibling();
157 delete toDel;
158 }
150 parseFile(); 159 parseFile();
151} 160}
diff --git a/noncore/apps/confedit/mainwindow.cpp b/noncore/apps/confedit/mainwindow.cpp
index 6de8741..c91c846 100644
--- a/noncore/apps/confedit/mainwindow.cpp
+++ b/noncore/apps/confedit/mainwindow.cpp
@@ -52,48 +52,49 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
52 settingList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) ); 52 settingList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) );
53 mainLayout->addWidget( settingList, 0); 53 mainLayout->addWidget( settingList, 0);
54 54
55 qDebug("creating editor"); 55 qDebug("creating editor");
56 editor = new EditWidget(this); 56 editor = new EditWidget(this);
57 editor->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Maximum));//, sizePolicy().hasHeightForWidth() ) ); 57 editor->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Maximum));//, sizePolicy().hasHeightForWidth() ) );
58 mainLayout->addWidget( editor, 1 ); 58 mainLayout->addWidget( editor, 1 );
59 editor->layoutType( ListViewItemConf::File ); 59 editor->layoutType( ListViewItemConf::File );
60 60
61 makeMenu(); 61 makeMenu();
62 62
63 connect(settingList, SIGNAL( pressed(QListViewItem*) ), 63 connect(settingList, SIGNAL( pressed(QListViewItem*) ),
64 this, SLOT(setCurrent(QListViewItem*))); 64 this, SLOT(setCurrent(QListViewItem*)));
65 connect( settingList, SIGNAL( clicked( QListViewItem* ) ), 65 connect( settingList, SIGNAL( clicked( QListViewItem* ) ),
66 this, SLOT( stopTimer( QListViewItem* ) ) ); 66 this, SLOT( stopTimer( QListViewItem* ) ) );
67 67
68 connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ), 68 connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ),
69 SLOT( groupChanged(const QString&) ) ); 69 SLOT( groupChanged(const QString&) ) );
70 connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ), 70 connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ),
71 SLOT( keyChanged(const QString&) ) ); 71 SLOT( keyChanged(const QString&) ) );
72 connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ), 72 connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ),
73 SLOT( valueChanged(const QString&) ) ); 73 SLOT( valueChanged(const QString&) ) );
74 74
75 setCurrent(0); 75 setCurrent(0);
76 editor->layoutType(EditWidget::File);
76} 77}
77 78
78void MainWindow::makeMenu() 79void MainWindow::makeMenu()
79{ 80{
80 popupTimer = new QTimer(this); 81 popupTimer = new QTimer(this);
81 popupMenuFile = new QPopupMenu(this); 82 popupMenuFile = new QPopupMenu(this);
82 popupMenuEntry = new QPopupMenu(this); 83 popupMenuEntry = new QPopupMenu(this);
83 84
84 popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 ); 85 popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 );
85 popupActionSave->addTo( popupMenuFile ); 86 popupActionSave->addTo( popupMenuFile );
86 // popupActionSave->addTo( popupMenuEntry ); 87 // popupActionSave->addTo( popupMenuEntry );
87 connect( popupActionSave, SIGNAL( activated() ), 88 connect( popupActionSave, SIGNAL( activated() ),
88 this , SLOT( saveConfFile() ) ); 89 this , SLOT( saveConfFile() ) );
89 90
90 popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 ); 91 popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 );
91 popupActionRevert->addTo( popupMenuFile ); 92 popupActionRevert->addTo( popupMenuFile );
92 popupActionRevert->addTo( popupMenuEntry ); 93 popupActionRevert->addTo( popupMenuEntry );
93 connect( popupActionRevert, SIGNAL( activated() ), 94 connect( popupActionRevert, SIGNAL( activated() ),
94 this , SLOT( revertConfFile() ) ); 95 this , SLOT( revertConfFile() ) );
95 96
96 popupActionDelete = new QAction( tr("Delete"),QString::null, 0, this, 0 ); 97 popupActionDelete = new QAction( tr("Delete"),QString::null, 0, this, 0 );
97 popupActionDelete->addTo( popupMenuFile ); 98 popupActionDelete->addTo( popupMenuFile );
98 popupActionDelete->addTo( popupMenuEntry ); 99 popupActionDelete->addTo( popupMenuEntry );
99 connect( popupActionDelete, SIGNAL( activated() ), 100 connect( popupActionDelete, SIGNAL( activated() ),