summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp46
-rw-r--r--core/apps/textedit/textedit.cpp1
2 files changed, 31 insertions, 16 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp
index c16bd41..2e88067 100644
--- a/core/apps/textedit/fileBrowser.cpp
+++ b/core/apps/textedit/fileBrowser.cpp
@@ -1,216 +1,230 @@
1/**************************************************************************** 1/****************************************************************************
2** copyright 2001 ljp ljp@llornkcor.com 2** copyright 2001 ljp ljp@llornkcor.com
3** Created: Fri Dec 14 08:16:46 2001 3** Created: Fri Dec 14 08:16:46 2001
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#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/qpeapplication.h> 17#include <qpe/qpeapplication.h>
18 18
19#include <qlistview.h> 19#include <qlistview.h>
20#include <qpushbutton.h> 20#include <qpushbutton.h>
21#include <qfile.h> 21#include <qfile.h>
22#include <qmessagebox.h> 22#include <qmessagebox.h>
23#include <qlayout.h>
23#include <unistd.h> 24#include <unistd.h>
24 25
25 26
26 27
27fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter ) 28fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter )
28 : QDialog( parent, name, modal, fl ) 29 : QDialog( parent, name, modal, fl )
29{ 30{
30 if ( !name ) 31 if ( !name )
31 setName( "fileBrowser" ); 32 setName( "fileBrowser" );
32 resize( 240, 280 );
33 setCaption(tr( name ) ); 33 setCaption(tr( name ) );
34 filterStr=filter; 34 filterStr=filter;
35 35
36 QGridLayout *layout = new QGridLayout( this );
37 layout->setSpacing( 4 );
38 layout->setMargin( 4 );
39
40
36 dirLabel = new QLabel(this, "DirLabel"); 41 dirLabel = new QLabel(this, "DirLabel");
37 dirLabel->setText(currentDir.canonicalPath()); 42 dirLabel->setText(currentDir.canonicalPath());
38 dirLabel->setGeometry(10,20,230,15); 43 dirLabel->setMinimumSize( QSize( 50, 15 ) );
44 dirLabel->setMaximumSize( QSize( 250, 15 ) );
45 layout->addWidget( dirLabel, 0, 0 );
39 46
40 homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton"); 47 hideButton = new QPushButton( Resource::loadIconSet("s_hidden"),"",this,"hideButton");
41 homeButton->setGeometry(200,4,25,25); 48 hideButton->setMinimumSize( QSize( 25, 25 ) );
42 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); 49 hideButton->setMaximumSize( QSize( 25, 25 ) );
43 homeButton->setFlat(TRUE); 50 connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) );
51 hideButton->setToggleButton(TRUE);
52 hideButton->setFlat(TRUE);
53 layout->addWidget( hideButton, 0, 1 );
44 54
45 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); 55 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton");
46 docButton->setGeometry(170,4,25,25); 56 docButton->setMinimumSize( QSize( 25, 25 ) );
57 docButton->setMaximumSize( QSize( 25, 25 ) );
47 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); 58 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
48 docButton->setFlat(TRUE); 59 docButton->setFlat(TRUE);
60 layout->addWidget( docButton, 0, 2 );
61
62 homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton");
63 homeButton->setMinimumSize( QSize( 25, 25 ) );
64 homeButton->setMaximumSize( QSize( 25, 25 ) );
65 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
66 homeButton->setFlat(TRUE);
67 layout->addWidget( homeButton, 0, 3 );
49 68
50 hideButton = new QPushButton( Resource::loadIconSet("s_hidden"),"",this,"hideButton");
51 hideButton->setGeometry(140,4,25,25);
52 connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) );
53 hideButton->setToggleButton(TRUE);
54 hideButton->setFlat(TRUE);
55
56 ListView = new QListView( this, "ListView" ); 69 ListView = new QListView( this, "ListView" );
70 ListView->setMinimumSize( QSize( 100, 25 ) );
57 ListView->addColumn( tr( "Name" ) ); 71 ListView->addColumn( tr( "Name" ) );
58 ListView->setColumnWidth(0,140); 72 ListView->setColumnWidth(0,140);
59 ListView->setSorting( 2, FALSE); 73 ListView->setSorting( 2, FALSE);
60 ListView->addColumn( tr( "Size" ) ); 74 ListView->addColumn( tr( "Size" ) );
61 ListView->setColumnWidth(1,59); 75 ListView->setColumnWidth(1,59);
62// ListView->addColumn( tr( "" ) ); 76// ListView->addColumn( tr( "" ) );
63 ListView->setColumnWidthMode(0,QListView::Manual); 77 ListView->setColumnWidthMode(0,QListView::Manual);
64 ListView->setColumnAlignment(1,QListView::AlignRight); 78 ListView->setColumnAlignment(1,QListView::AlignRight);
65// ListView->setMultiSelection(true); 79// ListView->setMultiSelection(true);
66// ListView->setSelectionMode(QListView::Extended); 80// ListView->setSelectionMode(QListView::Extended);
67 81
68 ListView->setAllColumnsShowFocus( TRUE ); 82 ListView->setAllColumnsShowFocus( TRUE );
69 ListView->setGeometry( QRect( 10, 35, 220, 240 ) ); 83 layout->addMultiCellWidget( ListView, 1, 1, 0, 3 );
70 84
71 // signals and slots connections 85 // signals and slots connections
72 connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); 86 connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) );
73 connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 87 connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
74 currentDir.setPath(QDir::currentDirPath()); 88 currentDir.setPath(QDir::currentDirPath());
75 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All); 89 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All);
76 90
77 populateList(); 91 populateList();
78 move(0,15); 92 move(0,15);
79} 93}
80 94
81fileBrowser::~fileBrowser() 95fileBrowser::~fileBrowser()
82{ 96{
83} 97}
84 98
85 99
86void fileBrowser::populateList() 100void fileBrowser::populateList()
87{ 101{
88 ListView->clear(); 102 ListView->clear();
89//qDebug(currentDir.canonicalPath()); 103//qDebug(currentDir.canonicalPath());
90 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 104 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
91 currentDir.setMatchAllDirs(TRUE); 105 currentDir.setMatchAllDirs(TRUE);
92 106
93 currentDir.setNameFilter(filterStr); 107 currentDir.setNameFilter(filterStr);
94// currentDir.setNameFilter("*.txt;*.etx"); 108// currentDir.setNameFilter("*.txt;*.etx");
95 QString fileL, fileS; 109 QString fileL, fileS;
96 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 110 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
97 QFileInfoListIterator it(*list); 111 QFileInfoListIterator it(*list);
98 QFileInfo *fi; 112 QFileInfo *fi;
99 while ( (fi=it.current()) ) { 113 while ( (fi=it.current()) ) {
100 114
101 if (fi->isSymLink() ){ 115 if (fi->isSymLink() ){
102 QString symLink=fi->readLink(); 116 QString symLink=fi->readLink();
103// qDebug("Symlink detected "+symLink); 117// qDebug("Symlink detected "+symLink);
104 QFileInfo sym( symLink); 118 QFileInfo sym( symLink);
105 fileS.sprintf( "%10li", sym.size() ); 119 fileS.sprintf( "%10li", sym.size() );
106 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); 120 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() );
107 121
108 } else { 122 } else {
109// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); 123// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
110 fileS.sprintf( "%10li", fi->size() ); 124 fileS.sprintf( "%10li", fi->size() );
111 fileL.sprintf( "%s",fi->fileName().data() ); 125 fileL.sprintf( "%s",fi->fileName().data() );
112 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 126 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
113 fileL+="/"; 127 fileL+="/";
114// qDebug( fileL); 128// qDebug( fileL);
115 } 129 }
116 } 130 }
117 item= new QListViewItem( ListView,fileL,fileS ); 131 item= new QListViewItem( ListView,fileL,fileS );
118 ++it; 132 ++it;
119 } 133 }
120 ListView->setSorting( 2, FALSE); 134 ListView->setSorting( 2, FALSE);
121 dirLabel->setText(currentDir.canonicalPath()); 135 dirLabel->setText(currentDir.canonicalPath());
122} 136}
123 137
124void fileBrowser::upDir() 138void fileBrowser::upDir()
125{ 139{
126// qDebug(currentDir.canonicalPath()); 140// qDebug(currentDir.canonicalPath());
127} 141}
128 142
129void fileBrowser::listDoubleClicked(QListViewItem *selectedItem) 143void fileBrowser::listDoubleClicked(QListViewItem *selectedItem)
130{ 144{
131} 145}
132 146
133// you may want to switch these 2 functions. I like single clicks 147// you may want to switch these 2 functions. I like single clicks
134void fileBrowser::listClicked(QListViewItem *selectedItem) 148void fileBrowser::listClicked(QListViewItem *selectedItem)
135{ 149{
136 QString strItem=selectedItem->text(0); 150 QString strItem=selectedItem->text(0);
137 QString strSize=selectedItem->text(1); 151 QString strSize=selectedItem->text(1);
138// qDebug("strItem is "+strItem); 152// qDebug("strItem is "+strItem);
139 strSize.stripWhiteSpace(); 153 strSize.stripWhiteSpace();
140// qDebug(strSize); 154// qDebug(strSize);
141 155
142 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink 156 if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink
143 // is symlink 157 // is symlink
144 QString strItem2=strItem.right( (strItem.length()-strItem.find("->",0,TRUE)) -4); 158 QString strItem2=strItem.right( (strItem.length()-strItem.find("->",0,TRUE)) -4);
145// qDebug("strItem symlink is "+strItem2); 159// qDebug("strItem symlink is "+strItem2);
146 if(QDir(strItem2).exists() ) { 160 if(QDir(strItem2).exists() ) {
147 currentDir.cd(strItem2, TRUE); 161 currentDir.cd(strItem2, TRUE);
148 populateList(); 162 populateList();
149 } 163 }
150 } else { // not a symlink 164 } else { // not a symlink
151 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { 165 if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) {
152 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { 166 if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) {
153 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 167 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
154 currentDir.cd(strItem,FALSE); 168 currentDir.cd(strItem,FALSE);
155// qDebug("Path is "+strItem); 169// qDebug("Path is "+strItem);
156 populateList(); 170 populateList();
157 } else { 171 } else {
158 currentDir.cdUp(); 172 currentDir.cdUp();
159 populateList(); 173 populateList();
160 } 174 }
161 if(QDir(strItem).exists()){ 175 if(QDir(strItem).exists()){
162 currentDir.cd(strItem, TRUE); 176 currentDir.cd(strItem, TRUE);
163 populateList(); 177 populateList();
164 } 178 }
165 } else { 179 } else {
166 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); 180 strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem);
167 if( QFile::exists(strItem ) ) { 181 if( QFile::exists(strItem ) ) {
168//currentDir.canonicalPath() 182//currentDir.canonicalPath()
169 qDebug("We found our files!!"+strItem); 183 qDebug("We found our files!!"+strItem);
170 OnOK(); 184 OnOK();
171 } 185 }
172 } //end not symlink 186 } //end not symlink
173 chdir(strItem.latin1()); 187 chdir(strItem.latin1());
174 } 188 }
175} 189}
176 190
177void fileBrowser::OnOK() 191void fileBrowser::OnOK()
178{ 192{
179 QListViewItemIterator it1( ListView); 193 QListViewItemIterator it1( ListView);
180 for ( ; it1.current(); ++it1 ) { 194 for ( ; it1.current(); ++it1 ) {
181 if ( it1.current()->isSelected() ) { 195 if ( it1.current()->isSelected() ) {
182 selectedFileName=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+it1.current()->text(0)); 196 selectedFileName=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+it1.current()->text(0));
183 qDebug("selected filename is "+selectedFileName); 197 qDebug("selected filename is "+selectedFileName);
184 fileList.append( selectedFileName ); 198 fileList.append( selectedFileName );
185 } 199 }
186 } 200 }
187 accept(); 201 accept();
188} 202}
189 203
190void fileBrowser::homeButtonPushed() { 204void fileBrowser::homeButtonPushed() {
191 chdir( QDir::homeDirPath().latin1() ); 205 chdir( QDir::homeDirPath().latin1() );
192 currentDir.cd( QDir::homeDirPath(), TRUE); 206 currentDir.cd( QDir::homeDirPath(), TRUE);
193 populateList(); 207 populateList();
194 update(); 208 update();
195} 209}
196 210
197void fileBrowser::docButtonPushed() { 211void fileBrowser::docButtonPushed() {
198 chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); 212 chdir( QString(QPEApplication::documentDir()+"/text").latin1() );
199 currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); 213 currentDir.cd( QPEApplication::documentDir()+"/text", TRUE);
200 populateList(); 214 populateList();
201 update(); 215 update();
202 216
203} 217}
204 218
205void fileBrowser::hideButtonPushed(bool b) { 219void fileBrowser::hideButtonPushed(bool b) {
206 if (b) 220 if (b)
207 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); 221 currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
208 else 222 else
209 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 223 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
210 224
211// chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); 225// chdir( QString(QPEApplication::documentDir()+"/text").latin1() );
212// currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); 226// currentDir.cd( QPEApplication::documentDir()+"/text", TRUE);
213 populateList(); 227 populateList();
214 update(); 228 update();
215 229
216} 230}
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index c46f089..3a189cb 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -351,384 +351,385 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
351 font->insertItem("Font", this, SLOT(changeFont()) ); 351 font->insertItem("Font", this, SLOT(changeFont()) );
352 352
353 font->insertSeparator(); 353 font->insertSeparator();
354 nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 ); 354 nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 );
355 connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) ); 355 connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) );
356 nStart->setToggleAction(TRUE); 356 nStart->setToggleAction(TRUE);
357 nStart->addTo( font ); 357 nStart->addTo( font );
358 358
359 mb->insertItem( tr( "File" ), file ); 359 mb->insertItem( tr( "File" ), file );
360 mb->insertItem( tr( "Edit" ), edit ); 360 mb->insertItem( tr( "Edit" ), edit );
361 mb->insertItem( tr( "View" ), font ); 361 mb->insertItem( tr( "View" ), font );
362 362
363 searchBar = new QPEToolBar(this); 363 searchBar = new QPEToolBar(this);
364 addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); 364 addToolBar( searchBar, "Search", QMainWindow::Top, TRUE );
365 365
366 searchBar->setHorizontalStretchable( TRUE ); 366 searchBar->setHorizontalStretchable( TRUE );
367 367
368 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 368 searchEdit = new QLineEdit( searchBar, "searchEdit" );
369 searchBar->setStretchableWidget( searchEdit ); 369 searchBar->setStretchableWidget( searchEdit );
370 connect( searchEdit, SIGNAL( textChanged( const QString & ) ), 370 connect( searchEdit, SIGNAL( textChanged( const QString & ) ),
371 this, SLOT( search() ) ); 371 this, SLOT( search() ) );
372 372
373 373
374 a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); 374 a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 );
375 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); 375 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) );
376 a->addTo( searchBar ); 376 a->addTo( searchBar );
377 a->addTo( edit ); 377 a->addTo( edit );
378 378
379 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 379 a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
380 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); 380 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) );
381 a->addTo( searchBar ); 381 a->addTo( searchBar );
382 382
383 edit->insertSeparator(); 383 edit->insertSeparator();
384 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 384 a = new QAction( tr( "Delete" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
385 connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) ); 385 connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) );
386 a->addTo( edit ); 386 a->addTo( edit );
387 387
388 searchBar->hide(); 388 searchBar->hide();
389 389
390 editorStack = new QWidgetStack( this ); 390 editorStack = new QWidgetStack( this );
391 setCentralWidget( editorStack ); 391 setCentralWidget( editorStack );
392 392
393 searchVisible = FALSE; 393 searchVisible = FALSE;
394 394
395 fileSelector = new FileSelector( "text/*", editorStack, "fileselector" , TRUE, TRUE); //buggy 395 fileSelector = new FileSelector( "text/*", editorStack, "fileselector" , TRUE, TRUE); //buggy
396 connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) ); 396 connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) );
397 connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); 397 connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
398 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( openFile( const DocLnk & ) ) ); 398 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( openFile( const DocLnk & ) ) );
399// fileOpen(); 399// fileOpen();
400 400
401 editor = new QpeEditor( editorStack ); 401 editor = new QpeEditor( editorStack );
402 editor->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 402 editor->setFrameStyle( QFrame::Panel | QFrame::Sunken );
403 editorStack->addWidget( editor, get_unique_id() ); 403 editorStack->addWidget( editor, get_unique_id() );
404 connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) ); 404 connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) );
405 405
406 resize( 200, 300 ); 406 resize( 200, 300 );
407 407
408// setFontSize(defsize,TRUE); 408// setFontSize(defsize,TRUE);
409 FontDatabase fdb; 409 FontDatabase fdb;
410 QFont defaultFont=editor->font(); 410 QFont defaultFont=editor->font();
411 QFontInfo fontInfo(defaultFont); 411 QFontInfo fontInfo(defaultFont);
412 412
413 cfg.setGroup("Font"); 413 cfg.setGroup("Font");
414 QString family = cfg.readEntry("Family", fontInfo.family()); 414 QString family = cfg.readEntry("Family", fontInfo.family());
415 QString style = cfg.readEntry("Style", fdb.styleString(defaultFont)); 415 QString style = cfg.readEntry("Style", fdb.styleString(defaultFont));
416 int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10); 416 int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10);
417 QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) ); 417 QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) );
418 418
419 defaultFont = fdb.font(family,style,i_size,charSet); 419 defaultFont = fdb.font(family,style,i_size,charSet);
420 editor->setFont( defaultFont); 420 editor->setFont( defaultFont);
421 421
422 wa->setOn(wrap); 422 wa->setOn(wrap);
423 updateCaption(); 423 updateCaption();
424 424
425 cfg.setGroup("View"); 425 cfg.setGroup("View");
426 if(cfg.readEntry("startNew","TRUE") == "TRUE") { 426 if(cfg.readEntry("startNew","TRUE") == "TRUE") {
427 nStart->setOn(TRUE); 427 nStart->setOn(TRUE);
428 fileNew(); 428 fileNew();
429 } else { 429 } else {
430 fileOpen(); 430 fileOpen();
431 } 431 }
432 432
433} 433}
434 434
435TextEdit::~TextEdit() 435TextEdit::~TextEdit()
436{ 436{
437// save(); 437// save();
438 438
439 Config cfg("TextEdit"); 439 Config cfg("TextEdit");
440 cfg.setGroup("View"); 440 cfg.setGroup("View");
441 QFont f = editor->font(); 441 QFont f = editor->font();
442 cfg.writeEntry("FontSize",f.pointSize()); 442 cfg.writeEntry("FontSize",f.pointSize());
443 cfg.writeEntry("Bold",f.bold()); 443 cfg.writeEntry("Bold",f.bold());
444 cfg.writeEntry("Italic",f.italic()); 444 cfg.writeEntry("Italic",f.italic());
445 cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth); 445 cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth);
446} 446}
447 447
448void TextEdit::zoomIn() 448void TextEdit::zoomIn()
449{ 449{
450 setFontSize(editor->font().pointSize()+1,FALSE); 450 setFontSize(editor->font().pointSize()+1,FALSE);
451} 451}
452 452
453void TextEdit::zoomOut() 453void TextEdit::zoomOut()
454{ 454{
455 setFontSize(editor->font().pointSize()-1,TRUE); 455 setFontSize(editor->font().pointSize()-1,TRUE);
456} 456}
457 457
458 458
459void TextEdit::setFontSize(int sz, bool round_down_not_up) 459void TextEdit::setFontSize(int sz, bool round_down_not_up)
460{ 460{
461 int s=10; 461 int s=10;
462 for (int i=0; i<nfontsizes; i++) { 462 for (int i=0; i<nfontsizes; i++) {
463 if ( fontsize[i] == sz ) { 463 if ( fontsize[i] == sz ) {
464 s = sz; 464 s = sz;
465 break; 465 break;
466 } else if ( round_down_not_up ) { 466 } else if ( round_down_not_up ) {
467 if ( fontsize[i] < sz ) 467 if ( fontsize[i] < sz )
468 s = fontsize[i]; 468 s = fontsize[i];
469 } else { 469 } else {
470 if ( fontsize[i] > sz ) { 470 if ( fontsize[i] > sz ) {
471 s = fontsize[i]; 471 s = fontsize[i];
472 break; 472 break;
473 } 473 }
474 } 474 }
475 } 475 }
476 476
477 QFont f = editor->font(); 477 QFont f = editor->font();
478 f.setPointSize(s); 478 f.setPointSize(s);
479 editor->setFont(f); 479 editor->setFont(f);
480 480
481 zin->setEnabled(s != fontsize[nfontsizes-1]); 481 zin->setEnabled(s != fontsize[nfontsizes-1]);
482 zout->setEnabled(s != fontsize[0]); 482 zout->setEnabled(s != fontsize[0]);
483} 483}
484 484
485void TextEdit::setBold(bool y) 485void TextEdit::setBold(bool y)
486{ 486{
487 QFont f = editor->font(); 487 QFont f = editor->font();
488 f.setBold(y); 488 f.setBold(y);
489 editor->setFont(f); 489 editor->setFont(f);
490} 490}
491 491
492void TextEdit::setItalic(bool y) 492void TextEdit::setItalic(bool y)
493{ 493{
494 QFont f = editor->font(); 494 QFont f = editor->font();
495 f.setItalic(y); 495 f.setItalic(y);
496 editor->setFont(f); 496 editor->setFont(f);
497} 497}
498 498
499void TextEdit::setWordWrap(bool y) 499void TextEdit::setWordWrap(bool y)
500{ 500{
501 bool state = editor->edited(); 501 bool state = editor->edited();
502 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); 502 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap );
503 editor->setEdited( state ); 503 editor->setEdited( state );
504} 504}
505 505
506void TextEdit::fileNew() 506void TextEdit::fileNew()
507{ 507{
508 if( !bFromDocView ) { 508 if( !bFromDocView ) {
509 saveAs(); 509 saveAs();
510 } 510 }
511 newFile(DocLnk()); 511 newFile(DocLnk());
512} 512}
513 513
514void TextEdit::fileOpen() 514void TextEdit::fileOpen()
515{ 515{
516// if ( !save() ) { 516// if ( !save() ) {
517// if ( QMessageBox::critical( this, tr( "Out of space" ), 517// if ( QMessageBox::critical( this, tr( "Out of space" ),
518// tr( "Text Editor was unable to\n" 518// tr( "Text Editor was unable to\n"
519// "save your changes.\n" 519// "save your changes.\n"
520// "Free some space and try again.\n" 520// "Free some space and try again.\n"
521// "\nContinue anyway?" ), 521// "\nContinue anyway?" ),
522// QMessageBox::Yes|QMessageBox::Escape, 522// QMessageBox::Yes|QMessageBox::Escape,
523// QMessageBox::No|QMessageBox::Default ) 523// QMessageBox::No|QMessageBox::Default )
524// != QMessageBox::Yes ) 524// != QMessageBox::Yes )
525// return; 525// return;
526// else { 526// else {
527// delete doc; 527// delete doc;
528// doc = 0; 528// doc = 0;
529// } 529// }
530// } 530// }
531 menu->hide(); 531 menu->hide();
532 editBar->hide(); 532 editBar->hide();
533 searchBar->hide(); 533 searchBar->hide();
534 clearWState (WState_Reserved1 ); 534 clearWState (WState_Reserved1 );
535 editorStack->raiseWidget( fileSelector ); 535 editorStack->raiseWidget( fileSelector );
536 fileSelector->reread(); 536 fileSelector->reread();
537 updateCaption(); 537 updateCaption();
538} 538}
539 539
540void TextEdit::newFileOpen() 540void TextEdit::newFileOpen()
541{ 541{
542 browseForFiles=new fileBrowser(this,"Open File",TRUE,0, "*"); 542 browseForFiles=new fileBrowser(this,"Open File",TRUE,0, "*");
543 browseForFiles->showMaximized();
543 if( browseForFiles->exec() != -1 ) { 544 if( browseForFiles->exec() != -1 ) {
544 QString selFile= browseForFiles->selectedFileName; 545 QString selFile= browseForFiles->selectedFileName;
545 QStringList fileList=browseForFiles->fileList; 546 QStringList fileList=browseForFiles->fileList;
546 qDebug(selFile); 547 qDebug(selFile);
547 QStringList::ConstIterator f; 548 QStringList::ConstIterator f;
548 QString fileTemp; 549 QString fileTemp;
549 for ( f = fileList.begin(); f != fileList.end(); f++ ) { 550 for ( f = fileList.begin(); f != fileList.end(); f++ ) {
550 fileTemp = *f; 551 fileTemp = *f;
551 fileTemp.right( fileTemp.length()-5); 552 fileTemp.right( fileTemp.length()-5);
552 QString fileName = fileTemp; 553 QString fileName = fileTemp;
553 if( fileName != "Unnamed" || fileName != "Empty Text" ) { 554 if( fileName != "Unnamed" || fileName != "Empty Text" ) {
554 currentFileName = fileName; 555 currentFileName = fileName;
555 qDebug("please open "+currentFileName); 556 qDebug("please open "+currentFileName);
556 openFile(fileName ); 557 openFile(fileName );
557 } 558 }
558 } 559 }
559 } 560 }
560 delete browseForFiles; 561 delete browseForFiles;
561 editor->setEdited( FALSE); 562 editor->setEdited( FALSE);
562 edited1=FALSE; 563 edited1=FALSE;
563 edited=FALSE; 564 edited=FALSE;
564 if(caption().left(1)=="*") 565 if(caption().left(1)=="*")
565 setCaption(caption().right(caption().length()-1)); 566 setCaption(caption().right(caption().length()-1));
566} 567}
567 568
568#if 0 569#if 0
569void TextEdit::slotFind() 570void TextEdit::slotFind()
570{ 571{
571 FindDialog frmFind( "Text Editor", this ); 572 FindDialog frmFind( "Text Editor", this );
572 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), 573 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
573 editor, SLOT(slotDoFind( const QString&,bool,bool))); 574 editor, SLOT(slotDoFind( const QString&,bool,bool)));
574 575
575 //case sensitive, backwards, [category] 576 //case sensitive, backwards, [category]
576 577
577 connect( editor, SIGNAL(notFound()), 578 connect( editor, SIGNAL(notFound()),
578 &frmFind, SLOT(slotNotFound()) ); 579 &frmFind, SLOT(slotNotFound()) );
579 connect( editor, SIGNAL(searchWrapped()), 580 connect( editor, SIGNAL(searchWrapped()),
580 &frmFind, SLOT(slotWrapAround()) ); 581 &frmFind, SLOT(slotWrapAround()) );
581 582
582 frmFind.exec(); 583 frmFind.exec();
583 584
584 585
585} 586}
586#endif 587#endif
587 588
588void TextEdit::fileRevert() 589void TextEdit::fileRevert()
589{ 590{
590 clear(); 591 clear();
591 fileOpen(); 592 fileOpen();
592} 593}
593 594
594void TextEdit::editCut() 595void TextEdit::editCut()
595{ 596{
596#ifndef QT_NO_CLIPBOARD 597#ifndef QT_NO_CLIPBOARD
597 editor->cut(); 598 editor->cut();
598#endif 599#endif
599} 600}
600 601
601void TextEdit::editCopy() 602void TextEdit::editCopy()
602{ 603{
603#ifndef QT_NO_CLIPBOARD 604#ifndef QT_NO_CLIPBOARD
604 editor->copy(); 605 editor->copy();
605#endif 606#endif
606} 607}
607 608
608void TextEdit::editPaste() 609void TextEdit::editPaste()
609{ 610{
610#ifndef QT_NO_CLIPBOARD 611#ifndef QT_NO_CLIPBOARD
611 editor->paste(); 612 editor->paste();
612#endif 613#endif
613} 614}
614 615
615void TextEdit::editFind() 616void TextEdit::editFind()
616{ 617{
617 searchBar->show(); 618 searchBar->show();
618 searchVisible = TRUE; 619 searchVisible = TRUE;
619 searchEdit->setFocus(); 620 searchEdit->setFocus();
620} 621}
621 622
622void TextEdit::findNext() 623void TextEdit::findNext()
623{ 624{
624 editor->find( searchEdit->text(), FALSE, FALSE ); 625 editor->find( searchEdit->text(), FALSE, FALSE );
625 626
626} 627}
627 628
628void TextEdit::findClose() 629void TextEdit::findClose()
629{ 630{
630 searchVisible = FALSE; 631 searchVisible = FALSE;
631 searchBar->hide(); 632 searchBar->hide();
632} 633}
633 634
634void TextEdit::search() 635void TextEdit::search()
635{ 636{
636 editor->find( searchEdit->text(), FALSE, FALSE ); 637 editor->find( searchEdit->text(), FALSE, FALSE );
637} 638}
638 639
639void TextEdit::newFile( const DocLnk &f ) 640void TextEdit::newFile( const DocLnk &f )
640{ 641{
641 DocLnk nf = f; 642 DocLnk nf = f;
642 nf.setType("text/plain"); 643 nf.setType("text/plain");
643 clear(); 644 clear();
644 editorStack->raiseWidget( editor ); 645 editorStack->raiseWidget( editor );
645 setWState (WState_Reserved1 ); 646 setWState (WState_Reserved1 );
646 editor->setFocus(); 647 editor->setFocus();
647 doc = new DocLnk(nf); 648 doc = new DocLnk(nf);
648 qDebug("newFile "+currentFileName); 649 qDebug("newFile "+currentFileName);
649 updateCaption(currentFileName); 650 updateCaption(currentFileName);
650} 651}
651 652
652void TextEdit::openFile( const QString &f ) 653void TextEdit::openFile( const QString &f )
653{ 654{
654 bFromDocView = TRUE; 655 bFromDocView = TRUE;
655 DocLnk nf; 656 DocLnk nf;
656 nf.setType("text/plain"); 657 nf.setType("text/plain");
657 nf.setFile(f); 658 nf.setFile(f);
658 currentFileName=f; 659 currentFileName=f;
659 QFileInfo fi( currentFileName); 660 QFileInfo fi( currentFileName);
660 nf.setName(fi.baseName()); 661 nf.setName(fi.baseName());
661 qDebug("openFile string"+currentFileName); 662 qDebug("openFile string"+currentFileName);
662 663
663 openFile(nf); 664 openFile(nf);
664 showEditTools(); 665 showEditTools();
665 // Show filename in caption 666 // Show filename in caption
666 QString name = f; 667 QString name = f;
667 int sep = name.findRev( '/' ); 668 int sep = name.findRev( '/' );
668 if ( sep > 0 ) 669 if ( sep > 0 )
669 name = name.mid( sep+1 ); 670 name = name.mid( sep+1 );
670 updateCaption( name ); 671 updateCaption( name );
671} 672}
672 673
673void TextEdit::openFile( const DocLnk &f ) 674void TextEdit::openFile( const DocLnk &f )
674{ 675{
675// clear(); 676// clear();
676 bFromDocView = TRUE; 677 bFromDocView = TRUE;
677 FileManager fm; 678 FileManager fm;
678 QString txt; 679 QString txt;
679 currentFileName=f.name(); 680 currentFileName=f.name();
680 qDebug("openFile doclnk " + currentFileName); 681 qDebug("openFile doclnk " + currentFileName);
681 if ( !fm.loadFile( f, txt ) ) { 682 if ( !fm.loadFile( f, txt ) ) {
682 // ####### could be a new file 683 // ####### could be a new file
683 qDebug( "Cannot open file" ); 684 qDebug( "Cannot open file" );
684 685
685 //return; 686 //return;
686 } 687 }
687 688
688 fileNew(); 689 fileNew();
689 if ( doc ) 690 if ( doc )
690 delete doc; 691 delete doc;
691 doc = new DocLnk(f); 692 doc = new DocLnk(f);
692 editor->setText(txt); 693 editor->setText(txt);
693 editor->setEdited( FALSE); 694 editor->setEdited( FALSE);
694 edited1=FALSE; 695 edited1=FALSE;
695 edited=FALSE; 696 edited=FALSE;
696 697
697 qDebug("openFile doclnk "+currentFileName); 698 qDebug("openFile doclnk "+currentFileName);
698 doc->setName(currentFileName); 699 doc->setName(currentFileName);
699 updateCaption(); 700 updateCaption();
700} 701}
701 702
702void TextEdit::showEditTools() 703void TextEdit::showEditTools()
703{ 704{
704// if ( !doc ) 705// if ( !doc )
705// close(); 706// close();
706// clear(); 707// clear();
707 fileSelector->hide(); 708 fileSelector->hide();
708 menu->show(); 709 menu->show();
709 editBar->show(); 710 editBar->show();
710 if ( searchVisible ) 711 if ( searchVisible )
711 searchBar->show(); 712 searchBar->show();
712// updateCaption(); 713// updateCaption();
713 editorStack->raiseWidget( editor ); 714 editorStack->raiseWidget( editor );
714 setWState (WState_Reserved1 ); 715 setWState (WState_Reserved1 );
715} 716}
716 717
717/*! 718/*!
718 unprompted save */ 719 unprompted save */
719bool TextEdit::save() 720bool TextEdit::save()
720{ 721{
721 QString file = doc->file(); 722 QString file = doc->file();
722 qDebug(file); 723 qDebug(file);
723 QString name= doc->name(); 724 QString name= doc->name();
724 qDebug(name); 725 qDebug(name);
725 QString rt = editor->text(); 726 QString rt = editor->text();
726 if( !rt.isEmpty() ) { 727 if( !rt.isEmpty() ) {
727 if(name.isEmpty()) { 728 if(name.isEmpty()) {
728 saveAs(); 729 saveAs();
729 } else { 730 } else {
730 currentFileName= name ; 731 currentFileName= name ;
731 qDebug("saveFile "+currentFileName); 732 qDebug("saveFile "+currentFileName);
732 733
733 struct stat buf; 734 struct stat buf;
734 mode_t mode; 735 mode_t mode;