VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox4/include/VBoxDownloaderWgt.h@ 9729

Last change on this file since 9729 was 9729, checked in by vboxsync, 16 years ago

Backed out 32068 - see comment #163 in bug #2664.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 3.2 KB
Line 
1/** @file
2 *
3 * VBox frontends: Qt GUI ("VirtualBox"):
4 * VBoxDownloaderWgt class declaration
5 */
6
7/*
8 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 * Clara, CA 95054 USA or visit http://www.sun.com if you need
20 * additional information or have any questions.
21 */
22
23#ifndef __VBoxDownloaderWgt_h__
24#define __VBoxDownloaderWgt_h__
25
26#include "HappyHttp.h"
27#include "QIWithRetranslateUI.h"
28
29/* Qt includes */
30#include <QWidget>
31#include <QUrl>
32#include <QMutex>
33
34class QStatusBar;
35class QAction;
36class QProgressBar;
37class QToolButton;
38class QThread;
39class QTimer;
40typedef happyhttp::Connection HConnect;
41
42/** class VBoxDownloaderWgt
43 *
44 * The VBoxDownloaderWgt class is an QWidget class for Guest Additions
45 * http backgroung downloading. This class is also used to display the
46 * Guest Additions download state through the progress dialog integrated
47 * into the VM console status bar.
48 */
49class VBoxDownloaderWgt : public QIWithRetranslateUI<QWidget>
50{
51 Q_OBJECT;
52
53public:
54
55 VBoxDownloaderWgt (QStatusBar *aStatusBar, QAction *aAction,
56 const QString &aUrl, const QString &aTarget);
57
58
59 bool isCheckingPresence() { return mIsChecking; }
60
61protected:
62
63 void retranslateUi();
64
65private slots:
66
67 /* This slot is used to control the connection timeout. */
68 void processTimeout();
69
70 /* This slot is used to process cancel-button clicking signal. */
71 void processAbort();
72
73 /* This slot is used to terminate the downloader, activate the
74 * Install Guest Additions action and removing the downloader's
75 * sub-widgets from the VM Console status-bar. */
76 void suicide();
77
78private:
79
80 /* Used to process all the widget events */
81 bool event (QEvent *aEvent);
82
83 /* This function is used to make a request to get a file */
84 void getFile();
85
86 /* This function is used to ask the user about he wants to download the
87 * founded Guest Additions image or not. It also shows the progress-bar
88 * and Cancel-button widgets. */
89 void processFile (int aSize);
90
91 /* This wrapper displays an error message box (unless @aReason is
92 * QString::null) with the cause of the download procedure
93 * termination. After the message box is dismissed, the downloader signals
94 * to close itself on the next event loop iteration. */
95 void abortDownload (const QString &aReason = QString::null);
96
97 void abortConnection();
98
99 QUrl mUrl;
100 QString mTarget;
101 QStatusBar *mStatusBar;
102 QAction *mAction;
103 QProgressBar *mProgressBar;
104 QToolButton *mCancelButton;
105 bool mIsChecking;
106 bool mSuicide;
107 HConnect *mConn;
108 QThread *mRequestThread;
109 QMutex mMutex;
110 QByteArray mDataArray;
111 QDataStream mDataStream;
112 QTimer *mTimeout;
113};
114
115#endif
116
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette