summaryrefslogtreecommitdiff
authordrw <drw>2002-03-18 00:02:20 (UTC)
committer drw <drw>2002-03-18 00:02:20 (UTC)
commitb02657a01fc513e099c2d66be48d5a7b46cf6074 (patch) (unidiff)
tree1222fd77f10de1b1948b38bfb5fbe5656f8fa5c6
parent378db8490c6c80ced939622605be1500fa126a2d (diff)
downloadopie-b02657a01fc513e099c2d66be48d5a7b46cf6074.zip
opie-b02657a01fc513e099c2d66be48d5a7b46cf6074.tar.gz
opie-b02657a01fc513e099c2d66be48d5a7b46cf6074.tar.bz2
Combined file open & filebrowse into one dialog
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp92
-rw-r--r--core/apps/textedit/fileBrowser.h43
-rw-r--r--core/apps/textedit/textedit.cpp108
-rw-r--r--core/apps/textedit/textedit.h6
4 files changed, 118 insertions, 131 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp
index 2e88067..92c15cb 100644
--- a/core/apps/textedit/fileBrowser.cpp
+++ b/core/apps/textedit/fileBrowser.cpp
@@ -9,26 +9,33 @@
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#include "fileBrowser.h" 14#include "fileBrowser.h"
15#include <qpe/config.h> 15#include <qpe/config.h>
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/fileselector.h>
17#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
18 19
20#include <qwidgetstack.h>
19#include <qlistview.h> 21#include <qlistview.h>
22#include <qcombo.h>
20#include <qpushbutton.h> 23#include <qpushbutton.h>
21#include <qfile.h> 24#include <qfile.h>
22#include <qmessagebox.h> 25#include <qmessagebox.h>
23#include <qlayout.h> 26#include <qlayout.h>
24#include <unistd.h> 27#include <unistd.h>
25 28
26 29static int u_id = 1;
30static int get_unique_id()
31{
32 return u_id++;
33}
27 34
28fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter ) 35fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter )
29 : QDialog( parent, name, modal, fl ) 36 : QDialog( parent, name, modal, fl )
30{ 37{
31 if ( !name ) 38 if ( !name )
32 setName( "fileBrowser" ); 39 setName( "fileBrowser" );
33 setCaption(tr( name ) ); 40 setCaption(tr( name ) );
34 filterStr=filter; 41 filterStr=filter;
@@ -39,68 +46,79 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags
39 46
40 47
41 dirLabel = new QLabel(this, "DirLabel"); 48 dirLabel = new QLabel(this, "DirLabel");
42 dirLabel->setText(currentDir.canonicalPath()); 49 dirLabel->setText(currentDir.canonicalPath());
43 dirLabel->setMinimumSize( QSize( 50, 15 ) ); 50 dirLabel->setMinimumSize( QSize( 50, 15 ) );
44 dirLabel->setMaximumSize( QSize( 250, 15 ) ); 51 dirLabel->setMaximumSize( QSize( 250, 15 ) );
45 layout->addWidget( dirLabel, 0, 0 ); 52 layout->addWidget( dirLabel, 0, 0 );
46 53
47 hideButton = new QPushButton( Resource::loadIconSet("s_hidden"),"",this,"hideButton");
48 hideButton->setMinimumSize( QSize( 25, 25 ) );
49 hideButton->setMaximumSize( QSize( 25, 25 ) );
50 connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) );
51 hideButton->setToggleButton(TRUE);
52 hideButton->setFlat(TRUE);
53 layout->addWidget( hideButton, 0, 1 );
54
55 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); 54 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton");
56 docButton->setMinimumSize( QSize( 25, 25 ) ); 55 docButton->setMinimumSize( QSize( 25, 25 ) );
57 docButton->setMaximumSize( QSize( 25, 25 ) ); 56 docButton->setMaximumSize( QSize( 25, 25 ) );
58 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); 57 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
59 docButton->setFlat(TRUE); 58 docButton->setFlat(TRUE);
60 layout->addWidget( docButton, 0, 2 ); 59 layout->addWidget( docButton, 0, 1 );
61 60
62 homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton"); 61 homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton");
63 homeButton->setMinimumSize( QSize( 25, 25 ) ); 62 homeButton->setMinimumSize( QSize( 25, 25 ) );
64 homeButton->setMaximumSize( QSize( 25, 25 ) ); 63 homeButton->setMaximumSize( QSize( 25, 25 ) );
65 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); 64 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
66 homeButton->setFlat(TRUE); 65 homeButton->setFlat(TRUE);
67 layout->addWidget( homeButton, 0, 3 ); 66 layout->addWidget( homeButton, 0, 2 );
67
68 FileStack = new QWidgetStack( this );
68 69
69 ListView = new QListView( this, "ListView" ); 70 ListView = new QListView( this, "ListView" );
70 ListView->setMinimumSize( QSize( 100, 25 ) ); 71 ListView->setMinimumSize( QSize( 100, 25 ) );
71 ListView->addColumn( tr( "Name" ) ); 72 ListView->addColumn( tr( "Name" ) );
72 ListView->setColumnWidth(0,140); 73 ListView->setColumnWidth(0,140);
73 ListView->setSorting( 2, FALSE); 74 ListView->setSorting( 2, FALSE);
74 ListView->addColumn( tr( "Size" ) ); 75 ListView->addColumn( tr( "Size" ) );
75 ListView->setColumnWidth(1,59); 76 ListView->setColumnWidth(1,59);
76// ListView->addColumn( tr( "" ) ); 77// ListView->addColumn( tr( "" ) );
77 ListView->setColumnWidthMode(0,QListView::Manual); 78 ListView->setColumnWidthMode(0,QListView::Manual);
78 ListView->setColumnAlignment(1,QListView::AlignRight); 79 ListView->setColumnAlignment(1,QListView::AlignRight);
79// ListView->setMultiSelection(true); 80// ListView->setMultiSelection(true);
80// ListView->setSelectionMode(QListView::Extended); 81// ListView->setSelectionMode(QListView::Extended);
81
82 ListView->setAllColumnsShowFocus( TRUE ); 82 ListView->setAllColumnsShowFocus( TRUE );
83 layout->addMultiCellWidget( ListView, 1, 1, 0, 3 );
84
85 // signals and slots connections
86 connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) );
87 connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 83 connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
84 FileStack->addWidget( ListView, get_unique_id() );
85
86 fileSelector = new FileSelector( "text/*", FileStack, "fileselector" , FALSE, FALSE); //buggy
87// connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) );
88// connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
89 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) );
90 layout->addMultiCellWidget( FileStack, 1, 1, 0, 2 );
91
92 SelectionCombo = new QComboBox( FALSE, this, "SelectionCombo" );
93 SelectionCombo->setMinimumSize( QSize( 200, 25 ) );
94 SelectionCombo->insertItem( tr( "Documents" ) );
95 SelectionCombo->insertItem( tr( "All files" ) );
96 SelectionCombo->insertItem( tr( "All files (incl. hidden)" ) );
97 layout->addMultiCellWidget( SelectionCombo, 2, 2, 0, 2 );
98 connect( SelectionCombo, SIGNAL( activated( const QString & ) ),
99 this, SLOT( selectionChanged( const QString & ) ) );
100
88 currentDir.setPath(QDir::currentDirPath()); 101 currentDir.setPath(QDir::currentDirPath());
89 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All); 102 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All);
90 103
91 populateList(); 104 populateList();
92 move(0,15); 105 move(0,15);
93} 106}
94 107
95fileBrowser::~fileBrowser() 108fileBrowser::~fileBrowser()
96{ 109{
97} 110}
98 111
112void fileBrowser::setFileView( int selection )
113{
114 SelectionCombo->setCurrentItem( selection );
115 selectionChanged( SelectionCombo->currentText() );
116}
99 117
100void fileBrowser::populateList() 118void fileBrowser::populateList()
101{ 119{
102 ListView->clear(); 120 ListView->clear();
103//qDebug(currentDir.canonicalPath()); 121//qDebug(currentDir.canonicalPath());
104 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 122 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
105 currentDir.setMatchAllDirs(TRUE); 123 currentDir.setMatchAllDirs(TRUE);
106 124
@@ -135,20 +153,16 @@ void fileBrowser::populateList()
135 dirLabel->setText(currentDir.canonicalPath()); 153 dirLabel->setText(currentDir.canonicalPath());
136} 154}
137 155
138void fileBrowser::upDir() 156void fileBrowser::upDir()
139{ 157{
140// qDebug(currentDir.canonicalPath()); 158// qDebug(currentDir.canonicalPath());
141} 159}
142 160
143void fileBrowser::listDoubleClicked(QListViewItem *selectedItem)
144{
145}
146
147// you may want to switch these 2 functions. I like single clicks 161// you may want to switch these 2 functions. I like single clicks
148void fileBrowser::listClicked(QListViewItem *selectedItem) 162void fileBrowser::listClicked(QListViewItem *selectedItem)
149{ 163{
150 QString strItem=selectedItem->text(0); 164 QString strItem=selectedItem->text(0);
151 QString strSize=selectedItem->text(1); 165 QString strSize=selectedItem->text(1);
152// qDebug("strItem is "+strItem); 166// qDebug("strItem is "+strItem);
153 strSize.stripWhiteSpace(); 167 strSize.stripWhiteSpace();
154// qDebug(strSize); 168// qDebug(strSize);
@@ -211,20 +225,38 @@ void fileBrowser::homeButtonPushed() {
211void fileBrowser::docButtonPushed() { 225void fileBrowser::docButtonPushed() {
212 chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); 226 chdir( QString(QPEApplication::documentDir()+"/text").latin1() );
213 currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); 227 currentDir.cd( QPEApplication::documentDir()+"/text", TRUE);
214 populateList(); 228 populateList();
215 update(); 229 update();
216 230
217} 231}
218 232
219void fileBrowser::hideButtonPushed(bool b) { 233void fileBrowser::selectionChanged( const QString &select )
220 if (b) 234{
221 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 235 if ( select == "Documents")
236 {
237 FileStack->raiseWidget( fileSelector );
238 dirLabel->hide();
239 docButton->hide();
240 homeButton->hide();
241 }
222 else 242 else
223 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 243 {
224 244 if ( select == "All files" )
225// chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); 245 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::All);
226// currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); 246 else
227 populateList(); 247 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
228 update();
229 248
249 populateList();
250 update();
251 dirLabel->show();
252 docButton->show();
253 homeButton->show();
254 FileStack->raiseWidget( ListView );
255 }
256}
257
258void fileBrowser::docOpen( const DocLnk &doc )
259{
260 fileList.append( doc.file().latin1() );
261 accept();
230} 262}
diff --git a/core/apps/textedit/fileBrowser.h b/core/apps/textedit/fileBrowser.h
index 50ed485..d8f0d0d 100644
--- a/core/apps/textedit/fileBrowser.h
+++ b/core/apps/textedit/fileBrowser.h
@@ -12,57 +12,70 @@
12** 12**
13copyright Sun 02-17-2002 22:28:23 L. J. Potter ljp@llornkcor.com 13copyright Sun 02-17-2002 22:28:23 L. J. Potter ljp@llornkcor.com
14****************************************************************************/ 14****************************************************************************/
15#ifndef FILEBROWSER_H 15#ifndef FILEBROWSER_H
16#define FILEBROWSER_H 16#define FILEBROWSER_H
17 17
18//#include <qvariant.h> 18//#include <qvariant.h>
19#include <qdialog.h> 19#include <qdialog.h>
20#include <qfile.h> 20#include <qfile.h>
21#include <qdir.h> 21#include <qdir.h>
22#include <qstringlist.h> 22#include <qstringlist.h>
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qstring.h> 24#include <qstring.h>
25 25
26class QVBoxLayout; 26#include <qpe/filemanager.h>
27class QHBoxLayout; 27
28class QGridLayout; 28class QVBoxLayout;
29class QHBoxLayout;
30class QGridLayout;
29class QListView; 31class QListView;
30class QListViewItem; 32class QListViewItem;
31class QPushButton; 33class QPushButton;
34class QComboBox;
35class QWidgetStack;
36class FileSelector;
32 37
33class fileBrowser : public QDialog 38class fileBrowser : public QDialog
34{ 39{
35 Q_OBJECT 40 Q_OBJECT
36 41
37public: 42public:
38 void populateList(); 43 void populateList();
39 fileBrowser( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ,const QString filter=0); 44 fileBrowser( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ,const QString filter=0);
40 ~fileBrowser(); 45 ~fileBrowser();
41 46
47 void setFileView( int );
48
42 QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton; 49 QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton;
43 QListView* ListView; 50 QListView* ListView;
44 51
45 QLabel *dirLabel; 52 QLabel *dirLabel;
46 QString selectedFileName, filterStr; 53 QString selectedFileName, filterStr;
47 QDir currentDir; 54 QDir currentDir;
48 QFile file; 55 QFile file;
49 QStringList fileList; 56 QStringList fileList;
50 QListViewItem * item; 57 QListViewItem * item;
58 QComboBox *SelectionCombo;
59 QWidgetStack *FileStack;
60 FileSelector *fileSelector;
61
51public slots: 62public slots:
52 void homeButtonPushed(); 63 void homeButtonPushed();
53 void docButtonPushed(); 64 void docButtonPushed();
54 void hideButtonPushed(bool); 65
55private: 66private:
56 67
57private slots: 68private slots:
58 void upDir(); 69 void upDir();
59 void listDoubleClicked(QListViewItem *); 70 void listClicked( QListViewItem * );
60 void listClicked(QListViewItem *); 71 void selectionChanged( const QString & );
61 void OnOK(); 72 void OnOK();
62protected slots: 73 void docOpen( const DocLnk & );
74
75protected slots:
63 76
64protected: 77protected:
65 78
66}; 79};
67 80
68#endif // FILEBROWSER_H 81#endif // FILEBROWSER_H
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 3a189cb..68ee1b4 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -44,16 +44,17 @@
44#include <qlineedit.h> 44#include <qlineedit.h>
45#include <qmessagebox.h> 45#include <qmessagebox.h>
46#include <qobjectlist.h> 46#include <qobjectlist.h>
47#include <qpopupmenu.h> 47#include <qpopupmenu.h>
48#include <qspinbox.h> 48#include <qspinbox.h>
49#include <qtoolbutton.h> 49#include <qtoolbutton.h>
50#include <qwidgetstack.h> 50#include <qwidgetstack.h>
51#include <qcheckbox.h> 51#include <qcheckbox.h>
52#include <qcombo.h>
52#include <unistd.h> 53#include <unistd.h>
53#include <sys/stat.h> 54#include <sys/stat.h>
54 55
55#include <stdlib.h> //getenv 56#include <stdlib.h> //getenv
56/* XPM */ 57/* XPM */
57static char * filesave_xpm[] = { 58static char * filesave_xpm[] = {
58"16 16 78 1", 59"16 16 78 1",
59" c None", 60" c None",
@@ -220,24 +221,16 @@ void QpeEditor::find ( const QString &txt, bool caseSensitive,
220 221
221#else 222#else
222 223
223#error "Must make a QpeEditor that inherits QTextEdit" 224#error "Must make a QpeEditor that inherits QTextEdit"
224 225
225#endif 226#endif
226 227
227 228
228
229
230static int u_id = 1;
231static int get_unique_id()
232{
233 return u_id++;
234}
235
236static const int nfontsizes = 6; 229static const int nfontsizes = 6;
237static const int fontsize[nfontsizes] = {8,10,12,14,18,24}; 230static const int fontsize[nfontsizes] = {8,10,12,14,18,24};
238 231
239TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) 232TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
240 : QMainWindow( parent, name, f ), bFromDocView( FALSE ) 233 : QMainWindow( parent, name, f ), bFromDocView( FALSE )
241{ 234{
242 doc = 0; 235 doc = 0;
243 edited=FALSE; 236 edited=FALSE;
@@ -260,27 +253,21 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
260 253
261 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); 254 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
262 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); 255 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) );
263 a->addTo( bar ); 256 a->addTo( bar );
264 a->addTo( file ); 257 a->addTo( file );
265 258
266 a = new QAction( tr( "Open" ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); 259 a = new QAction( tr( "Open" ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 );
267 connect( a, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); 260 connect( a, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
268// a->addTo( bar );
269 a->addTo( file );
270
271 a = new QAction( tr( "Browse" ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 );
272 connect( a, SIGNAL( activated() ), this, SLOT( newFileOpen() ) );
273 a->addTo( bar ); 261 a->addTo( bar );
274 a->addTo( file ); 262 a->addTo( file );
275 263
276 a = new QAction( tr( "Save" ), QPixmap(( const char** ) filesave_xpm ) , QString::null, 0, this, 0 ); 264 a = new QAction( tr( "Save" ), QPixmap(( const char** ) filesave_xpm ) , QString::null, 0, this, 0 );
277 connect( a, SIGNAL( activated() ), this, SLOT( save() ) ); 265 connect( a, SIGNAL( activated() ), this, SLOT( save() ) );
278// a->addTo( bar );
279 file->insertSeparator(); 266 file->insertSeparator();
280 a->addTo( file ); 267 a->addTo( file );
281 268
282 a = new QAction( tr( "Save As" ), QPixmap(( const char** ) filesave_xpm ) , QString::null, 0, this, 0 ); 269 a = new QAction( tr( "Save As" ), QPixmap(( const char** ) filesave_xpm ) , QString::null, 0, this, 0 );
283 connect( a, SIGNAL( activated() ), this, SLOT( saveAs() ) ); 270 connect( a, SIGNAL( activated() ), this, SLOT( saveAs() ) );
284 a->addTo( file ); 271 a->addTo( file );
285 272
286 a = new QAction( tr( "Cut" ), Resource::loadPixmap( "cut" ), QString::null, 0, this, 0 ); 273 a = new QAction( tr( "Cut" ), Resource::loadPixmap( "cut" ), QString::null, 0, this, 0 );
@@ -293,23 +280,22 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
293 a->addTo( editBar ); 280 a->addTo( editBar );
294 a->addTo( edit ); 281 a->addTo( edit );
295 282
296 a = new QAction( tr( "Paste" ), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); 283 a = new QAction( tr( "Paste" ), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 );
297 connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); 284 connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) );
298 a->addTo( editBar ); 285 a->addTo( editBar );
299 a->addTo( edit ); 286 a->addTo( edit );
300 287
301 a = new QAction( tr( "Find..." ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); 288 a = new QAction( tr( "Find..." ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 );
302 connect( a, SIGNAL( activated() ), this, SLOT( editFind() ) ); 289 connect( a, SIGNAL( activated() ), this, SLOT( editFind() ) );
303 edit->insertSeparator(); 290 edit->insertSeparator();
304 a->addTo( bar ); 291 a->addTo( bar );
305 a->addTo( edit ); 292 a->addTo( edit );
306 293
307
308 int defsize; 294 int defsize;
309 bool defb, defi, wrap; 295 bool defb, defi, wrap;
310 296
311 Config cfg("TextEdit"); 297 Config cfg("TextEdit");
312 cfg.setGroup("View"); 298 cfg.setGroup("View");
313 defsize = cfg.readNumEntry("FontSize",10); 299 defsize = cfg.readNumEntry("FontSize",10);
314 defb = cfg.readBoolEntry("Bold",FALSE); 300 defb = cfg.readBoolEntry("Bold",FALSE);
315 defi = cfg.readBoolEntry("Italic",FALSE); 301 defi = cfg.readBoolEntry("Italic",FALSE);
@@ -366,46 +352,36 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
366 searchBar->setHorizontalStretchable( TRUE ); 352 searchBar->setHorizontalStretchable( TRUE );
367 353
368 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 354 searchEdit = new QLineEdit( searchBar, "searchEdit" );
369 searchBar->setStretchableWidget( searchEdit ); 355 searchBar->setStretchableWidget( searchEdit );
370 connect( searchEdit, SIGNAL( textChanged( const QString & ) ), 356 connect( searchEdit, SIGNAL( textChanged( const QString & ) ),
371 this, SLOT( search() ) ); 357 this, SLOT( search() ) );
372 358
373 359
374 a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); 360 a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 );
375 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); 361 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) );
376 a->addTo( searchBar ); 362 a->addTo( searchBar );
377 a->addTo( edit ); 363 a->addTo( edit );
378 364
379 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 365 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
380 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); 366 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) );
381 a->addTo( searchBar ); 367 a->addTo( searchBar );
382 368
383 edit->insertSeparator(); 369 edit->insertSeparator();
384 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 370 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
385 connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) ); 371 connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) );
386 a->addTo( edit ); 372 a->addTo( edit );
387
388 searchBar->hide();
389
390 editorStack = new QWidgetStack( this );
391 setCentralWidget( editorStack );
392 373
393 searchVisible = FALSE; 374 searchBar->hide();
394 375
395 fileSelector = new FileSelector( "text/*", editorStack, "fileselector" , TRUE, TRUE); //buggy
396 connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) );
397 connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
398 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( openFile( const DocLnk & ) ) );
399// fileOpen();
400 376
401 editor = new QpeEditor( editorStack ); 377 editor = new QpeEditor( this );
378 setCentralWidget( editor );
402 editor->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 379 editor->setFrameStyle( QFrame::Panel | QFrame::Sunken );
403 editorStack->addWidget( editor, get_unique_id() );
404 connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) ); 380 connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) );
405 381
406 resize( 200, 300 ); 382 resize( 200, 300 );
407 383
408// setFontSize(defsize,TRUE); 384// setFontSize(defsize,TRUE);
409 FontDatabase fdb; 385 FontDatabase fdb;
410 QFont defaultFont=editor->font(); 386 QFont defaultFont=editor->font();
411 QFontInfo fontInfo(defaultFont); 387 QFontInfo fontInfo(defaultFont);
@@ -424,30 +400,31 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
424 400
425 cfg.setGroup("View"); 401 cfg.setGroup("View");
426 if(cfg.readEntry("startNew","TRUE") == "TRUE") { 402 if(cfg.readEntry("startNew","TRUE") == "TRUE") {
427 nStart->setOn(TRUE); 403 nStart->setOn(TRUE);
428 fileNew(); 404 fileNew();
429 } else { 405 } else {
430 fileOpen(); 406 fileOpen();
431 } 407 }
432 408 viewSelection = cfg.readNumEntry( "FileView", 0 );
433} 409}
434 410
435TextEdit::~TextEdit() 411TextEdit::~TextEdit()
436{ 412{
437// save(); 413// save();
438 414
439 Config cfg("TextEdit"); 415 Config cfg("TextEdit");
440 cfg.setGroup("View"); 416 cfg.setGroup("View");
441 QFont f = editor->font(); 417 QFont f = editor->font();
442 cfg.writeEntry("FontSize",f.pointSize()); 418 cfg.writeEntry("FontSize",f.pointSize());
443 cfg.writeEntry("Bold",f.bold()); 419 cfg.writeEntry("Bold",f.bold());
444 cfg.writeEntry("Italic",f.italic()); 420 cfg.writeEntry("Italic",f.italic());
445 cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth); 421 cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth);
422 cfg.writeEntry( "FileView", viewSelection );
446} 423}
447 424
448void TextEdit::zoomIn() 425void TextEdit::zoomIn()
449{ 426{
450 setFontSize(editor->font().pointSize()+1,FALSE); 427 setFontSize(editor->font().pointSize()+1,FALSE);
451} 428}
452 429
453void TextEdit::zoomOut() 430void TextEdit::zoomOut()
@@ -508,43 +485,18 @@ void TextEdit::fileNew()
508 if( !bFromDocView ) { 485 if( !bFromDocView ) {
509 saveAs(); 486 saveAs();
510 } 487 }
511 newFile(DocLnk()); 488 newFile(DocLnk());
512} 489}
513 490
514void TextEdit::fileOpen() 491void TextEdit::fileOpen()
515{ 492{
516// if ( !save() ) {
517// if ( QMessageBox::critical( this, tr( "Out of space" ),
518// tr( "Text Editor was unable to\n"
519// "save your changes.\n"
520// "Free some space and try again.\n"
521// "\nContinue anyway?" ),
522// QMessageBox::Yes|QMessageBox::Escape,
523// QMessageBox::No|QMessageBox::Default )
524// != QMessageBox::Yes )
525// return;
526// else {
527// delete doc;
528// doc = 0;
529// }
530// }
531 menu->hide();
532 editBar->hide();
533 searchBar->hide();
534 clearWState (WState_Reserved1 );
535 editorStack->raiseWidget( fileSelector );
536 fileSelector->reread();
537 updateCaption();
538}
539
540void TextEdit::newFileOpen()
541{
542 browseForFiles=new fileBrowser(this,"Open File",TRUE,0, "*"); 493 browseForFiles=new fileBrowser(this,"Open File",TRUE,0, "*");
494 browseForFiles->setFileView( viewSelection );
543 browseForFiles->showMaximized(); 495 browseForFiles->showMaximized();
544 if( browseForFiles->exec() != -1 ) { 496 if( browseForFiles->exec() != -1 ) {
545 QString selFile= browseForFiles->selectedFileName; 497 QString selFile= browseForFiles->selectedFileName;
546 QStringList fileList=browseForFiles->fileList; 498 QStringList fileList=browseForFiles->fileList;
547 qDebug(selFile); 499 qDebug(selFile);
548 QStringList::ConstIterator f; 500 QStringList::ConstIterator f;
549 QString fileTemp; 501 QString fileTemp;
550 for ( f = fileList.begin(); f != fileList.end(); f++ ) { 502 for ( f = fileList.begin(); f != fileList.end(); f++ ) {
@@ -552,16 +504,17 @@ void TextEdit::newFileOpen()
552 fileTemp.right( fileTemp.length()-5); 504 fileTemp.right( fileTemp.length()-5);
553 QString fileName = fileTemp; 505 QString fileName = fileTemp;
554 if( fileName != "Unnamed" || fileName != "Empty Text" ) { 506 if( fileName != "Unnamed" || fileName != "Empty Text" ) {
555 currentFileName = fileName; 507 currentFileName = fileName;
556 qDebug("please open "+currentFileName); 508 qDebug("please open "+currentFileName);
557 openFile(fileName ); 509 openFile(fileName );
558 } 510 }
559 } 511 }
512 viewSelection = browseForFiles->SelectionCombo->currentItem();
560 } 513 }
561 delete browseForFiles; 514 delete browseForFiles;
562 editor->setEdited( FALSE); 515 editor->setEdited( FALSE);
563 edited1=FALSE; 516 edited1=FALSE;
564 edited=FALSE; 517 edited=FALSE;
565 if(caption().left(1)=="*") 518 if(caption().left(1)=="*")
566 setCaption(caption().right(caption().length()-1)); 519 setCaption(caption().right(caption().length()-1));
567} 520}
@@ -637,26 +590,26 @@ void TextEdit::search()
637 editor->find( searchEdit->text(), FALSE, FALSE ); 590 editor->find( searchEdit->text(), FALSE, FALSE );
638} 591}
639 592
640void TextEdit::newFile( const DocLnk &f ) 593void TextEdit::newFile( const DocLnk &f )
641{ 594{
642 DocLnk nf = f; 595 DocLnk nf = f;
643 nf.setType("text/plain"); 596 nf.setType("text/plain");
644 clear(); 597 clear();
645 editorStack->raiseWidget( editor );
646 setWState (WState_Reserved1 ); 598 setWState (WState_Reserved1 );
647 editor->setFocus(); 599 editor->setFocus();
648 doc = new DocLnk(nf); 600 doc = new DocLnk(nf);
649 qDebug("newFile "+currentFileName); 601 qDebug("newFile "+currentFileName);
650 updateCaption(currentFileName); 602 updateCaption(currentFileName);
651} 603}
652 604
653void TextEdit::openFile( const QString &f ) 605void TextEdit::openFile( const QString &f )
654{ 606{
607
655 bFromDocView = TRUE; 608 bFromDocView = TRUE;
656 DocLnk nf; 609 DocLnk nf;
657 nf.setType("text/plain"); 610 nf.setType("text/plain");
658 nf.setFile(f); 611 nf.setFile(f);
659 currentFileName=f; 612 currentFileName=f;
660 QFileInfo fi( currentFileName); 613 QFileInfo fi( currentFileName);
661 nf.setName(fi.baseName()); 614 nf.setName(fi.baseName());
662 qDebug("openFile string"+currentFileName); 615 qDebug("openFile string"+currentFileName);
@@ -677,20 +630,20 @@ void TextEdit::openFile( const DocLnk &f )
677 bFromDocView = TRUE; 630 bFromDocView = TRUE;
678 FileManager fm; 631 FileManager fm;
679 QString txt; 632 QString txt;
680 currentFileName=f.name(); 633 currentFileName=f.name();
681 qDebug("openFile doclnk " + currentFileName); 634 qDebug("openFile doclnk " + currentFileName);
682 if ( !fm.loadFile( f, txt ) ) { 635 if ( !fm.loadFile( f, txt ) ) {
683 // ####### could be a new file 636 // ####### could be a new file
684 qDebug( "Cannot open file" ); 637 qDebug( "Cannot open file" );
685 638
686 //return; 639 //return;
687 } 640 }
688 641
689 fileNew(); 642 fileNew();
690 if ( doc ) 643 if ( doc )
691 delete doc; 644 delete doc;
692 doc = new DocLnk(f); 645 doc = new DocLnk(f);
693 editor->setText(txt); 646 editor->setText(txt);
694 editor->setEdited( FALSE); 647 editor->setEdited( FALSE);
695 edited1=FALSE; 648 edited1=FALSE;
696 edited=FALSE; 649 edited=FALSE;
@@ -700,23 +653,21 @@ void TextEdit::openFile( const DocLnk &f )
700 updateCaption(); 653 updateCaption();
701} 654}
702 655
703void TextEdit::showEditTools() 656void TextEdit::showEditTools()
704{ 657{
705// if ( !doc ) 658// if ( !doc )
706// close(); 659// close();
707// clear(); 660// clear();
708 fileSelector->hide();
709 menu->show(); 661 menu->show();
710 editBar->show(); 662 editBar->show();
711 if ( searchVisible ) 663 if ( searchVisible )
712 searchBar->show(); 664 searchBar->show();
713// updateCaption(); 665// updateCaption();
714 editorStack->raiseWidget( editor );
715 setWState (WState_Reserved1 ); 666 setWState (WState_Reserved1 );
716} 667}
717 668
718/*! 669/*!
719 unprompted save */ 670 unprompted save */
720bool TextEdit::save() 671bool TextEdit::save()
721{ 672{
722 QString file = doc->file(); 673 QString file = doc->file();
@@ -881,25 +832,18 @@ void TextEdit::setDocument(const QString& fileref)
881 } 832 }
882 editor->setEdited(TRUE); 833 editor->setEdited(TRUE);
883 edited1=FALSE; 834 edited1=FALSE;
884 edited=TRUE; 835 edited=TRUE;
885} 836}
886 837
887void TextEdit::closeEvent( QCloseEvent *e ) 838void TextEdit::closeEvent( QCloseEvent *e )
888{ 839{
889 if ( editorStack->visibleWidget() == fileSelector && !bFromDocView ) { 840 bFromDocView = FALSE;
890 e->ignore(); 841 e->accept();
891 repaint();
892// fileRevert();
893
894 } else {
895 bFromDocView = FALSE;
896 e->accept();
897 }
898} 842}
899 843
900void TextEdit::accept() 844void TextEdit::accept()
901 { 845 {
902 QString file = doc->file(); 846 QString file = doc->file();
903 if (file.find("_.txt",0,TRUE) ==-1) 847 if (file.find("_.txt",0,TRUE) ==-1)
904 save(); 848 save();
905 else { 849 else {
diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h
index e7e20e3..aca2933 100644
--- a/core/apps/textedit/textedit.h
+++ b/core/apps/textedit/textedit.h
@@ -53,27 +53,26 @@ public:
53 TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 53 TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
54 ~TextEdit(); 54 ~TextEdit();
55 QPopupMenu *font; 55 QPopupMenu *font;
56 QAction *nStart; 56 QAction *nStart;
57 bool edited, edited1; 57 bool edited, edited1;
58 void openFile( const QString & ); 58 void openFile( const QString & );
59public slots: 59public slots:
60 void editorChanged(); 60 void editorChanged();
61 61
62protected: 62protected:
63 void closeEvent( QCloseEvent *e ); 63 void closeEvent( QCloseEvent *e );
64 64
65private slots: 65private slots:
66 void setDocument(const QString&); 66 void setDocument(const QString&);
67 void changeFont(); 67 void changeFont();
68 void fileNew(); 68 void fileNew();
69 void fileRevert(); 69 void fileRevert();
70 void fileOpen(); 70 void fileOpen();
71 void newFileOpen();
72 void changeStartConfig(bool); 71 void changeStartConfig(bool);
73 bool save(); 72 bool save();
74 bool saveAs(); 73 bool saveAs();
75 74
76 75
77 void editCut(); 76 void editCut();
78 void editCopy(); 77 void editCopy();
79 void editPaste(); 78 void editPaste();
@@ -98,24 +97,23 @@ private slots:
98 97
99private: 98private:
100 void colorChanged( const QColor &c ); 99 void colorChanged( const QColor &c );
101 void clear(); 100 void clear();
102 void updateCaption( const QString &name=QString::null ); 101 void updateCaption( const QString &name=QString::null );
103 void setFontSize(int sz, bool round_down_not_up); 102 void setFontSize(int sz, bool round_down_not_up);
104 103
105private: 104private:
106 QWidgetStack *editorStack;
107 FileSelector *fileSelector;
108 fileSaver *fileSaveDlg; 105 fileSaver *fileSaveDlg;
109 fileBrowser *browseForFiles; 106 fileBrowser *browseForFiles;
110 107
111 QpeEditor* editor; 108 QpeEditor* editor;
112 QToolBar *menu, *editBar, *searchBar; 109 QToolBar *menu, *editBar, *searchBar;
113 QLineEdit *searchEdit; 110 QLineEdit *searchEdit;
114 DocLnk *doc; 111 DocLnk *doc;
115 bool searchVisible; 112 bool searchVisible;
116 bool bFromDocView; 113 bool bFromDocView;
114 int viewSelection;
117 QAction *zin, *zout; 115 QAction *zin, *zout;
118 QString currentFileName; 116 QString currentFileName;
119}; 117};
120 118
121#endif 119#endif