author | pohly <pohly> | 2005-05-05 14:39:33 (UTC) |
---|---|---|
committer | pohly <pohly> | 2005-05-05 14:39:33 (UTC) |
commit | 39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91 (patch) (side-by-side diff) | |
tree | 96e66fdc18dca4d4ab8611133e072f57dea224b9 /noncore/apps/opie-reader/CHM.cpp | |
parent | 279fc4fd1986074acbadd3a8e86fcf3968a8dd5c (diff) | |
download | opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.zip opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.tar.gz opie-39fbfd5eb7e45d73d38e8a2ce9437a3d7e1b8e91.tar.bz2 |
new opie-reader sources with support for ArriereGo, Reb input and flite output plugins
Diffstat (limited to 'noncore/apps/opie-reader/CHM.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CHM.cpp | 35 |
1 files changed, 23 insertions, 12 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 @@ #include "chm_lib.h" #include <qstring.h> #include <qstringlist.h> #include <stdio.h> #include <qimage.h> #include <qpixmap.h> +#ifdef USEQPE +#include <qpe/global.h> +#endif #ifndef __STATIC extern "C" { CExpander* newcodec() { return new CHM; } } @@ -46,49 +49,54 @@ CHM::CHM() { CHM::~CHM() { if (chmFile != NULL) chm_close(chmFile); } -void CHM::suspend() {
+void CHM::suspend() { #ifdef USEQPE bSuspended = true; //suspos = gztell(file); chm_close(chmFile); chmFile = NULL; - sustime = time(NULL);
+ sustime = time(NULL); #endif } -void CHM::unsuspend() {
+void CHM::unsuspend() { #ifdef USEQPE if (bSuspended) { bSuspended = false; int delay = time(NULL) - sustime; - if (delay < 10)
- sleep(10-delay);
+ if (delay < 10) + { + Global::statusMessage("Stalling"); + sleep(10-delay); + } chmFile = chm_open(fname); for (int i = 0; chmFile == NULL && i < 5; i++) { + Global::statusMessage("Stalling"); sleep(5); chmFile = chm_open(fname); } if (chmFile == NULL) { QMessageBox::warning(NULL, PROGNAME, "Couldn't reopen file"); exit(0); } //suspos = gzseek(file, suspos, SEEK_SET); - }
+ } #endif } void CHM::addContent(QString content) { chmBuffer += content; } void CHM::FillHomeContent() { +unsuspend(); if (chmHHCPath != "") { const char *ext; char buffer[65536]; unsigned int swath, offset; QString tmp=""; QString HTML=""; @@ -159,12 +167,13 @@ void CHM::FillHomeContent() { m_currentend = m_currentstart+chmBuffer.length(); } } bool CHM::FillBuffer() { +unsuspend(); bool bRetVal = false; char buffer[65536]; int swath, offset; chmBuffer = ""; swath = 65536; offset = 0; @@ -193,12 +202,13 @@ bool CHM::FillBuffer() m_currentstart = m_ui.start; m_currentend = m_currentstart+chmBuffer.length(); return bRetVal; } bool CHM::FillContent() { +unsuspend(); bool bRetVal = false; if (chmPath != "") { /* try to find the file */ const char *filename = (const char *)chmPath; if (chm_resolve_object(chmFile, filename, &m_ui) != CHM_RESOLVE_SUCCESS) { @@ -236,13 +246,14 @@ bool CHM::FillContent() { m_currentend = m_currentstart+chmBuffer.length(); bRetVal = true; } return bRetVal; } -bool CHM::getFile(const QString& href) { +bool CHM::getFile(const QString& _href, const QString& ) { + QString href = "/" + _href; qDebug("Got:%s", (const char*)href); bool bRetVal = false; QString temp = chmPath; chmPath = href; if (FillContent()) { qDebug("Got it"); @@ -316,17 +327,17 @@ int CHM::OpenFile(const char *src) { return (chmFile==NULL); } int CHM::getch() { if ( (bufpos+1) >= chmBuffer.length() ) return EOF; -#ifdef _WINDOWS
- QChar letter = chmBuffer.at(bufpos++);
-#else
- QChar letter = chmBuffer[bufpos++];
-#endif
+#ifdef _WINDOWS + QChar letter = chmBuffer.at(bufpos++); +#else + QChar letter = chmBuffer[bufpos++]; +#endif return (int)(char)letter; } void CHM::getch(tchar& ch, CStyle& sty) { int ich = getch(); |