summaryrefslogtreecommitdiffstats
path: root/bibletime/frontend/btinstallmgr.h
blob: fab0cfd36ca40ab9cc7c6e5abdcbb090cf6499d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*********
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
* Copyright 1999-2006 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/



#ifndef BTINSTALLMGR_H
#define BTINSTALLMGR_H


//BibleTIme includes
#include "backend/cswordbackend.h"


//sword includes
#include <installmgr.h>
#include <ftptrans.h>

//Qt includes
#include <tqobject.h>
#include <tqptrlist.h>
#include <tqstring.h>
#include <tqstringlist.h>

namespace BookshelfManager {

	typedef TQPtrList<sword::InstallSource> InstallSourceList;

	/**Our own reimplementation to provide status bar updates.
	  *@author The BibleTime team
	  */
class BTInstallMgr : public TQObject, public sword::InstallMgr, public sword::StatusReporter {
		Q_OBJECT
public:
		class Tool {
public:
			class LocalConfig {
public:
				static const TQString swordConfigFilename();
				static TQStringList targetList();
				static void setTargetList( const TQStringList& );
private:
				LocalConfig() {}
				;
			};

			class RemoteConfig {
public:
				static void initConfig();
				static const TQString configPath();
				static const TQString configFilename();

				static void resetRemoteSources();
				static void resetLocalSources();

				static TQStringList sourceList( sword::InstallMgr* );
				static sword::InstallSource source( sword::InstallMgr*, const TQString& name );
				static const bool isRemoteSource( sword::InstallSource* is );
				static void addSource( sword::InstallSource* );
				static void removeSource( sword::InstallMgr*, sword::InstallSource* );


private:
				RemoteConfig() {}
				;
			};

			static CSwordBackend* backend( sword::InstallSource* const );

private:
			Tool() {}
			;
		};

		BTInstallMgr();
		virtual ~BTInstallMgr();

protected:
		/* Reimplementations of method in StatusReporter */
		virtual void statusUpdate(double dltotal, double dlnow);
		virtual void preStatus(long totalBytes, long completedBytes, const char *message);

// 		virtual FTPTransport *createFTPTransport(const char *host, StatusReporter *statusReporter);

		long m_totalBytes;
		long m_completedBytes;

signals: // Signals
		void completed( const int, const int );
		/**
		* Emitted when a new file gets downloaded.
		*/
		void downloadStarted( const TQString& );
	};

}

#endif