From: Karai C. <ck...@us...> - 2005-10-27 13:33:09
|
Update of /cvsroot/krusader/krusader_kde3/krusader/KViewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25694/krusader_kde3/krusader/KViewer Modified Files: krviewer.cpp krviewer.h Log Message: FIXED: new viewer tabs were sometimes added to windows different from the previously used ones Index: krviewer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** krviewer.cpp 21 Oct 2005 09:20:25 -0000 1.44 --- krviewer.cpp 27 Oct 2005 13:32:51 -0000 1.45 *************** *** 51,55 **** ! KrViewer* KrViewer::viewer = NULL; KrViewer::KrViewer( QWidget *parent, const char *name ) : --- 51,55 ---- ! QPtrList<KrViewer> KrViewer::viewers; KrViewer::KrViewer( QWidget *parent, const char *name ) : *************** *** 119,123 **** this, SLOT( createGUI( KParts::Part* ) ) ); ! if( this == viewer ) viewer = NULL; } --- 119,123 ---- this, SLOT( createGUI( KParts::Part* ) ) ); ! viewers.remove( this ); } *************** *** 158,171 **** KrViewer* KrViewer::getViewer(bool new_window){ if( !new_window ){ ! if( !viewer ){ ! viewer = new KrViewer( krApp ); } else { ! viewer->raise(); ! viewer->setActiveWindow(); } ! return viewer; } - else return new KrViewer( krApp ); } --- 158,175 ---- KrViewer* KrViewer::getViewer(bool new_window){ if( !new_window ){ ! if( !viewers.first() ){ ! viewers.prepend( new KrViewer( krApp ) ); // add to first (active) } else { ! viewers.first()->raise(); ! viewers.first()->setActiveWindow(); } ! return viewers.first(); ! } ! else { ! KrViewer *newViewer = new KrViewer( krApp ); ! viewers.prepend( newViewer ); ! return newViewer; } } *************** *** 247,251 **** // set this viewer to be the main viewer ! viewer = this; } --- 251,255 ---- // set this viewer to be the main viewer ! if( viewers.remove( this ) ) viewers.prepend( this ); // move to first } *************** *** 390,393 **** --- 394,402 ---- } + void KrViewer::windowActivationChange ( bool oldActive ) { + if( isActiveWindow() ) + if( viewers.remove( this ) ) viewers.prepend( this ); // move to first + } + #if 0 bool KrViewer::editGeneric( QString mimetype, KURL _url ) { Index: krviewer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** krviewer.h 15 Oct 2005 22:24:32 -0000 1.22 --- krviewer.h 27 Oct 2005 13:32:51 -0000 1.23 *************** *** 20,23 **** --- 20,24 ---- #include <qwidget.h> + #include <qptrlist.h> #include <kparts/mainwindow.h> #include <ktempfile.h> *************** *** 38,41 **** --- 39,44 ---- Q_OBJECT public: + virtual ~KrViewer(); + enum Mode{Generic,Text,Hex}; *************** *** 67,76 **** virtual bool queryClose(); virtual bool queryExit(); ! void focusInEvent( QFocusEvent * ){ viewer = this; } private: KrViewer( QWidget *parent = 0, const char *name = 0 ); - ~KrViewer(); void addTab(PanelViewerBase* pvb, QString msg,QString iconName, KParts::Part* part); static KrViewer* getViewer(bool new_window); --- 70,79 ---- virtual bool queryClose(); virtual bool queryExit(); + virtual void windowActivationChange ( bool oldActive ); ! virtual void focusInEvent( QFocusEvent * ){ if( viewers.remove( this ) ) viewers.prepend( this ); } // move to first private: KrViewer( QWidget *parent = 0, const char *name = 0 ); void addTab(PanelViewerBase* pvb, QString msg,QString iconName, KParts::Part* part); static KrViewer* getViewer(bool new_window); *************** *** 83,87 **** int detachActionIndex; ! static KrViewer* viewer; }; --- 86,90 ---- int detachActionIndex; ! static QPtrList<KrViewer> viewers; // the first viewer is the active one }; |