Diffstat (limited to 'noncore/apps/opie-reader/CHM.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CHM.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/noncore/apps/opie-reader/CHM.cpp b/noncore/apps/opie-reader/CHM.cpp index 88d53bf..ace5abc 100644 --- a/noncore/apps/opie-reader/CHM.cpp +++ b/noncore/apps/opie-reader/CHM.cpp | |||
@@ -2,12 +2,15 @@ | |||
2 | #include "chm_lib.h" | 2 | #include "chm_lib.h" |
3 | #include <qstring.h> | 3 | #include <qstring.h> |
4 | #include <qstringlist.h> | 4 | #include <qstringlist.h> |
5 | #include <stdio.h> | 5 | #include <stdio.h> |
6 | #include <qimage.h> | 6 | #include <qimage.h> |
7 | #include <qpixmap.h> | 7 | #include <qpixmap.h> |
8 | #ifdef USEQPE | ||
9 | #include <qpe/global.h> | ||
10 | #endif | ||
8 | 11 | ||
9 | #ifndef __STATIC | 12 | #ifndef __STATIC |
10 | extern "C" | 13 | extern "C" |
11 | { | 14 | { |
12 | CExpander* newcodec() { return new CHM; } | 15 | CExpander* newcodec() { return new CHM; } |
13 | } | 16 | } |
@@ -63,15 +66,19 @@ void CHM::unsuspend() { | |||
63 | #ifdef USEQPE | 66 | #ifdef USEQPE |
64 | if (bSuspended) | 67 | if (bSuspended) |
65 | { | 68 | { |
66 | bSuspended = false; | 69 | bSuspended = false; |
67 | int delay = time(NULL) - sustime; | 70 | int delay = time(NULL) - sustime; |
68 | if (delay < 10) | 71 | if (delay < 10) |
72 | { | ||
73 | Global::statusMessage("Stalling"); | ||
69 | sleep(10-delay); | 74 | sleep(10-delay); |
75 | } | ||
70 | chmFile = chm_open(fname); | 76 | chmFile = chm_open(fname); |
71 | for (int i = 0; chmFile == NULL && i < 5; i++) { | 77 | for (int i = 0; chmFile == NULL && i < 5; i++) { |
78 | Global::statusMessage("Stalling"); | ||
72 | sleep(5); | 79 | sleep(5); |
73 | chmFile = chm_open(fname); | 80 | chmFile = chm_open(fname); |
74 | } | 81 | } |
75 | if (chmFile == NULL) { | 82 | if (chmFile == NULL) { |
76 | QMessageBox::warning(NULL, PROGNAME, "Couldn't reopen file"); | 83 | QMessageBox::warning(NULL, PROGNAME, "Couldn't reopen file"); |
77 | exit(0); | 84 | exit(0); |
@@ -83,12 +90,13 @@ void CHM::unsuspend() { | |||
83 | 90 | ||
84 | void CHM::addContent(QString content) { | 91 | void CHM::addContent(QString content) { |
85 | chmBuffer += content; | 92 | chmBuffer += content; |
86 | } | 93 | } |
87 | 94 | ||
88 | void CHM::FillHomeContent() { | 95 | void CHM::FillHomeContent() { |
96 | unsuspend(); | ||
89 | if (chmHHCPath != "") { | 97 | if (chmHHCPath != "") { |
90 | const char *ext; | 98 | const char *ext; |
91 | char buffer[65536]; | 99 | char buffer[65536]; |
92 | unsigned int swath, offset; | 100 | unsigned int swath, offset; |
93 | QString tmp=""; | 101 | QString tmp=""; |
94 | QString HTML=""; | 102 | QString HTML=""; |
@@ -159,12 +167,13 @@ void CHM::FillHomeContent() { | |||
159 | m_currentend = m_currentstart+chmBuffer.length(); | 167 | m_currentend = m_currentstart+chmBuffer.length(); |
160 | } | 168 | } |
161 | } | 169 | } |
162 | 170 | ||
163 | bool CHM::FillBuffer() | 171 | bool CHM::FillBuffer() |
164 | { | 172 | { |
173 | unsuspend(); | ||
165 | bool bRetVal = false; | 174 | bool bRetVal = false; |
166 | char buffer[65536]; | 175 | char buffer[65536]; |
167 | int swath, offset; | 176 | int swath, offset; |
168 | chmBuffer = ""; | 177 | chmBuffer = ""; |
169 | swath = 65536; | 178 | swath = 65536; |
170 | offset = 0; | 179 | offset = 0; |
@@ -193,12 +202,13 @@ bool CHM::FillBuffer() | |||
193 | m_currentstart = m_ui.start; | 202 | m_currentstart = m_ui.start; |
194 | m_currentend = m_currentstart+chmBuffer.length(); | 203 | m_currentend = m_currentstart+chmBuffer.length(); |
195 | return bRetVal; | 204 | return bRetVal; |
196 | } | 205 | } |
197 | 206 | ||
198 | bool CHM::FillContent() { | 207 | bool CHM::FillContent() { |
208 | unsuspend(); | ||
199 | bool bRetVal = false; | 209 | bool bRetVal = false; |
200 | if (chmPath != "") { | 210 | if (chmPath != "") { |
201 | /* try to find the file */ | 211 | /* try to find the file */ |
202 | const char *filename = (const char *)chmPath; | 212 | const char *filename = (const char *)chmPath; |
203 | if (chm_resolve_object(chmFile, filename, &m_ui) != CHM_RESOLVE_SUCCESS) | 213 | if (chm_resolve_object(chmFile, filename, &m_ui) != CHM_RESOLVE_SUCCESS) |
204 | { | 214 | { |
@@ -236,13 +246,14 @@ bool CHM::FillContent() { | |||
236 | m_currentend = m_currentstart+chmBuffer.length(); | 246 | m_currentend = m_currentstart+chmBuffer.length(); |
237 | bRetVal = true; | 247 | bRetVal = true; |
238 | } | 248 | } |
239 | return bRetVal; | 249 | return bRetVal; |
240 | } | 250 | } |
241 | 251 | ||
242 | bool CHM::getFile(const QString& href) { | 252 | bool CHM::getFile(const QString& _href, const QString& ) { |
253 | QString href = "/" + _href; | ||
243 | qDebug("Got:%s", (const char*)href); | 254 | qDebug("Got:%s", (const char*)href); |
244 | bool bRetVal = false; | 255 | bool bRetVal = false; |
245 | QString temp = chmPath; | 256 | QString temp = chmPath; |
246 | chmPath = href; | 257 | chmPath = href; |
247 | if (FillContent()) { | 258 | if (FillContent()) { |
248 | qDebug("Got it"); | 259 | qDebug("Got it"); |