/*************************************************************************** * Copyright 2007 Dukju Ahn * * Copyright 2008 Evgeniy Ivanov * * Copyright 2011 Andrey Batyiev * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "vcscommitdialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../vcsjob.h" #include "../interfaces/ibasicversioncontrol.h" #include "../interfaces/idistributedversioncontrol.h" #include "../interfaces/icentralizedversioncontrol.h" #include "../vcsstatusinfo.h" #include "../models/vcsfilechangesmodel.h" #include "ui_vcscommitdialog.h" #include #include namespace KDevelop { class VcsCommitDialogPrivate { public: Ui::VcsCommitDialog ui; IPatchSource* m_patchSource; VcsFileChangesModel* m_model; }; VcsCommitDialog::VcsCommitDialog( IPatchSource *patchSource, QWidget *parent ) : KDialog( parent ), d(new VcsCommitDialogPrivate()) { d->ui.setupUi( mainWidget() ); QWidget *customWidget = patchSource->customWidget(); if( customWidget ) { d->ui.gridLayout->addWidget( customWidget, 0, 0, 1, 2 ); } setButtons( KDialog::Ok | KDialog::Cancel ); d->m_patchSource = patchSource; d->m_model = new VcsFileChangesModel( this, true ); d->ui.files->setModel( d->m_model ); connect(this, SIGNAL(okClicked()), SLOT(ok()) ); connect(this, SIGNAL(cancelClicked()), SLOT(cancel()) ); } VcsCommitDialog::~VcsCommitDialog() { delete d; } void VcsCommitDialog::setRecursive( bool recursive ) { d->ui.recursiveChk->setChecked( recursive ); } void VcsCommitDialog::setCommitCandidates( const QList& statuses ) { foreach( const VcsStatusInfo& info, statuses ) { d->m_model->updateState( info ); } } bool VcsCommitDialog::recursive() const { return d->ui.recursiveChk->isChecked(); } void VcsCommitDialog::ok() { if( d->m_patchSource->finishReview( d->m_model->checkedUrls() ) ) { deleteLater(); } } void VcsCommitDialog::cancel() { d->m_patchSource->cancelReview(); } }