From: Karai C. <ck...@us...> - 2005-10-10 09:32:14
|
Update of /cvsroot/krusader/krusader_kde3/krusader/KViewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28947/krusader_kde3/krusader/KViewer Modified Files: krviewer.cpp panelviewer.cpp panelviewer.h Log Message: FIXED: viewer doesn't warning to save the window at close, and ignores "Cancel" Index: krviewer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** krviewer.cpp 1 Oct 2005 21:17:47 -0000 1.38 --- krviewer.cpp 10 Oct 2005 09:32:06 -0000 1.39 *************** *** 223,229 **** PanelViewerBase* pvb = static_cast<PanelViewerBase*>(w); manager.removePart(pvb->part()); tabBar.removePage(w); ! viewerDict.remove(tabBar.indexOf(w)); if( tabBar.count() <= 0 ){ --- 223,238 ---- PanelViewerBase* pvb = static_cast<PanelViewerBase*>(w); + + if( !pvb->queryClose() ) + return; + manager.removePart(pvb->part()); + + if( !pvb->closeURL() ) + return; + + long key = tabBar.indexOf(w); tabBar.removePage(w); ! viewerDict.remove( key ); if( tabBar.count() <= 0 ){ *************** *** 242,245 **** --- 251,262 ---- bool KrViewer::queryClose() { + QIntDictIterator<PanelViewerBase> it( viewerDict ); + for ( ; it.current(); ++it ) { + PanelViewerBase* pvb = viewerDict[ it.currentKey() ]; + tabBar.setCurrentPage(tabBar.indexOf(pvb)); + + if( !pvb->queryClose() ) + return false; + } return true; } *************** *** 309,313 **** label.truncate(label.length()-2); label.append(")"); ! QIconSet icon = QIconSet(krLoader->loadIcon(MODIFIED_ICON,KIcon::Small)); tabBar.changeTab(pvb,icon,label); --- 326,330 ---- label.truncate(label.length()-2); label.append(")"); ! QIconSet icon = QIconSet(krLoader->loadIcon(EDIT_ICON,KIcon::Small)); tabBar.changeTab(pvb,icon,label); Index: panelviewer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/panelviewer.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** panelviewer.cpp 1 Oct 2005 17:13:31 -0000 1.9 --- panelviewer.cpp 10 Oct 2005 09:32:06 -0000 1.10 *************** *** 25,29 **** PanelViewerBase::PanelViewerBase( QWidget *parent ) : ! QWidgetStack( parent ) { setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Ignored ) ); --- 25,29 ---- PanelViewerBase::PanelViewerBase( QWidget *parent ) : ! QWidgetStack( parent ), mimes( 0 ), cpart( 0 ) { setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Ignored ) ); *************** *** 198,202 **** PanelEditor::~PanelEditor() { - static_cast<KParts::ReadWritePart *>(cpart)->queryClose(); } --- 198,201 ---- *************** *** 245,255 **** } ! bool PanelEditor::closeURL() { ! raiseWidget( fallback ); if ( !cpart ) return false; ! ! static_cast<KParts::ReadWritePart *>(cpart)->queryClose(); ! static_cast<KParts::ReadWritePart *>(cpart)->closeURL(true); return true; } --- 244,259 ---- } ! bool PanelEditor::queryClose() { ! if ( !cpart ) return true; ! return static_cast<KParts::ReadWritePart *>(cpart)->queryClose(); ! } + bool PanelEditor::closeURL() { if ( !cpart ) return false; ! ! static_cast<KParts::ReadWritePart *>(cpart)->closeURL( false ); ! ! raiseWidget( fallback ); ! cpart = 0; return true; } Index: panelviewer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/panelviewer.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** panelviewer.h 1 Oct 2005 17:13:31 -0000 1.8 --- panelviewer.h 10 Oct 2005 09:32:06 -0000 1.9 *************** *** 27,30 **** --- 27,31 ---- virtual KParts::ReadOnlyPart* openURL( const KURL&, KrViewer::Mode=KrViewer::Generic ){ return 0;} virtual bool closeURL(){ return false; } + virtual bool queryClose() { return true; } signals: *************** *** 65,68 **** --- 66,70 ---- KParts::ReadOnlyPart* openURL( const KURL &url, KrViewer::Mode mode=KrViewer::Generic ); bool closeURL(); + bool queryClose(); void slotStatResult( KIO::Job* job ); |