mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-29 08:41:34 +00:00
Show progress dialog on updating content selection
This commit is contained in:
parent
0fc22b2b2d
commit
3955428f87
2 changed files with 16 additions and 9 deletions
|
@ -7,6 +7,7 @@
|
|||
#include <QClipboard>
|
||||
#include <QMenu>
|
||||
#include <QModelIndex>
|
||||
#include <QProgressDialog>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
ContentSelectorView::ContentSelector::ContentSelector(QWidget* parent, bool showOMWScripts)
|
||||
|
@ -292,27 +293,33 @@ void ContentSelectorView::ContentSelector::slotShowContextMenu(const QPoint& pos
|
|||
mContextMenu->exec(globalPos);
|
||||
}
|
||||
|
||||
void ContentSelectorView::ContentSelector::setCheckStateForMultiSelectedItems(bool checked)
|
||||
void ContentSelectorView::ContentSelector::setCheckStateForMultiSelectedItems(Qt::CheckState checkState)
|
||||
{
|
||||
Qt::CheckState checkState = checked ? Qt::Checked : Qt::Unchecked;
|
||||
for (const QModelIndex& index : ui->addonView->selectionModel()->selectedIndexes())
|
||||
const QModelIndexList selectedIndexes = ui->addonView->selectionModel()->selectedIndexes();
|
||||
|
||||
QProgressDialog progressDialog("Updating content selection", {}, 0, static_cast<int>(selectedIndexes.size()));
|
||||
progressDialog.setWindowModality(Qt::WindowModal);
|
||||
progressDialog.setValue(0);
|
||||
|
||||
for (qsizetype i = 0, n = selectedIndexes.size(); i < n; ++i)
|
||||
{
|
||||
QModelIndex sourceIndex = mAddonProxyModel->mapToSource(index);
|
||||
const QModelIndex sourceIndex = mAddonProxyModel->mapToSource(selectedIndexes[i]);
|
||||
|
||||
if (mContentModel->data(sourceIndex, Qt::CheckStateRole).toInt() != checkState)
|
||||
{
|
||||
mContentModel->setData(sourceIndex, checkState, Qt::CheckStateRole);
|
||||
}
|
||||
|
||||
progressDialog.setValue(static_cast<int>(i + 1));
|
||||
}
|
||||
}
|
||||
|
||||
void ContentSelectorView::ContentSelector::slotUncheckMultiSelectedItems()
|
||||
{
|
||||
setCheckStateForMultiSelectedItems(false);
|
||||
setCheckStateForMultiSelectedItems(Qt::Unchecked);
|
||||
}
|
||||
|
||||
void ContentSelectorView::ContentSelector::slotCheckMultiSelectedItems()
|
||||
{
|
||||
setCheckStateForMultiSelectedItems(true);
|
||||
setCheckStateForMultiSelectedItems(Qt::Checked);
|
||||
}
|
||||
|
||||
void ContentSelectorView::ContentSelector::slotCopySelectedItemsPaths()
|
||||
|
|
|
@ -69,7 +69,7 @@ namespace ContentSelectorView
|
|||
void buildAddonView();
|
||||
void buildContextMenu();
|
||||
void setGameFileSelected(int index, bool selected);
|
||||
void setCheckStateForMultiSelectedItems(bool checked);
|
||||
void setCheckStateForMultiSelectedItems(Qt::CheckState checkState);
|
||||
|
||||
signals:
|
||||
void signalCurrentGamefileIndexChanged(int);
|
||||
|
|
Loading…
Reference in a new issue