1 /* This file is part of the KDE project
3 Copyright (C) 2002 by Patrick Charbonnier <pch@freeshell.org>
4 Based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
5 Copyright (C) 2006 Dario Massarin <nekkar@libero.it>
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public
9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version.
16 #include <ktoggleaction.h>
17 #include <kxmlguiwindow.h>
24 class DBusModelObserver
;
28 * The main window of KGet.
30 * Can be collapsed or expanded.
32 class MainWindow
: public KXmlGuiWindow
36 explicit MainWindow(bool showMainwindow
= true, bool startWithoutAnimation
= false, QWidget
*parent
= 0);
39 // from the DBUS interface
40 virtual void addTransfer(const QString
& src
, const QString
& destDir
= QString(),
42 virtual void showNewTransferDialog(const QStringList
&urls
);
43 virtual bool dropTargetVisible() const;
44 virtual void setDropTargetVisible( bool setVisible
);
45 virtual void setOfflineMode( bool online
);
46 virtual bool offlineMode() const;
47 virtual QVariantMap
transfers() const;
48 virtual int transfersSpeed() const;
49 virtual void setSystemTrayDownloading(bool running
);
50 virtual void importLinks(const QList
<QString
> &links
);
52 KSystemTrayIcon
*systemTray() const { return m_dock
;};
56 void slotImportUrl(const QString
&url
);
57 void slotUpdateTitlePercent();
60 // ignore/accept quit events
61 virtual void closeEvent( QCloseEvent
* );
64 virtual void dragEnterEvent(QDragEnterEvent
*);
65 virtual void dropEvent(QDropEvent
*);
67 // set sensitive initial size
68 virtual QSize
sizeHint() const;
71 // slots connected to actions
72 void slotToggleDropTarget();
73 void slotNewTransfer();
74 void slotImportTransfers();
75 void slotExportTransfers();
76 void slotExportPlainTransfers();
77 void slotPreferences();
78 void slotDeleteGroup();
79 void slotRenameGroup();
80 void slotSetIconGroup();
81 void slotStartDownload();
82 void slotStopDownload();
83 void slotConfigureNotifications();
84 void slotConfigureKeys();
85 void slotConfigureToolbars();
86 void slotToggleAutoPaste();
87 void slotTrayKonquerorIntegration(bool);
88 void slotKonquerorIntegration( bool );
89 void slotShowMenubar();
90 void slotTransferGroupSettings();
91 void slotTransferSettings();
94 void slotStopAllDownload();
95 void slotStopSelectedDownload();
96 void slotStartAllDownload();
97 void slotStartSelectedDownload();
98 void slotDeleteSelected();
99 void slotRedownloadSelected();
100 void slotTransfersOpenDest();
101 void slotTransfersOpenFile();
102 void slotTransfersShowDetails();
103 void slotTransfersCopySourceUrl();
104 void slotDeleteFinished();
107 void slotDelayedInit();
108 void slotSaveMyself();
109 void slotNewToolbarConfig();
110 void slotNewConfig();
111 void slotCheckClipboard();
112 void slotTransferHistory();
114 // import links slots
115 void slotShowListLinks();
118 void exportTransfers(bool plain
=false);
121 * Returns the completed percents of all active transfers
123 int transfersPercent();
125 // one-time functions
129 ViewsContainer
* m_viewsContainer
;
130 // dbus modelObserver to export the transfer percents
131 DBusModelObserver
*m_dbusModelObserver
;
138 KToggleAction
* m_autoPasteAction
;
139 KToggleAction
* m_menubarAction
;
140 KToggleAction
* m_konquerorIntegration
;
142 // for autopaste function
143 QString lastClipboard
;
144 // timer for checking clipboard - autopaste function
145 QTimer
*clipboardTimer
;
147 bool m_startWithoutAnimation
;
149 HttpServer
*m_webinterface
;
153 * Used to update the mainwindow caption when the groups percents change
155 class MainWindowGroupObserver
: public QObject
, public TransferGroupObserver
159 MainWindowGroupObserver(MainWindow
*window
);
160 virtual ~MainWindowGroupObserver() {}
162 virtual void groupChangedEvent(TransferGroupHandler
* group
);
164 /**virtual void addedTransferEvent(TransferHandler * transfer, TransferHandler * after);
166 virtual void removedTransferEvent(TransferHandler * transfer);
168 virtual void movedTransferEvent(TransferHandler * transfer, TransferHandler * after);**/
171 MainWindow
*m_window
;
174 class MainWindowModelObserver
: public QObject
, public ModelObserver
178 MainWindowModelObserver(MainWindow
*window
);
179 virtual ~MainWindowModelObserver (){}
181 virtual void addedTransferGroupEvent(TransferGroupHandler
* group
);
183 virtual void removedTransferGroupEvent(TransferGroupHandler
* group
);
186 MainWindow
*m_window
;
187 MainWindowGroupObserver
*m_groupObserver
;