Changeset View
Changeset View
Standalone View
Standalone View
krusader/Synchronizer/synchronizertask.h
Show All 26 Lines | |||||
27 | #include <KIO/Job> | 27 | #include <KIO/Job> | ||
28 | 28 | | |||
29 | class Synchronizer; | 29 | class Synchronizer; | ||
30 | class SynchronizerDirList; | 30 | class SynchronizerDirList; | ||
31 | class SynchronizerFileItem; | 31 | class SynchronizerFileItem; | ||
32 | class QTimer; | 32 | class QTimer; | ||
33 | class QFile; | 33 | class QFile; | ||
34 | 34 | | |||
35 | #define ST_STATE_NEW 0 | 35 | #define ST_STATE_NEW 0 | ||
36 | #define ST_STATE_PENDING 1 | 36 | #define ST_STATE_PENDING 1 | ||
37 | #define ST_STATE_STATUS 2 | 37 | #define ST_STATE_STATUS 2 | ||
38 | #define ST_STATE_READY 3 | 38 | #define ST_STATE_READY 3 | ||
39 | #define ST_STATE_ERROR 4 | 39 | #define ST_STATE_ERROR 4 | ||
40 | 40 | | |||
41 | class SynchronizerTask : public QObject | 41 | class SynchronizerTask : public QObject | ||
42 | { | 42 | { | ||
43 | Q_OBJECT | 43 | Q_OBJECT | ||
44 | 44 | | |||
45 | public: | 45 | public: | ||
46 | SynchronizerTask() : QObject(), m_state(ST_STATE_NEW), m_statusMessage(QString()) {} | 46 | SynchronizerTask() : QObject(), m_state(ST_STATE_NEW), m_statusMessage(QString()) {} | ||
47 | virtual ~SynchronizerTask() {} | 47 | virtual ~SynchronizerTask() {} | ||
48 | 48 | | |||
49 | inline int start(QWidget *parentWidget) { | 49 | inline int start(QWidget *parentWidget) | ||
50 | this->parentWidget = parentWidget; start(); return state(); | 50 | { | ||
51 | this->parentWidget = parentWidget; | ||||
52 | start(); | ||||
53 | return state(); | ||||
51 | } | 54 | } | ||
52 | 55 | | |||
53 | inline int state() { | 56 | inline int state() { return m_state; } | ||
54 | return m_state; | | |||
55 | } | | |||
56 | 57 | | |||
57 | void setStatusMessage(const QString & statMsg) { | 58 | void setStatusMessage(const QString &statMsg) | ||
59 | { | ||||
58 | if (m_state == ST_STATE_PENDING || m_state == ST_STATE_STATUS) | 60 | if (m_state == ST_STATE_PENDING || m_state == ST_STATE_STATUS) | ||
59 | m_state = ST_STATE_STATUS; | 61 | m_state = ST_STATE_STATUS; | ||
60 | m_statusMessage = statMsg; | 62 | m_statusMessage = statMsg; | ||
61 | } | 63 | } | ||
62 | 64 | | |||
63 | QString status() { | 65 | QString status() | ||
66 | { | ||||
64 | if (m_state == ST_STATE_STATUS) { | 67 | if (m_state == ST_STATE_STATUS) { | ||
65 | m_state = ST_STATE_PENDING; | 68 | m_state = ST_STATE_PENDING; | ||
66 | return m_statusMessage; | 69 | return m_statusMessage; | ||
67 | } | 70 | } | ||
68 | return QString(); | 71 | return QString(); | ||
69 | } | 72 | } | ||
70 | 73 | | |||
71 | protected: | 74 | protected: | ||
72 | virtual void start() {} | 75 | virtual void start() {} | ||
73 | int m_state; | 76 | int m_state; | ||
74 | QString m_statusMessage; | 77 | QString m_statusMessage; | ||
75 | QWidget *parentWidget; | 78 | QWidget *parentWidget; | ||
76 | }; | 79 | }; | ||
77 | 80 | | |||
78 | | ||||
79 | class CompareTask : public SynchronizerTask | 81 | class CompareTask : public SynchronizerTask | ||
80 | { | 82 | { | ||
81 | Q_OBJECT | 83 | Q_OBJECT | ||
82 | 84 | | |||
83 | public: | 85 | public: | ||
84 | CompareTask(SynchronizerFileItem *parentIn, const QString &leftURL, | 86 | CompareTask(SynchronizerFileItem *parentIn, const QUrl &left, const QUrl &right, | ||
85 | const QString &rightURL, const QString &leftDir, | 87 | const QString &leftDir, const QString &rightDir, bool hidden); | ||
86 | const QString &rightDir, bool ignoreHidden); | 88 | | ||
87 | CompareTask(SynchronizerFileItem *parentIn, const QString &urlIn, | 89 | CompareTask(SynchronizerFileItem *parentIn, const QUrl &url, const QString &dir, | ||
88 | const QString &dirIn, bool isLeftIn, bool ignoreHidden); | 90 | bool isLeftIn, bool ignoreHidden); | ||
89 | virtual ~CompareTask(); | 91 | virtual ~CompareTask(); | ||
90 | 92 | | |||
91 | inline bool isDuplicate() { | 93 | inline bool isDuplicate() { return m_duplicate; } | ||
92 | return m_duplicate; | 94 | inline bool isLeft() { return !m_duplicate && m_isLeft; } | ||
93 | } | 95 | inline const QString &leftDir() { return m_dir; } | ||
94 | inline bool isLeft() { | 96 | inline const QString &rightDir() { return m_otherDir; } | ||
95 | return !m_duplicate && m_isLeft; | 97 | inline const QString &dir() { return m_dir; } | ||
96 | } | 98 | inline SynchronizerFileItem *parent() { return m_parent; } | ||
97 | inline const QString & leftURL() { | 99 | inline SynchronizerDirList *leftDirList() { return m_dirList; } | ||
98 | return m_url; | 100 | inline SynchronizerDirList *rightDirList() { return m_otherDirList; } | ||
99 | } | 101 | inline SynchronizerDirList *dirList() { return m_dirList; } | ||
100 | inline const QString & rightURL() { | | |||
101 | return m_otherUrl; | | |||
102 | } | | |||
103 | inline const QString & leftDir() { | | |||
104 | return m_dir; | | |||
105 | } | | |||
106 | inline const QString & rightDir() { | | |||
107 | return m_otherDir; | | |||
108 | } | | |||
109 | inline const QString & url() { | | |||
110 | return m_url; | | |||
111 | } | | |||
112 | inline const QString & dir() { | | |||
113 | return m_dir; | | |||
114 | } | | |||
115 | inline SynchronizerFileItem * parent() { | | |||
116 | return m_parent; | | |||
117 | } | | |||
118 | inline SynchronizerDirList * leftDirList() { | | |||
119 | return m_dirList; | | |||
120 | } | | |||
121 | inline SynchronizerDirList * rightDirList() { | | |||
122 | return m_otherDirList; | | |||
123 | } | | |||
124 | inline SynchronizerDirList * dirList() { | | |||
125 | return m_dirList; | | |||
126 | } | | |||
127 | 102 | | |||
128 | protected slots: | 103 | protected slots: | ||
129 | virtual void start(); | 104 | virtual void start(); | ||
130 | void slotFinished(bool result); | 105 | void slotFinished(bool result); | ||
131 | void slotOtherFinished(bool result); | 106 | void slotOtherFinished(bool result); | ||
132 | 107 | | |||
133 | private: | 108 | private: | ||
134 | SynchronizerFileItem * m_parent; | 109 | SynchronizerFileItem *m_parent; | ||
135 | QString m_url; | 110 | const QUrl m_url; | ||
136 | QString m_dir; | 111 | const QString m_dir; | ||
137 | QString m_otherUrl; | 112 | const QUrl m_otherUrl; | ||
138 | QString m_otherDir; | 113 | const QString m_otherDir; | ||
139 | bool m_isLeft; | 114 | bool m_isLeft; | ||
140 | bool m_duplicate; | 115 | bool m_duplicate; | ||
141 | SynchronizerDirList * m_dirList; | 116 | SynchronizerDirList *m_dirList; | ||
142 | SynchronizerDirList * m_otherDirList; | 117 | SynchronizerDirList *m_otherDirList; | ||
143 | bool m_loadFinished; | 118 | bool m_loadFinished; | ||
144 | bool m_otherLoadFinished; | 119 | bool m_otherLoadFinished; | ||
145 | bool ignoreHidden; | 120 | bool ignoreHidden; | ||
146 | }; | 121 | }; | ||
147 | 122 | | |||
148 | | ||||
149 | class CompareContentTask : public SynchronizerTask | 123 | class CompareContentTask : public SynchronizerTask | ||
150 | { | 124 | { | ||
151 | Q_OBJECT | 125 | Q_OBJECT | ||
152 | 126 | | |||
153 | public: | 127 | public: | ||
154 | CompareContentTask(Synchronizer *, SynchronizerFileItem *, const QUrl &, const QUrl &, KIO::filesize_t); | 128 | CompareContentTask(Synchronizer *, SynchronizerFileItem *, const QUrl &, const QUrl &, | ||
129 | KIO::filesize_t); | ||||
155 | virtual ~CompareContentTask(); | 130 | virtual ~CompareContentTask(); | ||
156 | 131 | | |||
157 | public slots: | 132 | public slots: | ||
158 | void slotDataReceived(KIO::Job *job, const QByteArray &data); | 133 | void slotDataReceived(KIO::Job *job, const QByteArray &data); | ||
159 | void slotFinished(KJob *job); | 134 | void slotFinished(KJob *job); | ||
160 | void sendStatusMessage(); | 135 | void sendStatusMessage(); | ||
161 | 136 | | |||
162 | protected: | 137 | protected: | ||
163 | virtual void start(); | 138 | virtual void start(); | ||
164 | 139 | | |||
165 | protected slots: | 140 | protected slots: | ||
166 | void localFileCompareCycle(); | 141 | void localFileCompareCycle(); | ||
167 | 142 | | |||
168 | private: | 143 | private: | ||
169 | void abortContentComparing(); | 144 | void abortContentComparing(); | ||
170 | 145 | | |||
171 | QUrl leftURL; // the currently processed URL (left) | 146 | const QUrl left; // the currently processed URL (left) | ||
172 | QUrl rightURL; // the currently processed URL (right) | 147 | const QUrl right; // the currently processed URL (right) | ||
173 | KIO::filesize_t size; // the size of the compared files | 148 | KIO::filesize_t size; // the size of the compared files | ||
174 | 149 | | |||
175 | bool errorPrinted; // flag indicates error | 150 | bool errorPrinted; // flag indicates error | ||
176 | KIO::TransferJob *leftReadJob; // compare left read job | 151 | KIO::TransferJob *leftReadJob; // compare left read job | ||
177 | KIO::TransferJob *rightReadJob; // compare right read job | 152 | KIO::TransferJob *rightReadJob; // compare right read job | ||
178 | QByteArray compareArray; // the array for comparing | 153 | QByteArray compareArray; // the array for comparing | ||
179 | int owner; // the owner of the compare array | 154 | int owner; // the owner of the compare array | ||
180 | SynchronizerFileItem *item; // the item for content compare | 155 | SynchronizerFileItem *item; // the item for content compare | ||
Show All 10 Lines |