/* This file is part of the KDE libraries Copyright (C) 2000 Stephan Kulow David Faure 2001 Holger Freyther 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 #include #include #include #include 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