File indexing completed on 2024-05-19 05:49:14
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QButtonGroup> 0010 #include <QWidget> 0011 0012 #include <KMessageWidget> 0013 0014 #include "fileListHelper.h" 0015 0016 #include "ui_multipleFileListBase.h" 0017 0018 class MultipleFileList : public QWidget, public Ui::MultipleFileListBase 0019 { 0020 Q_OBJECT 0021 0022 public: 0023 MultipleFileList(QWidget *parent, const QString &descriptionText); 0024 ~MultipleFileList() override; 0025 0026 bool isOneOfCategoryEmpty() const; 0027 0028 QStringList paths(int categoryIndex); 0029 0030 void addPaths(int categoryIndex, const QStringList &paths); 0031 0032 int addCategory(const QString &itemName, const QString &buttonName); 0033 0034 public Q_SLOTS: 0035 void removeAllItems(); 0036 0037 Q_SIGNALS: 0038 void fileListChanged(); 0039 0040 private Q_SLOTS: 0041 0042 void updateButtons(); 0043 0044 void removeSelectedItem(); 0045 void moveUpItem(); 0046 void moveDownItem(); 0047 0048 protected Q_SLOTS: 0049 void addItem(QAbstractButton *button); 0050 0051 void modifyItem(); 0052 void modifyItem(QTreeWidgetItem *item); 0053 0054 protected: 0055 void addItemInternal(QTreeWidgetItem *categoryItem, const QString &path); 0056 void moveItem(int direction); 0057 void unselectAllItems(); 0058 0059 void updateEmptyItems(); 0060 void removeEmptyItems(); 0061 0062 void addEmptyItem(QTreeWidgetItem *item); 0063 bool isEmptyItem(QTreeWidgetItem *item) const; 0064 0065 bool isFileListsEmpty() const; 0066 int categoryCount(int index) const; 0067 0068 QTreeWidgetItem *findCategoryOfChild(QTreeWidgetItem *childItem); 0069 0070 FileListHelper mFileListHelper; 0071 0072 QButtonGroup mAddButtons; 0073 0074 private: 0075 KMessageWidget *mWarningBox = nullptr; 0076 bool mMissingFiles = false; 0077 };