forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user