summaryrefslogtreecommitdiff
path: root/core/pim/datebook2/stringmanager.cpp
Unidiff
Diffstat (limited to 'core/pim/datebook2/stringmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook2/stringmanager.cpp108
1 files changed, 102 insertions, 6 deletions
diff --git a/core/pim/datebook2/stringmanager.cpp b/core/pim/datebook2/stringmanager.cpp
index 77bc88a..715a4b1 100644
--- a/core/pim/datebook2/stringmanager.cpp
+++ b/core/pim/datebook2/stringmanager.cpp
@@ -1,3 +1,9 @@
1#include <qhbox.h>
2#include <qpushbutton.h>
3#include <qlayout.h>
4#include <qlistview.h>
5#include <qlineedit.h>
6
1#include <qpe/config.h> 7#include <qpe/config.h>
2 8
3#include "stringmanager.h" 9#include "stringmanager.h"
@@ -13,7 +19,7 @@ StringManager::~StringManager() {
13void StringManager::add( const QString& str ) { 19void StringManager::add( const QString& str ) {
14 ManagerTemplate<QString>::add(str, str); 20 ManagerTemplate<QString>::add(str, str);
15} 21}
16bool StringManager::doLoad() { 22bool StringManager::load() {
17 Config qpe( "datebook-"+m_base ); 23 Config qpe( "datebook-"+m_base );
18 qpe.setGroup(m_base ); 24 qpe.setGroup(m_base );
19 QStringList list = qpe.readListEntry( "Names", 0x1f ); 25 QStringList list = qpe.readListEntry( "Names", 0x1f );
@@ -22,21 +28,111 @@ bool StringManager::doLoad() {
22 28
23 return true; 29 return true;
24} 30}
25bool StringManager::doSave() { 31bool StringManager::save() {
26 Config qpe( "datebook"+m_base ); 32 Config qpe( "datebook-"+m_base );
27 qpe.setGroup(m_base); 33 qpe.setGroup(m_base);
28 qpe.writeEntry( "Names", names(), 0x1f ); 34 qpe.writeEntry( "Names", names(), 0x1f );
29 35
30 return false; 36 return false;
31} 37}
38QString StringManager::baseName()const {
39 return m_base;
40}
41
32 42
33 43
34StringManagerDialog::StringManagerDialog(const StringManager& ) 44StringManagerDialog::StringManagerDialog(const StringManager& man)
35 : QDialog(0, 0, true ) { 45 : QDialog(0, 0, true ) {
46 m_base = man.baseName();
47
48 QVBoxLayout* lay = new QVBoxLayout( this );
49
50 m_view = new QListView( this );
51 m_view->addColumn( QString::null );
52 lay->addWidget( m_view );
53
54 QHBox* box = new QHBox( this );
55
56 QPushButton* b = new QPushButton( box );
57 b->setText( tr("&Add") );
58 connect(b, SIGNAL(clicked() ), this, SLOT(slotAdd() ) );
59
60 b = new QPushButton( box );
61 b->setText( tr("&Remove") );
62 connect(b, SIGNAL(clicked() ), this, SLOT(slotRemove() ) );
63
64 b = new QPushButton( box );
65 b->setText( tr("Rename") );
66 connect(b, SIGNAL(clicked() ), this, SLOT(slotRename() ) );
67
68 lay->addWidget( box );
69
70 init( man );
36} 71}
37StringManagerDialog::~StringManagerDialog() { 72StringManagerDialog::~StringManagerDialog() {
38
39} 73}
40StringManager StringManagerDialog::manager()const { 74StringManager StringManagerDialog::manager()const {
41 return StringManager(); 75 StringManager man(m_base );
76 QListViewItemIterator it(m_view);
77 while ( it.current() ) {
78 man.add( it.current()->text(0) );
79 ++it;
80 }
81
82 return man;
83}
84void StringManagerDialog::init( const StringManager& _man ) {
85 QStringList::Iterator it;
86 QStringList man = _man.names();
87 for ( it = man.begin(); it != man.end(); ++it )
88 (void)new QListViewItem( m_view, (*it) );
89
90}
91
92namespace {
93 class InputDialog : public QDialog{
94 public:
95 InputDialog( const QString& text );
96 ~InputDialog();
97
98 QString text()const;
99 private:
100 QLineEdit* m_lneEdit;
101 };
102 InputDialog::InputDialog(const QString& text )
103 : QDialog(0, 0, true ) {
104 m_lneEdit = new QLineEdit( this );
105 m_lneEdit->setText( text );
106 }
107 InputDialog::~InputDialog() {
108 }
109 QString InputDialog::text() const{
110 return m_lneEdit->text();
111 }
112
113}
114
115void StringManagerDialog::slotAdd() {
116 InputDialog dlg(QString::null);
117 dlg.setCaption( tr("Add") );
118 if ( dlg.exec() == QDialog::Accepted )
119 (void)new QListViewItem( m_view, dlg.text() );
120
121}
122void StringManagerDialog::slotRename() {
123 QListViewItem* item = m_view->currentItem();
124 if (!item) return;
125
126 InputDialog dlg(item->text(0) );
127 dlg.setCaption( tr("Rename") );
128
129 if ( dlg.exec() == QDialog::Accepted )
130 item->setText( 0, dlg.text() );
131}
132void StringManagerDialog::slotRemove() {
133 QListViewItem* item = m_view->currentItem();
134 if (!item) return;
135
136 m_view->takeItem( item );
137 delete item;
42} 138}