1 /***************************************************************************
2 * Copyright 2007 Dukju Ahn <dukjuahn@gmail.com> *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
9 ***************************************************************************/
11 #include "svnrevertwidgets.h"
13 #include "svnmodels.h"
15 #include <QTreeWidget>
19 SvnRevertOptionDlg::SvnRevertOptionDlg( KDevSubversionPart
*part
, QWidget
*parent
)
20 : KDialog(parent
), m_part(part
)
22 ui
.setupUi( mainWidget() );
23 setCaption( i18n("Subversion Revert") );
24 setButtons( KDialog::Ok
| KDialog::Cancel
);
27 SvnRevertOptionDlg::~SvnRevertOptionDlg()
30 void SvnRevertOptionDlg::setCandidates( const KUrl::List
&urls
)
32 foreach( KUrl _url
, urls
){
33 QFileInfo
fileInfo(_url
.toLocalFile());
35 if( fileInfo
.isFile() ){
36 QList
<SvnStatusHolder
> holderList
= m_part
->statusSync( _url
, false, true, false ).values();
37 if( holderList
.count() < 1 ){
38 insertRow( _url
, "unknown", "unknown" );
41 if( holderList
.at(0).wcPath
== _url
.toLocalFile() ){
43 SvnStatusHolder::statusToString( holderList
.at(0).textStatus
),
44 SvnStatusHolder::statusToString( holderList
.at(0).propStatus
) );
47 insertRow( _url
, "unknown", "unknown" );
52 else if( fileInfo
.isDir() ){
53 // FIXME this code adds every items whose status is not normal. Should we allow
54 // only added/removed/modified here?
55 QList
<SvnStatusHolder
> holderList
= m_part
->statusSync( _url
, true, false, false, true ).values();
56 foreach( SvnStatusHolder _holder
, holderList
){
58 if( _holder
.textStatus
!= svn_wc_status_unversioned
&&
59 _holder
.textStatus
!= svn_wc_status_none
)
61 insertRow( _holder
.wcPath
,
62 SvnStatusHolder::statusToString( _holder
.textStatus
),
63 SvnStatusHolder::statusToString( _holder
.propStatus
) );
70 KUrl::List
SvnRevertOptionDlg::candidates()
74 QTreeWidgetItemIterator
it( ui
.treeWidget
, QTreeWidgetItemIterator::Checked
);
76 QString path
= (*it
)->text( 3 );
82 bool SvnRevertOptionDlg::recurse()
84 return ui
.recursive
->isChecked();
87 void SvnRevertOptionDlg::insertRow( const KUrl
&url
, const QString
&textStat
, const QString
&propStat
)
90 list
<< "" << textStat
<< propStat
<< url
.toLocalFile() ;
91 QTreeWidgetItem
*item
= new QTreeWidgetItem( ui
.treeWidget
, list
);
92 item
->setCheckState(0, Qt::Checked
);
95 #include "svnrevertwidgets.moc"