diff options
Diffstat (limited to 'kio/kfile/kencodingfiledialog.h')
-rw-r--r-- | kio/kfile/kencodingfiledialog.h | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/kio/kfile/kencodingfiledialog.h b/kio/kfile/kencodingfiledialog.h new file mode 100644 index 000000000..fbf3b34e6 --- /dev/null +++ b/kio/kfile/kencodingfiledialog.h @@ -0,0 +1,313 @@ +// -*- c++ -*- +/* This file is part of the KDE libraries + Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org> + 2003 Andras Mantia <amantia@freemail.hu> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef __KENCODINGFILEDIALOG_H__ +#define __KENCODINGFILEDIALOG_H__ + +#include <kfiledialog.h> + +struct KEncodingFileDialogPrivate; + +/** + * Provides a user (and developer) friendly way to + * select files with support for choosing encoding + * + * + * The dialog has been designed to allow applications to customise it + * by subclassing. It uses geometry management to ensure that subclasses + * can easily add children that will be incorporated into the layout. + */ + +class KIO_EXPORT KEncodingFileDialog : public KFileDialog +{ + Q_OBJECT + +public: + class Result { + public: + QStringList fileNames; + KURL::List URLs; + QString encoding; + }; + + /** + * Constructs a file dialog for text files with encoding selection possibility. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * + * @param encoding The encoding shown in the encoding combo. If it's + * QString::null, the global default encoding will be shown. + * + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * + * @param caption The caption of the dialog + * + * @param type This can either be + * @li Opening (open dialog, the default setting) + * @li Saving + * @param parent The parent widget of this dialog + * @param name The name of this object + * @param modal Whether to create a modal dialog or not + * + * @since 3.2 + */ + KEncodingFileDialog (const QString& startDir = QString::null, + const QString& encoding = QString::null, + const QString& filter = QString::null, + const QString& caption = QString::null, KFileDialog::OperationMode type = KFileDialog::Opening, + QWidget *parent= 0, const char *name="", bool modal = true); + /** + * Destructs the file dialog. + */ + ~KEncodingFileDialog(); + + + /** + * @returns The selected encoding if the constructor with the encoding parameter was used, otherwise QString::null. + */ + QString selectedEncoding() const; + + + /** + * Creates a modal file dialog and return the selected + * filename or an empty string if none was chosen additionally a chosen + * encoding value is returned. + * + * Note that with + * this method the user must select an existing filename. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getOpenFileNameAndEncoding(const QString& encoding=QString::null, + const QString& startDir= QString::null, + const QString& filter= QString::null, + QWidget *parent= 0, + const QString& caption = QString::null); + + /** + * Creates a modal file dialog and returns the selected encoding and the selected + * filenames or an empty list if none was chosen. + * + * Note that with + * this method the user must select an existing filename. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this. + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getOpenFileNamesAndEncoding(const QString& encoding=QString::null, + const QString& startDir= QString::null, + const QString& filter= QString::null, + QWidget *parent = 0, + const QString& caption= QString::null); + + /** + * Creates a modal file dialog and returns the selected encoding and + * URL or an empty string if none was chosen. + * + * Note that with + * this method the user must select an existing URL. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getOpenURLAndEncoding(const QString& encoding=QString::null, + const QString& startDir = QString::null, + const QString& filter= QString::null, + QWidget *parent= 0, + const QString& caption = QString::null); + + + + + /** + * Creates a modal file dialog and returns the selected encoding + * URLs or an empty list if none was chosen. + * + * Note that with + * this method the user must select an existing filename. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getOpenURLsAndEncoding(const QString& encoding=QString::null, + const QString& startDir= QString::null, + const QString& filter= QString::null, + QWidget *parent = 0, + const QString& caption= QString::null); + + + + /** + * Creates a modal file dialog and returns the selected encoding and + * filename or an empty string if none was chosen. + * + * Note that with this + * method the user need not select an existing filename. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li a relative path or a filename determining the + * directory to start in and the file to be selected. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getSaveFileNameAndEncoding(const QString& encoding=QString::null, + const QString& startDir=QString::null, + const QString& filter= QString::null, + QWidget *parent= 0, + const QString& caption = QString::null); + + + /** + * Creates a modal file dialog and returns the selected encoding and + * filename or an empty string if none was chosen. + * + * Note that with this + * method the user need not select an existing filename. + * + * @param startDir This can either be + * @li The URL of the directory to start in. + * @li a relative path or a filename determining the + * directory to start in and the file to be selected. + * @li QString::null to start in the current working + * directory, or the last directory where a file has been + * selected. + * @li ':<keyword>' to start in the directory last used + * by a filedialog in the same application that specified + * the same keyword. + * @li '::<keyword>' to start in the directory last used + * by a filedialog in any application that specified the + * same keyword. + * @param encoding The encoding shown in the encoding combo. + * @param filter This is a space separated list of shell globs. + * You can set the text to be displayed for the glob, and + * provide multiple globs. See setFilter() for details on + * how to do this... + * @param parent The widget the dialog will be centered on initially. + * @param caption The name of the dialog widget. + */ + static Result getSaveURLAndEncoding(const QString& encoding=QString::null, + const QString& startDir= QString::null, + const QString& filter= QString::null, + QWidget *parent= 0, + const QString& caption = QString::null); + + + +protected: + virtual void virtual_hook( int id, void* data ); +private: + KEncodingFileDialogPrivate *d; +}; + +#endif |