File indexing completed on 2024-12-01 09:53:45

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2000 Wilco Greven <greven@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef KURLREQUESTERDIALOG_H
0009 #define KURLREQUESTERDIALOG_H
0010 
0011 #include "kiowidgets_export.h"
0012 #include <QDialog>
0013 #include <QUrl>
0014 
0015 #include <memory>
0016 
0017 class KUrlRequester;
0018 class QFileDialog;
0019 class KUrlRequesterDialogPrivate;
0020 
0021 /**
0022  * @class KUrlRequesterDialog kurlrequesterdialog.h <KUrlRequesterDialog>
0023  *
0024  * Dialog in which a user can enter a filename or url. It is a dialog
0025  * encapsulating KUrlRequester.
0026  *
0027  * @short Simple dialog to enter a filename/url.
0028  * @author Wilco Greven <greven@kde.org>
0029  */
0030 class KIOWIDGETS_EXPORT KUrlRequesterDialog : public QDialog
0031 {
0032     Q_OBJECT
0033 
0034 public:
0035     /**
0036      * Constructs a KUrlRequesterDialog.
0037      *
0038      * @param url    The url of the directory to start in. Use QString()
0039      *               to start in the current working directory, or the last
0040      *               directory where a file has been selected.
0041      * @param parent The parent object of this widget.
0042      */
0043     explicit KUrlRequesterDialog(const QUrl &url, QWidget *parent = nullptr);
0044 
0045     /**
0046      * Constructs a KUrlRequesterDialog.
0047      *
0048      * @param url    The url of the directory to start in. Use QString()
0049      *               to start in the current working directory, or the last
0050      *               directory where a file has been selected.
0051      * @param text   Text of the label
0052      * @param parent The parent object of this widget.
0053      */
0054     KUrlRequesterDialog(const QUrl &url, const QString &text, QWidget *parent);
0055     /**
0056      * Destructs the dialog.
0057      */
0058     ~KUrlRequesterDialog() override;
0059 
0060     /**
0061      * Returns the fully qualified filename.
0062      */
0063     QUrl selectedUrl() const;
0064 
0065     /**
0066      * Creates a modal dialog, executes it and returns the selected URL.
0067      *
0068      * @param url This specifies the initial path of the input line.
0069      * @param parent The widget the dialog will be centered on initially.
0070      * @param title The title to use for the dialog.
0071      */
0072     static QUrl getUrl(const QUrl &url = QUrl(), QWidget *parent = nullptr, const QString &title = QString());
0073 
0074 #if KIOWIDGETS_ENABLE_DEPRECATED_SINCE(5, 0)
0075     /**
0076      * Returns a pointer to the file dialog used by the KUrlRequester.
0077      * @deprecated since 5.0, use urlRequester() methods instead.
0078      */
0079     KIOWIDGETS_DEPRECATED_VERSION(5, 0, "Use KUrlRequesterDialog::urlRequester() and methods on it")
0080     QFileDialog *fileDialog();
0081 #endif
0082 
0083     /**
0084      * Returns a pointer to the KUrlRequester.
0085      */
0086     KUrlRequester *urlRequester();
0087 
0088 private:
0089     friend class KUrlRequesterDialogPrivate;
0090     std::unique_ptr<KUrlRequesterDialogPrivate> const d;
0091 
0092     Q_DISABLE_COPY(KUrlRequesterDialog)
0093 };
0094 
0095 #endif // KURLREQUESTERDIALOG_H