summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/ZText.h
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/ZText.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/ZText.h39
1 files changed, 35 insertions, 4 deletions
diff --git a/noncore/apps/opie-reader/ZText.h b/noncore/apps/opie-reader/ZText.h
index ab81a5e..06e3bf8 100644
--- a/noncore/apps/opie-reader/ZText.h
+++ b/noncore/apps/opie-reader/ZText.h
@@ -14,4 +14,6 @@ public:
14 { 14 {
15#ifdef USEQPE 15#ifdef USEQPE
16 if (!bSuspended)
17 {
16 bSuspended = true; 18 bSuspended = true;
17 suspos = gztell(file); 19 suspos = gztell(file);
@@ -19,4 +21,5 @@ public:
19 file = NULL; 21 file = NULL;
20 sustime = time(NULL); 22 sustime = time(NULL);
23 }
21#endif 24#endif
22 } 25 }
@@ -27,6 +30,9 @@ public:
27 { 30 {
28 bSuspended = false; 31 bSuspended = false;
32 if (sustime != ((time_t)-1))
33 {
29 int delay = time(NULL) - sustime; 34 int delay = time(NULL) - sustime;
30 if (delay < 10) sleep(10-delay); 35 if (delay < 10) sleep(10-delay);
36 }
31 file = gzopen(fname, "rb"); 37 file = gzopen(fname, "rb");
32 for (int i = 0; file == NULL && i < 5; i++) 38 for (int i = 0; file == NULL && i < 5; i++)
@@ -47,5 +53,11 @@ public:
47 virtual ~Text() 53 virtual ~Text()
48 { 54 {
49 if (file != NULL) gzclose(file); 55 if (file != NULL)
56 {
57#ifdef USEQPE
58 unsuspend();
59#endif
60 gzclose(file);
61 }
50 } 62 }
51 int OpenFile(const char *src) 63 int OpenFile(const char *src)
@@ -57,7 +69,25 @@ public:
57 return ((file = gzopen(src,"rb")) == NULL); 69 return ((file = gzopen(src,"rb")) == NULL);
58 } 70 }
59 int getch() { return gzgetc(file); } 71 int getch()
60 unsigned int locate() { return gztell(file); } 72 {
61 void locate(unsigned int n) { gzseek(file,n,SEEK_SET); } 73#ifdef USEQPE
74 unsuspend();
75#endif
76 return gzgetc(file);
77 }
78 unsigned int locate()
79 {
80#ifdef USEQPE
81 unsuspend();
82#endif
83 return gztell(file);
84 }
85 void locate(unsigned int n)
86 {
87#ifdef USEQPE
88 unsuspend();
89#endif
90 gzseek(file,n,SEEK_SET);
91 }
62 bool hasrandomaccess() { return true; } 92 bool hasrandomaccess() { return true; }
63 void sizes(unsigned long& _file, unsigned long& _text) 93 void sizes(unsigned long& _file, unsigned long& _text)
@@ -82,4 +112,5 @@ public:
82 return cTEXT; 112 return cTEXT;
83 } 113 }
114 QString about() { return QString("Text/gzipped text codec (c) Tim Wentford"); }
84}; 115};
85#endif 116#endif