File indexing completed on 2024-04-28 17:05:54

0001 /*
0002     SPDX-FileCopyrightText: 2005 Csaba Karai <krusader@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2005-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KURLLISTREQUESTER_H
0009 #define KURLLISTREQUESTER_H
0010 
0011 // QtGui
0012 #include <QKeyEvent>
0013 // QtWidgets
0014 #include <QToolButton>
0015 #include <QWidget>
0016 
0017 #include <KCompletion/KLineEdit>
0018 #include <KIOWidgets/KUrlCompletion>
0019 
0020 #include "../GUI/krlistwidget.h"
0021 
0022 /**
0023  * Widget for letting the user define a list of URLs.
0024  */
0025 class KURLListRequester : public QWidget
0026 {
0027     Q_OBJECT
0028 
0029 public:
0030     enum Mode { RequestFiles, RequestDirs };
0031 
0032     explicit KURLListRequester(Mode requestMode, QWidget *parent = nullptr);
0033 
0034     QList<QUrl> urlList();
0035     void setUrlList(const QList<QUrl> &);
0036 
0037     KLineEdit *lineEdit()
0038     {
0039         return urlLineEdit;
0040     }
0041     KrListWidget *listBox()
0042     {
0043         return urlListBox;
0044     }
0045 
0046     void setCompletionDir(const QUrl &dir)
0047     {
0048         completion.setDir(dir);
0049     }
0050 
0051 signals:
0052     void checkValidity(QString &text, QString &error);
0053     void changed();
0054 
0055 protected slots:
0056     void slotAdd();
0057     void slotBrowse();
0058     void slotRightClicked(QListWidgetItem *, const QPoint &);
0059 
0060 protected:
0061     void keyPressEvent(QKeyEvent *e) override;
0062     void deleteSelectedItems();
0063 
0064     Mode mode;
0065 
0066     KLineEdit *urlLineEdit;
0067     KrListWidget *urlListBox;
0068     QToolButton *urlAddBtn;
0069     QToolButton *urlBrowseBtn;
0070 
0071     KUrlCompletion completion;
0072 };
0073 
0074 #endif /* __KURLLISTREQUESTER_H__ */