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 <QIcon>
0010 #include <QUrl>
0011 #include <QWidget>
0012 
0013 class QAction;
0014 class QPushButton;
0015 
0016 /**
0017  * Class which maintains common behavior between
0018  * FileList classes
0019  */
0020 class FileListHelper : public QObject
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit FileListHelper(QWidget *parent);
0026     ~FileListHelper() override;
0027 
0028     QStringList findPaths(const QList<QUrl> &urls);
0029     bool isValidFile(const QUrl &url);
0030     QStringList expandJoker(const QUrl &url);
0031 
0032     QList<QUrl> openUrls() const;
0033     QUrl openUrl(const QString &originPath) const;
0034 
0035     /**
0036      * Change the enabled status of the button and of its QActions
0037      */
0038     void setEnabledAction(QPushButton *button, bool enabled);
0039 
0040     /**
0041      * TODO Do this inline (and remove this method)
0042      */
0043     void prepareButton(QPushButton *button, const QIcon &icon, const QObject *receiver, const char *member, QWidget *fileList);
0044 
0045     QAction *prepareButtonAndAction(QPushButton *button, const QIcon &icon);
0046     QAction *prepareButtonAndAction(QPushButton *button, const QIcon &icon, const QObject *receiver, const char *member);
0047 
0048 private:
0049     QWidget *const mParent = nullptr;
0050 };