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