VCS Clean Dialog: Added "Select All" checkbox

Change-Id: I5bff60b1aa1985926efb6b850be958f48d67a029
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
This commit is contained in:
Petar Perisin
2013-03-26 17:27:17 +01:00
parent 0bac4d861d
commit eebee3311d
3 changed files with 43 additions and 4 deletions

View File

@@ -170,6 +170,8 @@ CleanDialog::CleanDialog(QWidget *parent) :
d->ui.filesTreeView->setRootIsDecorated(false);
connect(d->ui.filesTreeView, SIGNAL(doubleClicked(QModelIndex)),
this, SLOT(slotDoubleClicked(QModelIndex)));
connect(d->ui.selectAllCheckBox, SIGNAL(clicked(bool)), this, SLOT(selectAllItems(bool)));
connect(d->ui.filesTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(updateSelectAllCheckBox()));
}
CleanDialog::~CleanDialog()
@@ -193,6 +195,9 @@ void CleanDialog::setFileList(const QString &workingDirectory, const QStringList
for (int c = 0; c < d->m_filesModel->columnCount(); c++)
d->ui.filesTreeView->resizeColumnToContents(c);
if (ignoredFiles.isEmpty())
d->ui.selectAllCheckBox->setChecked(true);
}
void CleanDialog::addFile(const QString &workingDirectory, QString fileName, bool checked)
@@ -278,6 +283,31 @@ void CleanDialog::slotDoubleClicked(const QModelIndex &index)
}
}
void CleanDialog::selectAllItems(bool checked)
{
if (const int rowCount = d->m_filesModel->rowCount()) {
for (int r = 0; r < rowCount; ++r) {
QStandardItem *item = d->m_filesModel->item(r, 0);
item->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
}
}
}
void CleanDialog::updateSelectAllCheckBox()
{
bool checked = true;
if (const int rowCount = d->m_filesModel->rowCount()) {
for (int r = 0; r < rowCount; ++r) {
const QStandardItem *item = d->m_filesModel->item(r, 0);
if (item->checkState() == Qt::Unchecked) {
checked = false;
break;
}
}
d->ui.selectAllCheckBox->setChecked(checked);
}
}
void CleanDialog::changeEvent(QEvent *e)
{
QDialog::changeEvent(e);