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 <QWidget>
0010 
0011 #include "fileListHelper.h"
0012 
0013 #include "ui_fileListBase.h"
0014 #include <KMessageWidget>
0015 
0016 class QVBoxLayout;
0017 
0018 class FileList : public QWidget, public Ui::FileListBase
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit FileList(QWidget *parent, const QString &descriptionText);
0023     ~FileList() override;
0024 
0025     int count() const;
0026 
0027     bool isEmpty() const;
0028 
0029     QStringList paths() const;
0030 
0031     void addPaths(const QStringList &paths);
0032 
0033 public Q_SLOTS:
0034     void removeAllItems();
0035 
0036 Q_SIGNALS:
0037     void fileListChanged();
0038 
0039 private:
0040     void slotLinkClicked(const QString &link);
0041 
0042 private Q_SLOTS:
0043 
0044     void updateButtons();
0045 
0046     void removeSelectedItem();
0047     void moveUpItem();
0048     void moveDownItem();
0049 
0050 protected Q_SLOTS:
0051     virtual void addItem();
0052 
0053     void modifyItem();
0054     void modifyItem(QListWidgetItem *item);
0055 
0056 protected:
0057     void removeItem(int id);
0058 
0059     void moveItem(int direction);
0060     void unselectAllItems();
0061 
0062     /**
0063      * Convenient method which returns the layout which manage the button list
0064      */
0065     QVBoxLayout *buttonsLayout();
0066 
0067     FileListHelper mFileListHelper;
0068 
0069     KMessageWidget *mWarningBox = nullptr;
0070 };