diff options
Diffstat (limited to 'tdeio/tdeio/renamedlg.h')
-rw-r--r-- | tdeio/tdeio/renamedlg.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/tdeio/tdeio/renamedlg.h b/tdeio/tdeio/renamedlg.h new file mode 100644 index 000000000..2183d05b6 --- /dev/null +++ b/tdeio/tdeio/renamedlg.h @@ -0,0 +1,153 @@ +/* This file is part of the KDE libraries + Copyright (C) 2000 Stephan Kulow <coolo@kde.org> + David Faure <faure@kde.org> + 2001 Holger Freyther <freyther@kde.org> + + 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 __tdeio_rename_dlg__ +#define __tdeio_rename_dlg__ + +#include <kurl.h> +#include <tqdialog.h> +#include <tqstring.h> +#include <sys/types.h> + +#include <tdeio/global.h> + +namespace TDEIO { + +// KDE4: get rid of M_OVERWRITE_ITSELF, trigger it internally if src==dest +enum RenameDlg_Mode { M_OVERWRITE = 1, M_OVERWRITE_ITSELF = 2, M_SKIP = 4, M_SINGLE = 8, M_MULTI = 16, M_RESUME = 32, M_NORENAME = 64 }; + +/** + * The result of open_RenameDlg(). + */ +enum RenameDlg_Result { R_RESUME = 6, R_RESUME_ALL = 7, R_OVERWRITE = 4, R_OVERWRITE_ALL = 5, R_SKIP = 2, R_AUTO_SKIP = 3, R_RENAME = 1, R_CANCEL = 0 }; + + +/** + * A dialog for the options to rename two files. + * @short A dialog for renaming files. + * @since 3.1 + */ +class TDEIO_EXPORT RenameDlg : public TQDialog +{ + Q_OBJECT +public: + /** + * Construct a "rename" dialog. + * @param parent parent widget (often 0) + * @param caption the caption for the dialog box + * @param src the url to the file/dir we're trying to copy, as it's part of the text message + * @param dest the path to destination file/dir, i.e. the one that already exists + * @param mode parameters for the dialog (which buttons to show...), + * @param sizeSrc size of source file + * @param sizeDest size of destination file + * @param ctimeSrc creation time of source file + * @param ctimeDest creation time of destination file + * @param mtimeSrc modification time of source file + * @param mtimeDest modification time of destination file + * @param modal set to true for a modal dialog + * @see RenameDlg_Mode + */ + RenameDlg( TQWidget *parent, const TQString & caption, + // KDE4: make those KURLs, and use pathOrURL() internally. + const TQString & src, const TQString & dest, + RenameDlg_Mode mode, + TDEIO::filesize_t sizeSrc = (TDEIO::filesize_t) -1, + TDEIO::filesize_t sizeDest = (TDEIO::filesize_t) -1, + time_t ctimeSrc = (time_t) -1, + time_t ctimeDest = (time_t) -1, + time_t mtimeSrc = (time_t) -1, + time_t mtimeDest = (time_t) -1, + bool modal = false ); + ~RenameDlg(); + + /** + * @return the new destination + * valid only if RENAME was chosen + */ + KURL newDestURL(); + + /** + * Given a directory path and a filename (which usually exists already), + * this function returns a suggested name for a file that doesn't exist + * in that directory. The existence is only checked for local urls though. + * The suggested file name is of the form foo_1 foo_2 etc. + * @since 3.4 + */ + static TQString suggestName(const KURL& baseURL, const TQString& oldName); + +public slots: + /// KDE4: rename to cancelPressed(), renamePressed() etc. + void b0Pressed(); + void b1Pressed(); + void b2Pressed(); + void b3Pressed(); + void b4Pressed(); + void b5Pressed(); + void b6Pressed(); + void b7Pressed(); + void b8Pressed(); + +protected slots: + void enableRenameButton(const TQString &); +private: + class RenameDlgPrivate; + RenameDlgPrivate *d; + void pluginHandling( ); +}; + + /** + * \addtogroup renamedlg "RenameDlg related Functions" + * @{ + * \relates TDEIO::RenameDlg + * Construct a modal, parent-less "rename" dialog, and return + * a result code, as well as the new dest. Much easier to use than the + * class RenameDlg directly. + + * @param caption the caption for the dialog box + * @param src the URL of the file/dir we're trying to copy, as it's part of the text message + * @param dest the URL of the destination file/dir, i.e. the one that already exists + * @param mode parameters for the dialog (which buttons to show...), + * see RenameDlg_Mode + * @param newDest the new destination path, valid if R_RENAME was returned. + * @param sizeSrc size of source file + * @param sizeDest size of destination file + * @param ctimeSrc creation time of source file + * @param ctimeDest creation time of destination file + * @param mtimeSrc modification time of source file + * @param mtimeDest modification time of destination file + * @return the result + */ +TDEIO_EXPORT RenameDlg_Result open_RenameDlg( const TQString & caption, + // KDE4: make those KURLs + const TQString& src, const TQString & dest, + RenameDlg_Mode mode, TQString& newDestPath, + TDEIO::filesize_t sizeSrc = (TDEIO::filesize_t) -1, + TDEIO::filesize_t sizeDest = (TDEIO::filesize_t) -1, + time_t ctimeSrc = (time_t) -1, + time_t ctimeDest = (time_t) -1, + time_t mtimeSrc = (time_t) -1, + time_t mtimeDest = (time_t) -1 + ); + +/*! @} */ + +} +#endif |