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.h5
2 files changed, 37 insertions, 8 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 03f3a1e..78c4d8a 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -160,20 +160,20 @@ class QpeEditor : public QMultiLineEdit
public:
QpeEditor( QWidget *parent, const char * name = 0 )
: QMultiLineEdit( parent, name )
{
clearTableFlags();
setTableFlags( Tbl_vScrollBar | Tbl_autoHScrollBar );
}
- //public slots:
void find( const QString &txt, bool caseSensitive,
bool backwards );
- /*
+//public slots:
+ /*
signals:
void notFound();
void searchWrapped();
*/
private:
};
@@ -235,17 +235,18 @@ static int get_unique_id()
static const int nfontsizes = 6;
static const int fontsize[nfontsizes] = {8,10,12,14,18,24};
TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
: QMainWindow( parent, name, f ), bFromDocView( FALSE )
{
doc = 0;
-
+ edited=FALSE;
+ edited1=FALSE;
setToolBarsMovable( FALSE );
setIcon( Resource::loadPixmap( "TextEditor" ) );
QPEToolBar *bar = new QPEToolBar( this );
bar->setHorizontalStretchable( TRUE );
menu = bar;
@@ -395,16 +396,17 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) );
connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( openFile( const DocLnk & ) ) );
// fileOpen();
editor = new QpeEditor( editorStack );
editor->setFrameStyle( QFrame::Panel | QFrame::Sunken );
editorStack->addWidget( editor, get_unique_id() );
+ connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) );
resize( 200, 300 );
// setFontSize(defsize,TRUE);
FontDatabase fdb;
QFont defaultFont=editor->font();
QFontInfo fontInfo(defaultFont);
@@ -551,17 +553,20 @@ void TextEdit::newFileOpen()
if( fileName != "Unnamed" || fileName != "Empty Text" ) {
currentFileName = fileName;
qDebug("please open "+currentFileName);
openFile(fileName );
}
}
}
delete browseForFiles;
- editor->setEdited( true );
+ editor->setEdited( FALSE);
+ edited1=FALSE;
+ edited=FALSE;
+ setCaption(caption().right(caption().length()-1));
}
#if 0
void TextEdit::slotFind()
{
FindDialog frmFind( "Text Editor", this );
connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
editor, SLOT(slotDoFind( const QString&,bool,bool)));
@@ -679,17 +684,21 @@ void TextEdit::openFile( const DocLnk &f )
//return;
}
fileNew();
if ( doc )
delete doc;
doc = new DocLnk(f);
editor->setText(txt);
- editor->setEdited( false);
+ editor->setEdited( FALSE);
+ edited1=FALSE;
+ edited=FALSE;
+ setCaption(caption().right(caption().length()-1));
+
qDebug("openFile doclnk "+currentFileName);
doc->setName(currentFileName);
updateCaption();
}
void TextEdit::showEditTools()
{
// if ( !doc )
@@ -726,17 +735,21 @@ bool TextEdit::save()
stat(file.latin1(), &buf);
mode = buf.st_mode;
doc->setName( name);
FileManager fm;
if ( !fm.saveFile( *doc, rt ) ) {
return false;
}
- editor->setEdited( false );
+ editor->setEdited( FALSE);
+ edited1=FALSE;
+ edited=FALSE;
+ setCaption(caption().right(caption().length()-1));
+
chmod( file.latin1(), mode);
}
return true;
}
return false;
}
@@ -808,22 +821,27 @@ bool TextEdit::saveAs()
FileManager fm;
if ( !fm.saveFile( *doc, rt ) ) {
return false;
}
if( fileSaveDlg->filePermCheck->isChecked() ) {
filePermissions *filePerm;
filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)fileNm);
filePerm->exec();
- editor->setEdited( false );
+
if( filePerm)
delete filePerm;
}
}
}
+ editor->setEdited( FALSE);
+ edited1=FALSE;
+ edited=FALSE;
+ if(caption().left(1)=="*")
+ setCaption(caption().right(caption().length()-1));
if(fileSaveDlg)
delete fileSaveDlg;
return true;
}
void TextEdit::clear()
{
@@ -933,8 +951,16 @@ void TextEdit::changeStartConfig( bool b ) {
if(b) {
qDebug("bool");
cfg.writeEntry("startNew","TRUE");
} else {
cfg.writeEntry("startNew","FALSE");
}
update();
}
+
+void TextEdit::editorChanged() {
+ if(editor->edited() && edited && !edited1) {
+ setCaption( "*"+caption());
+ edited1=TRUE;
+ }
+ edited=TRUE;
+}
diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h
index fb58738..e7e20e3 100644
--- a/core/apps/textedit/textedit.h
+++ b/core/apps/textedit/textedit.h
@@ -49,18 +49,21 @@ class TextEdit : public QMainWindow
{
Q_OBJECT
public:
TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
~TextEdit();
QPopupMenu *font;
QAction *nStart;
+ bool edited, edited1;
void openFile( const QString & );
-
+public slots:
+ void editorChanged();
+
protected:
void closeEvent( QCloseEvent *e );
private slots:
void setDocument(const QString&);
void changeFont();
void fileNew();
void fileRevert();