summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-09-24 01:53:27 (UTC)
committer llornkcor <llornkcor>2002-09-24 01:53:27 (UTC)
commitef40f0d781c904723d7842fc8be8f7dbad0614da (patch) (unidiff)
tree3c90068d73e19cf1fea43de570d7cd08c7ef6c33
parenta2c7b045c9a3ff9e275858b66e7fe29bdf4d8e31 (diff)
downloadopie-ef40f0d781c904723d7842fc8be8f7dbad0614da.zip
opie-ef40f0d781c904723d7842fc8be8f7dbad0614da.tar.gz
opie-ef40f0d781c904723d7842fc8be8f7dbad0614da.tar.bz2
added delete confirm to button
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/notesapplet/notes.cpp61
-rw-r--r--noncore/applets/notesapplet/notes.h1
2 files changed, 37 insertions, 25 deletions
diff --git a/noncore/applets/notesapplet/notes.cpp b/noncore/applets/notesapplet/notes.cpp
index cc5245c..81864c6 100644
--- a/noncore/applets/notesapplet/notes.cpp
+++ b/noncore/applets/notesapplet/notes.cpp
@@ -51,176 +51,187 @@ static char * notes_xpm[] = {
51". c #000000", 51". c #000000",
52"+ c #7F7F7F", 52"+ c #7F7F7F",
53"@ c #BFBFBF", 53"@ c #BFBFBF",
54"# c #BFC1FF", 54"# c #BFC1FF",
55"$ c #FF0000", 55"$ c #FF0000",
56"% c #FFFFFF", 56"% c #FFFFFF",
57"& c #00037F", 57"& c #00037F",
58"* c #0006FF", 58"* c #0006FF",
59"= c #0005BF", 59"= c #0005BF",
60"- c #7F0000", 60"- c #7F0000",
61" .. ", 61" .. ",
62" .. ", 62" .. ",
63" ... ", 63" ... ",
64" .+ ", 64" .+ ",
65" .@. ", 65" .@. ",
66" . .+ ", 66" . .+ ",
67" ..#.@. ", 67" ..#.@. ",
68" ..###.+.. ", 68" ..###.+.. ",
69" ..###$...##.. ", 69" ..###$...##.. ",
70"..###$$$%+$$##&.", 70"..###$$$%+$$##&.",
71".*=####$-###&=&.", 71".*=####$-###&=&.",
72".=**=###==&=&=..", 72".=**=###==&=&=..",
73" ..=**=#&=&=.. ", 73" ..=**=#&=&=.. ",
74" ..=*=&=.. ", 74" ..=*=&=.. ",
75" ..=.. ", 75" ..=.. ",
76" . "}; 76" . "};
77 77
78 78
79NotesControl::NotesControl( QWidget *parent, const char *name ) 79NotesControl::NotesControl( QWidget *parent, const char *name )
80 : QFrame( parent, name,/* WDestructiveClose | */WStyle_StaysOnTop ) 80 : QFrame( parent, name,/* WDestructiveClose | */WStyle_StaysOnTop )
81// : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup ) 81// : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup )
82{ 82{
83 setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); 83 setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
84 loaded=false; 84 loaded=false;
85 edited=false; 85 edited=false;
86 doPopulate=true; 86 doPopulate=true;
87 QVBoxLayout *vbox = new QVBoxLayout( this,0, -1, "Vlayout" ); 87 QVBoxLayout *vbox = new QVBoxLayout( this,0, -1, "Vlayout" );
88 QHBoxLayout *hbox = new QHBoxLayout( this, 0, -1, "HLayout" ); 88 QHBoxLayout *hbox = new QHBoxLayout( this, 0, -1, "HLayout" );
89 89
90 view = new QMultiLineEdit(this, "OpieNotesView"); 90 view = new QMultiLineEdit(this, "OpieNotesView");
91 91
92 box = new QListBox(this, "OpieNotesBox"); 92 box = new QListBox(this, "OpieNotesBox");
93 QPEApplication::setStylusOperation( box->viewport(),QPEApplication::RightOnHold); 93 QPEApplication::setStylusOperation( box->viewport(),QPEApplication::RightOnHold);
94 box->setFixedHeight(50); 94 box->setFixedHeight(50);
95 95
96 vbox->setMargin( 6 ); 96 vbox->setMargin( 6 );
97 vbox->setSpacing( 3 ); 97 vbox->setSpacing( 3 );
98 98
99 vbox->addWidget( view); 99 vbox->addWidget( view);
100 vbox->addWidget( box); 100 vbox->addWidget( box);
101 101
102 setFixedHeight(180); 102 setFixedHeight(180);
103 QWidget *wid = QPEApplication::desktop(); 103 QWidget *wid = QPEApplication::desktop();
104 setFixedWidth( wid->width()-10 /*200*/); 104 setFixedWidth( wid->width()-10 /*200*/);
105 105
106 setFocusPolicy(QWidget::StrongFocus); 106 setFocusPolicy(QWidget::StrongFocus);
107 107
108 newButton= new QPushButton( this, "newButton" ); 108 newButton= new QPushButton( this, "newButton" );
109 newButton->setText(tr("New")); 109 newButton->setText(tr("New"));
110 hbox->addWidget( newButton); 110 hbox->addWidget( newButton);
111 111
112 deleteButton= new QPushButton( this, "deleteButton" ); 112 deleteButton= new QPushButton( this, "deleteButton" );
113 deleteButton->setText(tr("Delete")); 113 deleteButton->setText(tr("Delete"));
114 hbox->addWidget( deleteButton); 114 hbox->addWidget( deleteButton);
115 115
116 vbox->addItem(hbox); 116 vbox->addItem(hbox);
117 117
118 connect( box, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint&)), 118 connect( box, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint&)),
119 this,SLOT( boxPressed(int, QListBoxItem *, const QPoint&)) ); 119 this,SLOT( boxPressed(int, QListBoxItem *, const QPoint&)) );
120 connect(box, SIGNAL(highlighted(const QString&)), this, SLOT(slotBoxSelected(const QString &))); 120 connect(box, SIGNAL(highlighted(const QString&)), this, SLOT(slotBoxSelected(const QString &)));
121 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showMenu() ) ); 121 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showMenu() ) );
122 122
123 connect(view,SIGNAL( textChanged() ), this, SLOT(slotViewEdited() ) ); 123 connect(view,SIGNAL( textChanged() ), this, SLOT(slotViewEdited() ) );
124 connect(newButton, SIGNAL(clicked()), this, SLOT(slotNewButton())); 124 connect(newButton, SIGNAL(clicked()), this, SLOT(slotNewButton()));
125 connect(deleteButton, SIGNAL(clicked()), this, SLOT(slotDeleteButton())); 125 connect(deleteButton, SIGNAL(clicked()), this, SLOT(slotDeleteButtonClicked()));
126
126 populateBox(); 127 populateBox();
127 load(); 128 load();
128 setCaption("Notes"); 129 setCaption("Notes");
129 // parent->setFocus(); 130 // parent->setFocus();
130} 131}
131 132
133void NotesControl::slotDeleteButtonClicked() {
134 switch ( QMessageBox::warning(this,tr("Delete?"),tr("Do you really want to<BR><B> delete</B> this note ?")
135 ,tr("Yes"),tr("No"),0,1,1) ) {
136 case 0:
137 slotDeleteButton();
138 break;
139 };
140}
141
132void NotesControl::slotDeleteButton() { 142void NotesControl::slotDeleteButton() {
133 143
134 QString selectedText = box->currentText(); 144 QString selectedText = box->currentText();
135 qDebug("deleting "+selectedText); 145 qDebug("deleting "+selectedText);
136 146
137 if( !selectedText.isEmpty()) { 147 if( !selectedText.isEmpty()) {
138 Config cfg("Notes"); 148
139 cfg.setGroup("Docs"); 149 Config cfg("Notes");
140 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 150 cfg.setGroup("Docs");
141 QString entryName, entryName2;; 151 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
142 for ( int i = 0; i < noOfFiles; i++ ) { 152 QString entryName, entryName2;;
143 entryName.sprintf( "File%i", i + 1 ); 153 for ( int i = 0; i < noOfFiles; i++ ) {
144 if(selectedText == cfg.readEntry( entryName )) { 154 entryName.sprintf( "File%i", i + 1 );
145 qDebug("removing %s, %d", selectedText.latin1(), i); 155 if(selectedText == cfg.readEntry( entryName )) {
146 for ( int j = i; j < noOfFiles; j++ ) { 156 qDebug("removing %s, %d", selectedText.latin1(), i);
147 entryName.sprintf( "File%i", i + 1 ); 157 for ( int j = i; j < noOfFiles; j++ ) {
148 entryName2.sprintf( "File%i", i + 2 ); 158 entryName.sprintf( "File%i", i + 1 );
149 QString temp = cfg.readEntry(entryName2); 159 entryName2.sprintf( "File%i", i + 2 );
150 qDebug("move "+temp); 160 QString temp = cfg.readEntry(entryName2);
151 cfg.writeEntry(entryName, temp); 161 qDebug("move "+temp);
152 i++; 162 cfg.writeEntry(entryName, temp);
163 i++;
164 }
165 cfg.writeEntry("NumberOfFiles", noOfFiles-1 );
166 entryName.sprintf( "File%i", noOfFiles );
167 cfg.removeEntry(entryName);
168 cfg.write();
169 DocLnk nf(selectedText);
170 nf.removeFiles();
153 } 171 }
154 cfg.writeEntry("NumberOfFiles", noOfFiles-1 );
155 entryName.sprintf( "File%i", noOfFiles );
156 cfg.removeEntry(entryName);
157 cfg.write();
158 DocLnk nf(selectedText);
159 nf.removeFiles();
160 } 172 }
161 } 173 populateBox();
162 populateBox();
163 } 174 }
164} 175}
165 176
166void NotesControl::slotNewButton() { 177void NotesControl::slotNewButton() {
167 if(edited) save(); 178 if(edited) save();
168 view->clear(); 179 view->clear();
169 view->setFocus(); 180 view->setFocus();
170} 181}
171 182
172void NotesControl::boxPressed(int mouse, QListBoxItem *item, const QPoint&) { 183void NotesControl::boxPressed(int mouse, QListBoxItem *item, const QPoint&) {
173 switch (mouse) { 184 switch (mouse) {
174 case 1:{ 185 case 1:{
175 } 186 }
176 break; 187 break;
177 case 2: 188 case 2:
178 menuTimer.start( 500, TRUE ); 189 menuTimer.start( 500, TRUE );
179 break; 190 break;
180 }; 191 };
181} 192}
182 193
183void NotesControl::slotBoxSelected(const QString &itemString) { 194void NotesControl::slotBoxSelected(const QString &itemString) {
184 if(edited) { 195 if(edited) {
185 save(); 196 save();
186 } 197 }
187 loaded=false; 198 loaded=false;
188 edited=false; 199 edited=false;
189 load(itemString); 200 load(itemString);
190} 201}
191 202
192 203
193void NotesControl::showMenu() { 204void NotesControl::showMenu() {
194 QPopupMenu *m = new QPopupMenu(0); 205 QPopupMenu *m = new QPopupMenu(0);
195 206
196 m->insertItem( tr( "Delete" ), this, SLOT( slotDeleteButton() )); 207 m->insertItem( tr( "Delete" ), this, SLOT( slotDeleteButton() ));
197 208
198 m->setFocus(); 209 m->setFocus();
199 m->exec( QCursor::pos() ); 210 m->exec( QCursor::pos() );
200 211
201 if(m) delete m; 212 if(m) delete m;
202 213
203} 214}
204 215
205void NotesControl::focusOutEvent ( QFocusEvent * e) { 216void NotesControl::focusOutEvent ( QFocusEvent * e) {
206 if( e->reason() == QFocusEvent::Popup) 217 if( e->reason() == QFocusEvent::Popup)
207 save(); 218 save();
208 else { 219 else {
209 if(!loaded) { 220 if(!loaded) {
210 populateBox(); 221 populateBox();
211 load(); 222 load();
212 } 223 }
213 } 224 }
214 QWidget::focusOutEvent(e); 225 QWidget::focusOutEvent(e);
215} 226}
216 227
217void NotesControl::save() { 228void NotesControl::save() {
218 Config cfg("Notes"); 229 Config cfg("Notes");
219 cfg.setGroup("Docs"); 230 cfg.setGroup("Docs");
220 if( edited) { 231 if( edited) {
221 QString rt = view->text(); 232 QString rt = view->text();
222 if(!rt.isEmpty()) { 233 if(!rt.isEmpty()) {
223 QString pt = rt.simplifyWhiteSpace(); 234 QString pt = rt.simplifyWhiteSpace();
224 int i = pt.find( ' ' ); 235 int i = pt.find( ' ' );
225 QString docname = pt; 236 QString docname = pt;
226 if ( i > 0 ) 237 if ( i > 0 )
diff --git a/noncore/applets/notesapplet/notes.h b/noncore/applets/notesapplet/notes.h
index c589f81..473a89a 100644
--- a/noncore/applets/notesapplet/notes.h
+++ b/noncore/applets/notesapplet/notes.h
@@ -1,84 +1,85 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com 2** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com
3** All rights reserved. 3** All rights reserved.
4** 4**
5** This file may be distributed and/or modified under the terms of the 5** This file may be distributed and/or modified under the terms of the
6** GNU General Public License version 2 as published by the Free Software 6** GNU General Public License version 2 as published by the Free Software
7** Foundation and appearing in the file LICENSE.GPL included in the 7** Foundation and appearing in the file LICENSE.GPL included in the
8** packaging of this file. 8** packaging of this file.
9** 9**
10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12** 12**
13**********************************************************************/ 13**********************************************************************/
14 14
15#ifndef __NOTES_APPLET_H__ 15#ifndef __NOTES_APPLET_H__
16#define __NOTES_APPLET_H__ 16#define __NOTES_APPLET_H__
17 17
18#include <qwidget.h> 18#include <qwidget.h>
19#include <qframe.h> 19#include <qframe.h>
20#include <qpixmap.h> 20#include <qpixmap.h>
21#include <qguardedptr.h> 21#include <qguardedptr.h>
22#include <qtimer.h> 22#include <qtimer.h>
23#include <qpe/filemanager.h> 23#include <qpe/filemanager.h>
24#include <qstring.h> 24#include <qstring.h>
25 25
26class QComboBox; 26class QComboBox;
27class QCheckBox; 27class QCheckBox;
28class QSpinBox; 28class QSpinBox;
29class QPushButton; 29class QPushButton;
30class QMultiLineEdit; 30class QMultiLineEdit;
31class QListBox; 31class QListBox;
32class QListBoxItem; 32class QListBoxItem;
33class NotesControl : public QFrame { 33class NotesControl : public QFrame {
34 Q_OBJECT 34 Q_OBJECT
35public: 35public:
36 NotesControl( QWidget *parent=0, const char *name=0 ); 36 NotesControl( QWidget *parent=0, const char *name=0 );
37 void performGrab(); 37 void performGrab();
38 38
39 QPixmap notes; 39 QPixmap notes;
40 QMultiLineEdit *view; 40 QMultiLineEdit *view;
41 QListBox *box; 41 QListBox *box;
42 QPushButton *saveButton, *deleteButton, *newButton; 42 QPushButton *saveButton, *deleteButton, *newButton;
43 QString FileNamePath; 43 QString FileNamePath;
44 bool loaded, edited, doPopulate; 44 bool loaded, edited, doPopulate;
45 void save(); 45 void save();
46 void populateBox(); 46 void populateBox();
47 void load(); 47 void load();
48 48
49private: 49private:
50 QTimer menuTimer; 50 QTimer menuTimer;
51 DocLnk *doc; 51 DocLnk *doc;
52 QString oldDocName; 52 QString oldDocName;
53 void focusOutEvent( QFocusEvent * ); 53 void focusOutEvent( QFocusEvent * );
54 void load(const QString&); 54 void load(const QString&);
55private slots: 55private slots:
56 void slotDeleteButton(); 56 void slotDeleteButton();
57 void slotDeleteButtonClicked();
57 void slotNewButton(); 58 void slotNewButton();
58 void boxPressed(int, QListBoxItem *, const QPoint&); 59 void boxPressed(int, QListBoxItem *, const QPoint&);
59 void showMenu(); 60 void showMenu();
60 void loadDoc( const DocLnk &); 61 void loadDoc( const DocLnk &);
61 void slotViewEdited(); 62 void slotViewEdited();
62 void slotBoxSelected(const QString &); 63 void slotBoxSelected(const QString &);
63}; 64};
64 65
65class NotesApplet : public QWidget { 66class NotesApplet : public QWidget {
66 Q_OBJECT 67 Q_OBJECT
67public: 68public:
68 NotesApplet( QWidget *parent = 0, const char *name=0 ); 69 NotesApplet( QWidget *parent = 0, const char *name=0 );
69 ~NotesApplet(); 70 ~NotesApplet();
70 NotesControl *vc; 71 NotesControl *vc;
71public slots: 72public slots:
72private: 73private:
73 void mousePressEvent( QMouseEvent * ); 74 void mousePressEvent( QMouseEvent * );
74 void paintEvent( QPaintEvent* ); 75 void paintEvent( QPaintEvent* );
75 76
76private: 77private:
77 QPixmap notesPixmap; 78 QPixmap notesPixmap;
78private slots: 79private slots:
79 80
80 81
81}; 82};
82 83
83#endif // __NOTES_APPLET_H__ 84#endif // __NOTES_APPLET_H__
84 85