File indexing completed on 2024-04-28 04:51:44
0001 /* 0002 SPDX-FileCopyrightText: 2023 Julius Künzel <jk.kdedev@smartlab.uber.space> 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #include <QDialog> 0007 #include <QElapsedTimer> 0008 #include <QSortFilterProxyModel> 0009 0010 #include "doc/documentcheckertreemodel.h" 0011 #include "ui_missingclips_ui.h" 0012 0013 class DCResolveDialog : public QDialog, public Ui::MissingClips_UI 0014 { 0015 Q_OBJECT 0016 0017 public: 0018 explicit DCResolveDialog(std::vector<DocumentChecker::DocumentResource> items, const QUrl &projectUrl, QWidget *parent = nullptr); 0019 0020 QList<DocumentChecker::DocumentResource> getItems(); 0021 0022 private: 0023 std::shared_ptr<DocumentCheckerTreeModel> m_model; 0024 std::unique_ptr<QSortFilterProxyModel> m_sortModel; 0025 QUrl m_url; 0026 QElapsedTimer m_searchTimer; 0027 0028 void slotEditCurrentItem(); 0029 void checkStatus(); 0030 void slotRecursiveSearch(); 0031 void setEnableChangeItems(bool enabled); 0032 void initProxyPanel(const std::vector<DocumentChecker::DocumentResource> &items); 0033 void updateStatusLabel(int missingClips, int missingClipsWithProxy, int removedClips, int placeholderClips, int missingProxies, int recoverableProxies); 0034 0035 std::vector<DocumentChecker::DocumentResource> m_proxies; 0036 0037 private Q_SLOTS: 0038 void newSelection(const QItemSelection &selected, const QItemSelection &deselected); 0039 };