KDevelop API Documentation

lib/util/ksavealldialog.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE project 00002 Copyright (C) 2002 Harald Fernengel <harry@kdevelop.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #include <qvbox.h> 00021 #include <qlabel.h> 00022 #include <qheader.h> 00023 00024 #include <klocale.h> 00025 #include <kpushbutton.h> 00026 #include <klistbox.h> 00027 #include <klistview.h> 00028 #include <kstdguiitem.h> 00029 00030 #include "ksavealldialog.h" 00031 00032 namespace 00033 { 00034 00035 class CheckURL : public QCheckListItem 00036 { 00037 public: 00038 CheckURL( QListView * lv, KURL const & url ) 00039 : QCheckListItem( lv, url.path(), QCheckListItem::CheckBox), 00040 _url( url ) 00041 {} 00042 00043 KURL const & url() const { return _url; } 00044 00045 private: 00046 KURL _url; 00047 }; 00048 00049 } 00050 00051 00052 KSaveSelectDialog::KSaveSelectDialog( KURL::List const & filelist, KURL::List const & ignorelist, QWidget * parent ) : 00053 KDialogBase( parent, "SaveAllDialog", true, i18n("Save Modified Files?"), 00054 Ok | User1 | Close ) 00055 { 00056 QVBox *top = makeVBoxMainWidget(); 00057 00058 (void)new QLabel( i18n("The following files have been modified. Save them?"), top ); 00059 00060 _listview = new KListView( top ); 00061 _listview->addColumn( "" ); 00062 _listview->header()->hide(); 00063 _listview->setResizeMode( QListView::LastColumn ); 00064 00065 setButtonOKText( i18n("Save &Selected"), i18n("Saves all selected files") ); 00066 setButtonText( User1, i18n("Save &None") ); 00067 setButtonText( Close, KStdGuiItem::cancel().text() ); 00068 setButtonTip( User1, i18n("Lose all modifications") ); 00069 setButtonTip( Close, i18n("Cancels the action") ); 00070 00071 KURL::List::ConstIterator it = filelist.begin(); 00072 while ( it != filelist.end() ) 00073 { 00074 if ( !ignorelist.contains( *it ) ) 00075 { 00076 QCheckListItem * x = new CheckURL( _listview, *it ); 00077 x->setOn( true ); 00078 } 00079 ++it; 00080 } 00081 00082 connect( this, SIGNAL(closeClicked()), this, SLOT(cancel()) ); 00083 connect( this, SIGNAL(okClicked()), this, SLOT(save()) ); 00084 connect( this, SIGNAL(user1Clicked()), this, SLOT(saveNone()) ); 00085 } 00086 00087 KSaveSelectDialog::~KSaveSelectDialog() {} 00088 00089 void KSaveSelectDialog::saveNone( ) 00090 { 00091 // deselect all 00092 CheckURL * item = static_cast<CheckURL*>( _listview->firstChild() ); 00093 while ( item ) 00094 { 00095 item->setOn( false ); 00096 item = static_cast<CheckURL*>( item->nextSibling() ); 00097 } 00098 00099 QDialog::accept(); 00100 } 00101 00102 void KSaveSelectDialog::save( ) 00103 { 00104 QDialog::accept(); 00105 } 00106 00107 void KSaveSelectDialog::cancel( ) 00108 { 00109 QDialog::reject(); 00110 } 00111 00112 KURL::List KSaveSelectDialog::filesToSave( ) 00113 { 00114 KURL::List filelist; 00115 CheckURL const * item = static_cast<CheckURL*>( _listview->firstChild() ); 00116 while ( item ) 00117 { 00118 if ( item->isOn() ) 00119 { 00120 filelist << item->url(); 00121 } 00122 item = static_cast<CheckURL*>( item->nextSibling() ); 00123 } 00124 return filelist; 00125 } 00126 00127 KURL::List KSaveSelectDialog::filesNotToSave( ) 00128 { 00129 KURL::List filelist; 00130 CheckURL const * item = static_cast<CheckURL*>( _listview->firstChild() ); 00131 while ( item ) 00132 { 00133 if ( ! item->isOn() ) 00134 { 00135 filelist << item->url(); 00136 } 00137 item = static_cast<CheckURL*>( item->nextSibling() ); 00138 } 00139 return filelist; 00140 } 00141 00142 00143 KSaveAllDialog::KSaveAllDialog( const QStringList& filenames, QWidget* parent ) : 00144 KDialogBase( parent, "SaveAllDialog", true, i18n("Save Modified Files?"), 00145 Ok | User1 | Close ) 00146 { 00147 m_result = Cancel; 00148 00149 QVBox *top = makeVBoxMainWidget(); 00150 00151 (void)new QLabel( i18n("The following files have been modified. Save them?"), top ); 00152 KListBox* lb = new KListBox( top ); 00153 lb->setMinimumHeight( lb->fontMetrics().height() * 5 ); 00154 lb->insertStringList( filenames ); 00155 00156 setButtonOKText( i18n("Save &All"), i18n("Saves all modified files") ); 00157 setButtonText( User1, i18n("Save &None") ); 00158 setButtonText( Close, KStdGuiItem::cancel().text() ); 00159 setButtonTip( User1, i18n("Lose all modifications") ); 00160 setButtonTip( Close, i18n("Cancels the action") ); 00161 00162 connect( this, SIGNAL(closeClicked()), this, SLOT(cancel()) ); 00163 connect( this, SIGNAL(okClicked()), this, SLOT(saveAll()) ); 00164 connect( this, SIGNAL(user1Clicked()), this, SLOT(revert()) ); 00165 } 00166 00167 KSaveAllDialog::~KSaveAllDialog() 00168 { 00169 } 00170 00171 void KSaveAllDialog::revert() 00172 { 00173 m_result = Revert; 00174 QDialog::accept(); 00175 } 00176 00177 void KSaveAllDialog::saveAll() 00178 { 00179 m_result = SaveAll; 00180 QDialog::accept(); 00181 } 00182 00183 void KSaveAllDialog::cancel() 00184 { 00185 m_result = Cancel; 00186 QDialog::reject(); 00187 } 00188 00189 #include "ksavealldialog.moc"
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:08 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003