home *** CD-ROM | disk | FTP | other *** search
- // -*- 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
-