1 /***************************************************************************
6 * begin : Tue Jan 29 2002
7 * copyright : (C) 2002 by Patrick Charbonnier
8 * : Based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
9 * email : pch@freeshell.org
11 ****************************************************************************/
13 /***************************************************************************
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
25 ***************************************************************************/
28 #ifndef _KMAINWIDGET_H_
29 #define _KMAINWIDGET_H_
31 #include <kmainwindow.h>
36 #include "kget_iface.h"
39 //class KToggleAction;
52 class KMainWidget
:public KMainWindow
, virtual public KGetIface
58 enum StatusbarFields
{ ID_TOTAL_TRANSFERS
= 1, ID_TOTAL_FILES
, ID_TOTAL_SIZE
,
59 ID_TOTAL_TIME
, ID_TOTAL_SPEED
};
61 KMainWidget(bool bShowMain
= false);
64 void addTransfer( const QString
& src
);
65 void addTransferEx( const KURL
& url
,
66 const KURL
& destFile
= KURL());
69 virtual void addTransfers( const KURL::List
& src
, const QString
& destDir
= QString::null
);
70 virtual bool isDropTargetVisible() const;
71 virtual void setDropTargetVisible( bool setVisible
);
78 void setAutoDisconnect();
80 LogWindow
*logwin()const { return logWindow
;}
81 friend class Settings
;
84 KToggleAction
*m_paShowLog
;
85 KAction
*m_paPreferences
;
89 void readTransfersEx(const KURL
& url
);
91 void activateDropTarget();
94 void slotPasteTransfer();
95 void slotToggleLogWindow();
96 void slotPreferences();
97 void slotConfigureNotifications();
98 void slotToggleExpertMode();
99 void slotToggleOfflineMode();
100 void slotToggleUseLastDir();
101 void slotToggleAutoDisconnect();
102 void slotToggleAutoShutdown();
103 void slotToggleAutoPaste();
104 void slotToggleDropTarget();
105 void slotToggleAnimation();
106 void slotUpdateActions();
111 void slotOpenTransfer();
112 void slotExportTransfers();
113 void slotImportTransfers();
114 void slotImportTextFile();
116 void slotSaveYourself();
117 void slotCheckConnection();
120 void slotStatusChanged(Transfer
* item
, int _operation
);
122 void slotResumeCurrent();
123 void slotPauseCurrent();
124 void slotDeleteCurrent();
125 void slotRestartCurrent();
127 void slotQueueCurrent();
128 void slotTimerCurrent();
129 void slotDelayCurrent();
131 void slotOpenIndividual();
133 void slotAnimTimeout();
134 void slotTransferTimeout();
135 void slotAutosaveTimeout();
137 void slotMoveToBegin();
138 void slotMoveToEnd();
140 void slotCopyToClipboard();
141 void slotCheckClipboard();
143 void slotConfigureToolbars();
144 void slotNewToolbarConfig();
146 void slotPopupMenu(Transfer
* item
);
149 virtual void setOfflineMode( bool online
);
150 virtual bool isOfflineMode() const;
151 virtual bool queryClose();
155 virtual void dragEnterEvent(QDragEnterEvent
*);
156 virtual void dropEvent(QDropEvent
*);
158 void readTransfers(bool ask_for_name
= false);
159 void writeTransfers(bool ask_for_name
= false);
163 void setupWhatsThis();
165 void updateStatusBar();
169 bool b_viewPreferences
;
172 void onlineDisconnect();
175 void log(const QString
& message
, bool statusbar
= true);
177 /** No descriptions */
178 virtual void customEvent(QCustomEvent
* e
);
181 QTimer
*animTimer
; // animation timer
182 QTimer
*connectionTimer
; // timer that checks whether we are online
183 QTimer
*transferTimer
; // timer for scheduled transfers
184 QTimer
*autosaveTimer
; // timer for autosaving transfer list
185 QTimer
*clipboardTimer
; // timer for checking clipboard - autopaste function
192 QString
getSaveDirectoryFor( const QString
& filename
) const;
193 bool sanityChecksSuccessful( const KURL
& url
);
195 TransferList
* myTransferList
;
198 LogWindow
*logWindow
;
199 DlgPreferences
*prefDlg
;
202 QString lastClipboard
;
209 KAction
*m_paOpenTransfer
, *m_paPasteTransfer
, *m_paExportTransfers
, *m_paImportTransfers
;
210 KAction
*m_paImportText
;
212 KAction
*m_paMoveToBegin
, *m_paMoveToEnd
, *m_paCopy
, *m_paIndividual
;
213 KAction
*m_paResume
, *m_paPause
, *m_paDelete
, *m_paRestart
;
214 KRadioAction
*m_paQueue
, *m_paTimer
, *m_paDelay
;
216 KToggleAction
*m_paUseAnimation
;
217 KToggleAction
*m_paExpertMode
, *m_paUseLastDir
, *m_paOfflineMode
;
218 KToggleAction
*m_paAutoDisconnect
, *m_paAutoShutdown
, *m_paAutoPaste
;
220 KAction
*m_paDropTarget
;
221 bool m_showDropTarget
;
225 extern KMainWidget
*kmain
;
226 extern DropTarget
*kdrop
;
228 #endif // _KMAINWIDGET_H_