diff options
Diffstat (limited to 'kget/tdemainwidget.h')
-rw-r--r-- | kget/tdemainwidget.h | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/kget/tdemainwidget.h b/kget/tdemainwidget.h new file mode 100644 index 00000000..cd2ce92d --- /dev/null +++ b/kget/tdemainwidget.h @@ -0,0 +1,233 @@ +/*************************************************************************** +* kmainwidget.h +* ------------------- +* +* Revision : $Id$ +* begin : Tue Jan 29 2002 +* copyright : (C) 2002 by Patrick Charbonnier +* : Based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss +* email : pch@freeshell.org +* +****************************************************************************/ + +/*************************************************************************** + * + * 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. + * + ***************************************************************************/ + + +#ifndef _KMAINWIDGET_H_ +#define _KMAINWIDGET_H_ + +#include <kmainwindow.h> +#include <kaction.h> +#include <kurl.h> +#include "common.h" + +#include "kget_iface.h" + +class TDEAction; +//class TDEToggleAction; +class TDERadioAction; + +class DockWidget; +class DropTarget; +class LogWindow; +class DlgPreferences; + +class Transfer; +class TransferList; +class Settings; + + +class TDEMainWidget:public TDEMainWindow, virtual public KGetIface +{ + + Q_OBJECT + + +public: + enum StatusbarFields { ID_TOTAL_TRANSFERS = 1, ID_TOTAL_FILES, ID_TOTAL_SIZE, + ID_TOTAL_TIME , ID_TOTAL_SPEED }; + + TDEMainWidget(bool bShowMain = false); + ~TDEMainWidget(); + + void addTransfer( const TQString& src ); + void addTransferEx( const KURL& url, + const KURL& destFile = KURL()); + + // dcop interface + virtual void addTransfers( const KURL::List& src, const TQString& destDir = TQString() ); + virtual bool isDropTargetVisible() const; + virtual void setDropTargetVisible( bool setVisible ); + + + void checkQueue(); + + void setListFont(); + void setAutoSave(); + void setAutoDisconnect(); + + LogWindow *logwin()const { return logWindow;} + friend class Settings; + + // Actions + TDEToggleAction *m_paShowLog; + TDEToggleAction *m_menubarAction; + TDEAction *m_paPreferences; + TDEAction *m_paQuit; + bool b_viewLogWindow; + + void readTransfersEx(const KURL & url); + + void activateDropTarget(); + +public slots: + void slotPasteTransfer(); + void slotToggleLogWindow(); + void slotPreferences(); + void slotConfigureNotifications(); + void slotToggleExpertMode(); + void slotToggleOfflineMode(); + void slotToggleUseLastDir(); + void slotToggleAutoDisconnect(); + void slotToggleAutoShutdown(); + void slotToggleAutoPaste(); + void slotToggleDropTarget(); + void slotToggleAnimation(); + void slotUpdateActions(); + void slotKonquerorIntegration(); + +protected slots: + void slotQuit(); + + void slotOpenTransfer(); + void slotExportTransfers(); + void slotImportTransfers(); + void slotImportTextFile(); + + void slotSaveYourself(); + void slotCheckConnection(); + + + void slotStatusChanged(Transfer * item, int _operation); + + void slotResumeCurrent(); + void slotPauseCurrent(); + void slotDeleteCurrent(); + void slotRestartCurrent(); + + void slotQueueCurrent(); + void slotTimerCurrent(); + void slotDelayCurrent(); + + void slotOpenIndividual(); + + void slotAnimTimeout(); + void slotTransferTimeout(); + void slotAutosaveTimeout(); + + void slotMoveToBegin(); + void slotMoveToEnd(); + + void slotCopyToClipboard(); + void slotCheckClipboard(); + + void slotConfigureToolbars(); + void slotNewToolbarConfig(); + void slotShowMenubar(); + + void slotPopupMenu(Transfer * item); + +protected: + virtual void setOfflineMode( bool online ); + virtual bool isOfflineMode() const; + virtual bool queryClose(); + void writeLog(); + + // drag and drop + virtual void dragEnterEvent(TQDragEnterEvent *); + virtual void dropEvent(TQDropEvent *); + + void readTransfers(bool ask_for_name = false); + void writeTransfers(bool ask_for_name = false); + + + void setupGUI(); + void setupWhatsThis(); + + void updateStatusBar(); + + // some flags + bool b_connected; + bool b_viewPreferences; + + // utility functions + void onlineDisconnect(); + void checkOnline(); + void stopAll(); + void log(const TQString & message, bool statusbar = true); + + /** No descriptions */ + virtual void customEvent(TQCustomEvent * e); + + // various timers + TQTimer *animTimer; // animation timer + TQTimer *connectionTimer; // timer that checks whether we are online + TQTimer *transferTimer; // timer for scheduled transfers + TQTimer *autosaveTimer; // timer for autosaving transfer list + TQTimer *clipboardTimer; // timer for checking clipboard - autopaste function + + TQString logFileName; + + + +private: + TQString getSaveDirectoryFor( const TQString& filename ) const; + bool sanityChecksSuccessful( const KURL& url ); + + TransferList * myTransferList; + KHelpMenu *menuHelp; + + LogWindow *logWindow; + DlgPreferences *prefDlg; + DockWidget *kdock; + + TQString lastClipboard; + + uint animCounter; + + int _sock; + + // Actions + TDEAction *m_paOpenTransfer, *m_paPasteTransfer, *m_paExportTransfers, *m_paImportTransfers; + TDEAction *m_paImportText; + + TDEAction *m_paMoveToBegin, *m_paMoveToEnd, *m_paCopy, *m_paIndividual; + TDEAction *m_paResume, *m_paPause, *m_paDelete, *m_paRestart; + TDERadioAction *m_paQueue, *m_paTimer, *m_paDelay; + + TDEToggleAction *m_paUseAnimation; + TDEToggleAction *m_paExpertMode, *m_paUseLastDir, *m_paOfflineMode; + TDEToggleAction *m_paAutoDisconnect, *m_paAutoShutdown, *m_paAutoPaste; + + TDEAction *m_paDropTarget; + TDEAction *m_paKonquerorIntegration; + bool m_showDropTarget; + +}; + +extern TDEMainWidget *kmain; +extern DropTarget *kdrop; + +#endif // _KMAINWIDGET_H_ |