// vim: set tabstop=4 shiftwidth=4 noexpandtab /* Gwenview - A simple image viewer for KDE Copyright 2000-2004 Aurélien Gâteau This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef FILEOPOBJECT_H #define FILEOPOBJECT_H // TQt includes #include #include // KDE includes #include #include class TQWidget; namespace Gwenview { /** * This class is a base class for wrappers to KIO slaves asynchronous * file operations. These classes handle all steps of a file operation : * - asking the user what to do with a file * - performing the operation * - showing result dialogs * * All these classes are used by the @FileOperation namespace-like class */ class FileOpObject : public TQObject { Q_OBJECT TQ_OBJECT public: FileOpObject(const KURL&,TQWidget* parent=0L); FileOpObject(const KURL::List&,TQWidget* parent=0L); virtual void operator()()=0; signals: void success(); protected slots: virtual void slotResult(KIO::Job*); protected: TQWidget* mParent; KURL::List mURLList; void polishJob(KIO::Job*); }; class FileOpCopyToObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpCopyToObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpCopyToObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpLinkToObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpLinkToObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpLinkToObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpMoveToObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpMoveToObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpMoveToObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpMakeDirObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpMakeDirObject(const KURL& url, TQWidget* parent=0L) : FileOpObject(url, parent) {} void operator()(); }; class FileOpDelObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpDelObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpDelObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpTrashObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpTrashObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpTrashObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpRealDeleteObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpRealDeleteObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} FileOpRealDeleteObject(const KURL::List& urlList,TQWidget* parent=0L) : FileOpObject(urlList,parent) {} void operator()(); }; class FileOpRenameObject : public FileOpObject { Q_OBJECT TQ_OBJECT public: FileOpRenameObject(const KURL& url,TQWidget* parent=0L) : FileOpObject(url,parent) {} void operator()(); signals: void renamed(const TQString& newName); protected slots: virtual void slotResult(KIO::Job*); private: TQString mNewFilename; }; } // namespace #endif