summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/confedit/listviewitemconffile.cpp7
-rw-r--r--noncore/apps/confedit/listviewitemconfigentry.cpp21
-rw-r--r--noncore/apps/confedit/listviewitemconfigentry.h3
-rw-r--r--noncore/apps/confedit/mainwindow.cpp4
4 files changed, 33 insertions, 2 deletions
diff --git a/noncore/apps/confedit/listviewitemconffile.cpp b/noncore/apps/confedit/listviewitemconffile.cpp
index a8fd770..858726d 100644
--- a/noncore/apps/confedit/listviewitemconffile.cpp
+++ b/noncore/apps/confedit/listviewitemconffile.cpp
@@ -73,27 +73,34 @@ void ListViewItemConfFile::parseFile()
}
}
confFile.close();
setExpandable( _valid );
}
void ListViewItemConfFile::save()
{
if (!_changed) return;
QString backup = confFileInfo->absFilePath()+"~";
qDebug("make backup to "+backup);
QFile conf(confFileInfo->absFilePath());
QFile back(backup);
if (!conf.open(IO_ReadOnly)) return;
if (!back.open(IO_WriteOnly)) return;
#define SIZE 124
char buf[SIZE];
while (int c = conf.readBlock(buf, SIZE) ) back.writeBlock(buf,c);
conf.close();
back.close();
+ if (!conf.open(IO_WriteOnly)) return;
+ QTextStream *t = new QTextStream( &conf );
+ for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling())
+ {
+ ((ListViewItemConfigEntry*)it)->save(t);
+ }
+ conf.close();
qDebug("no saveing yet...");
unchanged();
}
diff --git a/noncore/apps/confedit/listviewitemconfigentry.cpp b/noncore/apps/confedit/listviewitemconfigentry.cpp
index 16be46e..77ce17d 100644
--- a/noncore/apps/confedit/listviewitemconfigentry.cpp
+++ b/noncore/apps/confedit/listviewitemconfigentry.cpp
@@ -1,36 +1,37 @@
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
// (c) 2002 Patrick S. Vogtp <tille@handhelds.org>
#include "listviewitemconfigentry.h"
#include "listviewitemconffile.h"
+#include <qtextstream.h>
ListViewItemConfigEntry::ListViewItemConfigEntry(ListViewItemConfFile *parent, QString group, QString key)
: ListViewItemConf(parent)
{
_fileItem = parent;
_file = parent->fileName();
_group = group;
setKey(key);
_fileItem->unchanged();
}
ListViewItemConfigEntry::~ListViewItemConfigEntry()
{
}
bool ListViewItemConfigEntry::isGroup()
{
return _key.isEmpty();
}
bool ListViewItemConfigEntry::isKey()
{
return !_key.isEmpty();
}
@@ -84,24 +85,44 @@ void ListViewItemConfigEntry::valueChanged(QString v)
changed();
}
void ListViewItemConfigEntry::displayText()
{
QString s;
if (_changed) s="*";
if (isGroup())
{
s += "["+_group+"]";
_type = Group;
}else{
s += _key+" = "+_value;
_type = Key;
}
setText(0,s);
}
void ListViewItemConfigEntry::changed()
{
_changed=true;
displayText();
_fileItem->changed();
} \ No newline at end of file
+
+void ListViewItemConfigEntry::save(QTextStream *t)
+{
+ QString s;
+ if (isGroup())
+ {
+ s += "["+_group+"]";
+ _type = Group;
+ }else{
+ s += _key+" = "+_value;
+ _type = Key;
+ }
+ s += "\n";
+ (*t) << s;
+ _changed = false;
+ for (QListViewItem *it = firstChild(); it!=0;it = it->nextSibling())
+ {
+ ((ListViewItemConfigEntry*)it)->save(t);
+ }
+} \ No newline at end of file
diff --git a/noncore/apps/confedit/listviewitemconfigentry.h b/noncore/apps/confedit/listviewitemconfigentry.h
index d2b331f..1ff0491 100644
--- a/noncore/apps/confedit/listviewitemconfigentry.h
+++ b/noncore/apps/confedit/listviewitemconfigentry.h
@@ -1,43 +1,46 @@
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
// (c) 2002 Patrick S. Vogtp <tille@handhelds.org>
#ifndef LISTVIEWITEMCONFIGENTRY_H
#define LISTVIEWITEMCONFIGENTRY_H
#include <qwidget.h>
#include <qlistview.h>
#include "listviewitemconffile.h"
#include "listviewitemconf.h"
+class QTextStream;
+
class ListViewItemConfigEntry : public ListViewItemConf {
public:
ListViewItemConfigEntry(ListViewItemConfFile *parent, QString group, QString key="");
~ListViewItemConfigEntry();
bool isGroup();
bool isKey();
QString getFile();
void setGroup(QString);
QString getGroup();
void setKey(QString);
QString getKey();
QString getValue();
void keyChanged(QString);
void valueChanged(QString);
virtual void displayText();
virtual void changed();
+ void save(QTextStream*);
private:
QString _file;
QString _group;
QString _key;
QString _value;
ListViewItemConfFile *_fileItem;
};
#endif
diff --git a/noncore/apps/confedit/mainwindow.cpp b/noncore/apps/confedit/mainwindow.cpp
index 30dfdf7..47d9518 100644
--- a/noncore/apps/confedit/mainwindow.cpp
+++ b/noncore/apps/confedit/mainwindow.cpp
@@ -34,54 +34,54 @@
MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) :
QMainWindow( parent, name, f ), _currentItem(0), _fileItem(0)
{
setCaption( tr("Conf File Editor") );
popupTimer = new QTimer(this);
popupMenu = new QPopupMenu(this);
QWidget *mainWidget = new QWidget(this);
setCentralWidget( mainWidget);
QGridLayout *mainLayout = new QGridLayout( mainWidget );
mainLayout->setSpacing( 3 );
mainLayout->setMargin( 3 );
settingList = new ListViewConfDir( "/root/Settings/", this, "settingslist");
mainLayout->addWidget( settingList, 0, 0 );
editor = new EditWidget(this);
mainLayout->addWidget( editor, 1, 0 );
- connect (settingList, SIGNAL( currentChanged(QListViewItem*) ),
+ connect(settingList, SIGNAL( pressed(QListViewItem*) ),
this, SLOT(setCurrent(QListViewItem*)));
connect( popupTimer, SIGNAL(timeout()),
this, SLOT(showPopup()) );
- connect( this, SIGNAL( clicked( QListViewItem* ) ),
+ connect( settingList, SIGNAL( clicked( QListViewItem* ) ),
this, SLOT( stopTimer( QListViewItem* ) ) );
connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ),
SLOT( groupChanged(const QString&) ) );
connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ),
SLOT( keyChanged(const QString&) ) );
connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ),
SLOT( valueChanged(const QString&) ) );
makeMenu();
}
void MainWindow::makeMenu()
{
}
MainWindow::~MainWindow()
{
}
void MainWindow::setCurrent(QListViewItem *item)