author | llornkcor <llornkcor> | 2002-09-22 01:21:48 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-09-22 01:21:48 (UTC) |
commit | 4ad2edeaf52db70042ba27a97e16733cbc6a8cc0 (patch) (side-by-side diff) | |
tree | ab2adb51887a5a1ceece5b2ba4b1131c13cc36d7 | |
parent | ad9e290551c610e4ccaafb20b72699b39b55d079 (diff) | |
download | opie-4ad2edeaf52db70042ba27a97e16733cbc6a8cc0.zip opie-4ad2edeaf52db70042ba27a97e16733cbc6a8cc0.tar.gz opie-4ad2edeaf52db70042ba27a97e16733cbc6a8cc0.tar.bz2 |
fix race
-rw-r--r-- | noncore/applets/notesapplet/notes.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/noncore/applets/notesapplet/notes.cpp b/noncore/applets/notesapplet/notes.cpp index 64731e3..a4aa093 100644 --- a/noncore/applets/notesapplet/notes.cpp +++ b/noncore/applets/notesapplet/notes.cpp @@ -145,219 +145,219 @@ void NotesControl::slotDeleteButton() { cfg.writeEntry("NumberOfFiles", noOfFiles-1 ); entryName.sprintf( "File%i", noOfFiles ); cfg.removeEntry(entryName); cfg.write(); DocLnk nf(selectedText); nf.removeFiles(); } } populateBox(); } void NotesControl::slotNewButton() { if(edited) save(); view->clear(); view->setFocus(); } void NotesControl::boxPressed(int mouse, QListBoxItem *item, const QPoint&) { switch (mouse) { case 1:{ } break; case 2: menuTimer.start( 500, TRUE ); break; }; } void NotesControl::slotBoxSelected(const QString &itemString) { if(edited) { save(); } loaded=false; edited=false; load(itemString); } void NotesControl::showMenu() { QPopupMenu *m = new QPopupMenu(0); m->insertItem( tr( "Delete" ), this, SLOT( slotDeleteButton() )); m->setFocus(); m->exec( QCursor::pos() ); if(m) delete m; } void NotesControl::focusOutEvent ( QFocusEvent * e) { if( e->reason() == QFocusEvent::Popup) save(); else { if(!loaded) { populateBox(); load(); } } QWidget::focusOutEvent(e); } void NotesControl::save() { Config cfg("Notes"); cfg.setGroup("Docs"); if( edited) { QString rt = view->text(); if(!rt.isEmpty()) { QString pt = rt.simplifyWhiteSpace(); int i = pt.find( ' ' ); QString docname = pt; if ( i > 0 ) docname = pt.left( i ); // remove "." at the beginning while( docname.startsWith( "." ) ) docname = docname.mid( 1 ); docname.replace( QRegExp("/"), "_" ); // cut the length. filenames longer than that don't make sense // and something goes wrong when they get too long. if ( docname.length() > 40 ) docname = docname.left(40); if ( docname.isEmpty() ) docname = "Empty Text"; qDebug(docname); if( oldDocName != docname) { int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); QString entryName; entryName.sprintf( "File%i", noOfFiles + 1 ); cfg.writeEntry( entryName,docname ); cfg.writeEntry("NumberOfFiles", noOfFiles+1 ); cfg.write(); } doc = new DocLnk(docname); doc->setType("text/plain"); doc->setFile(docname); doc->setName(docname); FileManager fm; if ( !fm.saveFile( *doc, rt ) ) { } oldDocName=docname; edited=false; } qDebug("save"); if (doPopulate) populateBox(); } cfg.writeEntry( "LastDoc",oldDocName ); cfg.write(); } void NotesControl::populateBox() { box->clear(); qDebug("populate"); Config cfg("Notes"); cfg.setGroup("Docs"); int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); QStringList list; QString entryName; for ( int i = 0; i < noOfFiles; i++ ) { entryName.sprintf( "File%i", i + 1 ); list.append(cfg.readEntry( entryName )); } list.sort(); box->insertStringList(list,-1); - + doPopulate=false; } void NotesControl::load() { Config cfg("Notes"); cfg.setGroup("Docs"); if(!loaded) { QString lastDoc=cfg.readEntry( "LastDoc",""); DocLnk nf; nf.setType("text/plain"); nf.setFile(lastDoc); loadDoc(nf); loaded=true; oldDocName=lastDoc; } cfg.writeEntry( "LastDoc",oldDocName ); cfg.write(); } void NotesControl::load(const QString & file) { qDebug("loading "+file); if(!loaded) { DocLnk nf; nf.setType("text/plain"); nf.setFile( file); loadDoc(nf); loaded=true; } // view->setFocus(); oldDocName=file; Config cfg("Notes"); cfg.setGroup("Docs"); cfg.writeEntry( "LastDoc",oldDocName ); cfg.write(); } void NotesControl::loadDoc( const DocLnk &f) { FileManager fm; QString txt; if ( !fm.loadFile( f, txt ) ) { return; } view->setText(txt); } void NotesControl::slotViewEdited() { if(loaded) { edited=true; } } //=========================================================================== NotesApplet::NotesApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) { setFixedHeight( 18 ); setFixedWidth( 14 ); vc = new NotesControl; } NotesApplet::~NotesApplet() { } void NotesApplet::mousePressEvent( QMouseEvent *) { if( !vc->isHidden()) { vc->doPopulate=false; vc->save(); vc->close(); } else { // vc = new NotesControl; // QPoint curPos = mapToGlobal( rect().topLeft() ); vc->show(); vc->move( 5, 18); vc->doPopulate=true; vc->populateBox(); - vc->load(); - + vc->doPopulate=false; - this->setFocus(); + vc->load(); +// this->setFocus(); vc->view->setFocus(); } } void NotesApplet::paintEvent( QPaintEvent* ) { QPainter p(this); p.drawPixmap( 0, 1, ( const char** ) notes_xpm ); } |