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 };