You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/tdeio/tdeio/renamedlg.h

154 rivejä
5.7 KiB

/* 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