1/* This file is part of the KDE libraries
2 Copyright (C) 2000 Wilco Greven <greven@kde.org>
3
4 library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19
20
21#ifndef KURLREQUESTERDIALOG_H
22#define KURLREQUESTERDIALOG_H
23
24#include <kio/kio_export.h>
25#include <kdialog.h>
26#include <kurl.h>
27
28class KUrlRequester;
29class KFileDialog;
30class KUrlRequesterDialogPrivate;
31/**
32 * Dialog in which a user can enter a filename or url. It is a dialog
33 * encapsulating KUrlRequester. The API is derived from
34 * KFileDialog.
35 *
36 * @short Simple dialog to enter a filename/url.
37 * @author Wilco Greven <greven@kde.org>
38 */
39class KIO_EXPORT KUrlRequesterDialog : public KDialog
40{
41 Q_OBJECT
42
43public:
44 /**
45 * Constructs a KUrlRequesterDialog.
46 *
47 * @param url The url of the directory to start in. Use QString()
48 * to start in the current working directory, or the last
49 * directory where a file has been selected.
50 * @param parent The parent object of this widget.
51 */
52 explicit KUrlRequesterDialog(const QString &url, QWidget *parent = 0);
53
54 /**
55 * Constructs a KUrlRequesterDialog.
56 *
57 * @param url The url of the directory to start in. Use QString()
58 * to start in the current working directory, or the last
59 * directory where a file has been selected.
60 * @param text Text of the label
61 * @param parent The parent object of this widget.
62 */
63 KUrlRequesterDialog( const QString& url, const QString& text,
64 QWidget *parent);
65 /**
66 * Destructs the dialog.
67 */
68 ~KUrlRequesterDialog();
69
70 /**
71 * Returns the fully qualified filename.
72 */
73 KUrl selectedUrl() const;
74
75 /**
76 * Creates a modal dialog, executes it and returns the selected URL.
77 *
78 * @param url This specifies the initial path of the input line.
79 * @param parent The widget the dialog will be centered on initially.
80 * @param caption The caption to use for the dialog.
81 */
82 static KUrl getUrl(const QString& url = QString(),
83 QWidget *parent= 0, const QString& caption = QString());
84
85 /**
86 * Returns a pointer to the file dialog used by the KUrlRequester.
87 */
88 KFileDialog * fileDialog();
89 /**
90 * Returns a pointer to the KUrlRequester.
91 */
92 KUrlRequester *urlRequester();
93
94private:
95 friend class KUrlRequesterDialogPrivate;
96 KUrlRequesterDialogPrivate *const d;
97
98 Q_DISABLE_COPY(KUrlRequesterDialog)
99
100 Q_PRIVATE_SLOT(d, void _k_slotClear())
101 Q_PRIVATE_SLOT(d, void _k_slotTextChanged(const QString &))
102};
103
104#endif // KURLREQUESTERDIALOG_H
105
106// vim:ts=4:sw=4:tw=78
107