summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp40
-rw-r--r--core/apps/textedit/textedit.h2
2 files changed, 33 insertions, 9 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 84888c1..19449cb 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -341,24 +341,26 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
connect( wa, SIGNAL( toggled(bool) ), this, SLOT( setWordWrap(bool) ) );
wa->setToggleAction(TRUE);
wa->addTo( font );
font->insertSeparator();
font->insertItem(tr("Font"), this, SLOT(changeFont()) );
font->insertSeparator();
nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 );
connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) );
nStart->setToggleAction(TRUE);
nStart->addTo( font );
+ font->insertSeparator();
+ font->insertItem(tr("About"), this, SLOT( doAbout()) );
mb->insertItem( tr( "File" ), file );
mb->insertItem( tr( "Edit" ), edit );
mb->insertItem( tr( "View" ), font );
searchBar = new QPEToolBar(this);
addToolBar( searchBar, "Search", QMainWindow::Top, TRUE );
searchBar->setHorizontalStretchable( TRUE );
searchEdit = new QLineEdit( searchBar, "searchEdit" );
searchBar->setStretchableWidget( searchEdit );
@@ -403,24 +405,25 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
editor->setFont( defaultFont);
wa->setOn(wrap);
updateCaption();
cfg.setGroup("View");
if(cfg.readEntry("startNew","TRUE") == "TRUE") {
nStart->setOn(TRUE);
fileNew();
} else {
fileOpen();
}
+
viewSelection = cfg.readNumEntry( "FileView", 0 );
}
void TextEdit::cleanUp()
{
// save();
Config cfg("TextEdit");
cfg.setGroup("View");
QFont f = editor->font();
cfg.writeEntry("FontSize",f.pointSize());
cfg.writeEntry("Bold",f.bold());
cfg.writeEntry("Italic",f.italic());
@@ -495,25 +498,25 @@ void TextEdit::fileNew()
{
// if( !bFromDocView ) {
// saveAs();
// }
newFile(DocLnk());
}
void TextEdit::fileOpen()
{
Config cfg("TextEdit");
cfg.setGroup("View");
bool b=FALSE;
- if(cfg.readEntry("useOldFileDialog") == "TRUE")
+ if(cfg.readEntry("useOldFileDialog") == "TRUE")
b=TRUE;
if(!b) {
QString str = OFileDialog::getOpenFileName( 1,"/","", "text/plain", this );
if(!str.isEmpty() )
openFile( str );
} else {
QString str;
browseForFiles = new fileBrowser(this,tr("Open File"),TRUE,0, "text/*"); //
browseForFiles->setFileView( viewSelection );
browseForFiles->showMaximized();
// if( result != -1 )
@@ -521,29 +524,29 @@ void TextEdit::fileOpen()
QString selFile = browseForFiles->selectedFileName;
QStringList fileList = browseForFiles->fileList;
qDebug(selFile);
QStringList::ConstIterator f;
QString fileTemp;
for ( f = fileList.begin(); f != fileList.end(); f++ ) {
fileTemp = *f;
fileTemp.right( fileTemp.length()-5);
QString fileName = fileTemp;
if( fileName != "Unnamed" || fileName != "Empty Text" ) {
currentFileName = fileName;
qDebug("please open "+currentFileName);
- openFile(str );
+ openFile(currentFileName );
}
}
viewSelection = browseForFiles->SelectionCombo->currentItem();
- }
+ }
delete browseForFiles;
editor->setEdited( FALSE);
edited1=FALSE;
edited=FALSE;
if(caption().left(1)=="*")
setCaption(caption().right(caption().length()-1));
doSearchBar();
}
}
void TextEdit::doSearchBar()
{
@@ -654,26 +657,28 @@ void TextEdit::openFile( const QString &f )
if(f.find(".desktop",0,TRUE) != -1) {
switch ( QMessageBox::warning(this,tr("Text Editor"),
tr("Text Editor has detected\n you selected a .desktop file.\nOpen .desktop file or linked file?"),
tr(".desktop File"),tr("Linked Document"),0,1,1) ) {
case 0:
filer = f;
break;
case 1:
DocLnk sf(f);
filer = sf.file();
break;
}
- } else
+ } else {
filer = f;
+ fileIs = TRUE;
+ }
DocLnk nf;
nf.setType("text/plain");
nf.setFile(filer);
currentFileName=filer;
QFileInfo fi( currentFileName);
nf.setName(fi.baseName());
qDebug("openFile string "+currentFileName);
openFile(nf);
showEditTools();
// Show filename in caption
@@ -733,29 +738,40 @@ bool TextEdit::save()
QString rt = editor->text();
if( !rt.isEmpty() ) {
if(name.isEmpty()) {
saveAs();
} else {
currentFileName= name ;
qDebug("saveFile "+currentFileName);
struct stat buf;
mode_t mode;
stat(file.latin1(), &buf);
mode = buf.st_mode;
-
- doc->setName( name);
- FileManager fm;
- if ( !fm.saveFile( *doc, rt ) ) {
- return false;
+ if(!fileIs) {
+ doc->setName( name);
+ FileManager fm;
+ if ( !fm.saveFile( *doc, rt ) ) {
+ return false;
+ }
+ } else {
+ qDebug("regular save file");
+ QFile f(file);
+ if( f.open(IO_WriteOnly)) {
+ f.writeBlock(rt,rt.length());
+ } else {
+ QMessageBox::message("Text Edit","Write Failed");
+ return false;
+ }
+
}
editor->setEdited( FALSE);
edited1=FALSE;
edited=FALSE;
if(caption().left(1)=="*")
setCaption(caption().right(caption().length()-1));
chmod( file.latin1(), mode);
}
return true;
}
@@ -960,12 +976,18 @@ void TextEdit::editorChanged() {
edited1=TRUE;
}
edited=TRUE;
}
void TextEdit::receive(const QCString&msg, const QByteArray&) {
qDebug("QCop "+msg);
if ( msg == "setDocument(QString)" ) {
qDebug("bugger all");
}
}
+void TextEdit::doAbout() {
+ QMessageBox::about(0,"Text Edit","Text Edit is copyright\n"
+ "2000 Trolltech AS, and\n"
+ "2002 by L.J.Potter \nljp@llornkcor.com\n"
+ "and is licensed under the GPL");
+}
diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h
index edc6fe3..9d27ab0 100644
--- a/core/apps/textedit/textedit.h
+++ b/core/apps/textedit/textedit.h
@@ -56,27 +56,29 @@ public:
TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
~TextEdit();
QPopupMenu *font;
QAction *nStart, *nFileDlgOpt;
bool edited, edited1;
void openFile( const QString & );
QCopChannel * channel;
public slots:
void editorChanged();
void receive(const QCString&, const QByteArray&);
protected:
+ bool fileIs;
void closeEvent( QCloseEvent *e );
void doSearchBar();
private slots:
+ void doAbout();
void setDocument(const QString&);
void changeFont();
void fileNew();
void fileRevert();
void fileOpen();
void changeStartConfig(bool);
bool save();
bool saveAs();
void cleanUp();
void editCut();