summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/Aportis.cpp8
-rw-r--r--noncore/apps/opie-reader/Bkmks.cpp6
-rw-r--r--noncore/apps/opie-reader/BuffDoc.cpp18
-rw-r--r--noncore/apps/opie-reader/CDrawBuffer.cpp22
-rw-r--r--noncore/apps/opie-reader/QTReader.cpp52
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp279
-rw-r--r--noncore/apps/opie-reader/StyleConsts.cpp2
-rw-r--r--noncore/apps/opie-reader/fileBrowser.cpp8
-rw-r--r--noncore/apps/opie-reader/opie-reader.pro2
-rw-r--r--noncore/apps/opie-reader/plucker.cpp10
-rw-r--r--noncore/apps/opie-reader/plucker_base.cpp148
11 files changed, 282 insertions, 273 deletions
diff --git a/noncore/apps/opie-reader/Aportis.cpp b/noncore/apps/opie-reader/Aportis.cpp
index 2f8cdc3..06f44a4 100644
--- a/noncore/apps/opie-reader/Aportis.cpp
+++ b/noncore/apps/opie-reader/Aportis.cpp
@@ -19,32 +19,32 @@ void Aportis::dePeanut(int& ch)
19CList<Bkmk>* Aportis::getbkmklist() 19CList<Bkmk>* Aportis::getbkmklist()
20{ 20{
21/* 21/*
22 if (peanutfile) 22 if (peanutfile)
23 { 23 {
24 if (nRecs2 > nRecs) 24 if (nRecs2 > nRecs)
25 { 25 {
26 CList<Bkmk>* t = new CList<Bkmk>; 26 CList<Bkmk>* t = new CList<Bkmk>;
27 for (int i = nRecs; i < nRecs2; i++) 27 for (int i = nRecs; i < nRecs2; i++)
28 { 28 {
29 char name[17]; 29 char name[17];
30 name[16] = '\0'; 30 name[16] = '\0';
31 // qDebug("Record:%d, Length:%u",i,recordlength(i)); 31 // odebug << "Record:" << i << ", Length:" << recordlength(i) << "" << oendl;
32 gotorecordnumber(i); 32 gotorecordnumber(i);
33 fread(name,1,16,fin); 33 fread(name,1,16,fin);
34 unsigned long lcn; 34 unsigned long lcn;
35 fread(&lcn,sizeof(lcn),1,fin); 35 fread(&lcn,sizeof(lcn),1,fin);
36 lcn ^= 0xa5a5a5a5; 36 lcn ^= 0xa5a5a5a5;
37 lcn = SwapLong(lcn); 37 lcn = SwapLong(lcn);
38 // qDebug("Bookmark:%s:%u", name,lcn); 38 // odebug << "Bookmark:" << name << ":" << lcn << "" << oendl;
39 tchar tname[17]; 39 tchar tname[17];
40 memset(tname, 0, sizeof(tname)); 40 memset(tname, 0, sizeof(tname));
41 for (int i = 0; name[i] != 0; i++) 41 for (int i = 0; name[i] != 0; i++)
42 { 42 {
43 tname[i] = name[i] ^ 0xa5; 43 tname[i] = name[i] ^ 0xa5;
44 } 44 }
45 t->push_back(Bkmk(tname, NULL, lcn)); 45 t->push_back(Bkmk(tname, NULL, lcn));
46 } 46 }
47 return t; 47 return t;
48 } 48 }
49 else 49 else
50 { 50 {
@@ -112,25 +112,25 @@ int Aportis::OpenFile(const char *src)
112 } 112 }
113 113
114 nRecs2 = nRecs = SwapWord(head.recordList.numRecords) - 1; 114 nRecs2 = nRecs = SwapWord(head.recordList.numRecords) - 1;
115 fseek(fin,0,SEEK_END); 115 fseek(fin,0,SEEK_END);
116 dwLen = ftell(fin); 116 dwLen = ftell(fin);
117 117
118 if (peanutfile) 118 if (peanutfile)
119 { 119 {
120 120
121 PeanutHeader hdr0; 121 PeanutHeader hdr0;
122 gotorecordnumber(0); 122 gotorecordnumber(0);
123 fread(&hdr0, sizeof(hdr0), 1, fin); 123 fread(&hdr0, sizeof(hdr0), 1, fin);
124// qDebug("Version:%x", ntohs(hdr0.Version)); 124// odebug << "Version:" << ntohs(hdr0.Version) << "" << oendl;
125 if (hdr0.Version && 0x0200) 125 if (hdr0.Version && 0x0200)
126 { 126 {
127 bCompressed = 2; 127 bCompressed = 2;
128 } 128 }
129 else 129 else
130 { 130 {
131 bCompressed = 1; 131 bCompressed = 1;
132 } 132 }
133 BlockSize = 4096; 133 BlockSize = 4096;
134 nRecs = SwapWord(hdr0.Records)-1; 134 nRecs = SwapWord(hdr0.Records)-1;
135 dwTLen = nRecs*BlockSize; 135 dwTLen = nRecs*BlockSize;
136 } 136 }
@@ -173,25 +173,25 @@ int Aportis::OpenFile(const char *src)
173 } 173 }
174 } 174 }
175 } 175 }
176 176
177 177
178 178
179 // this is the main record buffer 179 // this is the main record buffer
180 // it knows how to stretch to accomodate the decompress 180 // it knows how to stretch to accomodate the decompress
181 currentrec = 0; 181 currentrec = 0;
182 cbptr = 0; 182 cbptr = 0;
183 outptr = 0; 183 outptr = 0;
184 refreshbuffer(); 184 refreshbuffer();
185// qDebug("Number of records:[%u,%u]", nRecs, nRecs2); 185// odebug << "Number of records:[" << nRecs << "," << nRecs2 << "]" << oendl;
186 return ret; 186 return ret;
187} 187}
188 188
189int Aportis::getch() 189int Aportis::getch()
190{ 190{
191 if (bCompressed == 1) 191 if (bCompressed == 1)
192 { 192 {
193 if ((dwRecLen == 0) && !refreshbuffer()) return EOF; 193 if ((dwRecLen == 0) && !refreshbuffer()) return EOF;
194 else 194 else
195 { 195 {
196 int c = getc(fin); 196 int c = getc(fin);
197 dePeanut(c); 197 dePeanut(c);
diff --git a/noncore/apps/opie-reader/Bkmks.cpp b/noncore/apps/opie-reader/Bkmks.cpp
index 16bc1f1..480c240 100644
--- a/noncore/apps/opie-reader/Bkmks.cpp
+++ b/noncore/apps/opie-reader/Bkmks.cpp
@@ -208,33 +208,33 @@ CList<Bkmk>* BkmkFile::readall()
208 fseek(f,0,SEEK_SET); 208 fseek(f,0,SEEK_SET);
209 bl = readall00(&read03); 209 bl = readall00(&read03);
210 } 210 }
211 isUpgraded = true; 211 isUpgraded = true;
212 } 212 }
213 else 213 else
214 { 214 {
215 switch(newmagic & 0xff) 215 switch(newmagic & 0xff)
216 { 216 {
217 case 6: 217 case 6:
218 isUpgraded = false; 218 isUpgraded = false;
219 bl = readall00(read06); 219 bl = readall00(read06);
220 // qDebug("Correct version!"); 220 // odebug << "Correct version!" << oendl;
221 break; 221 break;
222 case 5: 222 case 5:
223 isUpgraded = true; 223 isUpgraded = true;
224 bl = readall00(read05); 224 bl = readall00(read05);
225 // qDebug("Known version!"); 225 // odebug << "Known version!" << oendl;
226 break; 226 break;
227 default: 227 default:
228 // qDebug("Unknown version!"); 228 // odebug << "Unknown version!" << oendl;
229 isUpgraded = true; 229 isUpgraded = true;
230 bl = readall00(read05); 230 bl = readall00(read05);
231 } 231 }
232 } 232 }
233 } 233 }
234 return bl; 234 return bl;
235} 235}
236 236
237CList<Bkmk>* BkmkFile::readall00(Bkmk* (*readfn)(FILE*)) 237CList<Bkmk>* BkmkFile::readall00(Bkmk* (*readfn)(FILE*))
238{ 238{
239 CList<Bkmk>* bl = new CList<Bkmk>; 239 CList<Bkmk>* bl = new CList<Bkmk>;
240 while (1) 240 while (1)
diff --git a/noncore/apps/opie-reader/BuffDoc.cpp b/noncore/apps/opie-reader/BuffDoc.cpp
index 4fbab93..68391b8 100644
--- a/noncore/apps/opie-reader/BuffDoc.cpp
+++ b/noncore/apps/opie-reader/BuffDoc.cpp
@@ -23,35 +23,35 @@ linkType BuffDoc::hyperlink(unsigned int n, QString& wrd)
23 lastispara = true; 23 lastispara = true;
24#else 24#else
25 lastispara = false; 25 lastispara = false;
26#endif 26#endif
27 lastsizes[0] = laststartline = exp->locate(); 27 lastsizes[0] = laststartline = exp->locate();
28 } 28 }
29 } 29 }
30 return bRet; 30 return bRet;
31} 31}
32 32
33void BuffDoc::locate(unsigned int n) 33void BuffDoc::locate(unsigned int n)
34{ 34{
35 // //qDebug("BuffDoc:locating:%u",n); 35 // //odebug << "BuffDoc:locating:" << n << "" << oendl;
36 lastword.empty(); 36 lastword.empty();
37 lastsizes[0] = laststartline = n; 37 lastsizes[0] = laststartline = n;
38#ifdef NEWLINEBREAK 38#ifdef NEWLINEBREAK
39 lastispara = true; 39 lastispara = true;
40#else 40#else
41 lastispara = false; 41 lastispara = false;
42#endif 42#endif
43 // tchar linebuf[1024]; 43 // tchar linebuf[1024];
44 if (exp != NULL) exp->locate(n); 44 if (exp != NULL) exp->locate(n);
45 // //qDebug("BuffDoc:Located"); 45 // //odebug << "BuffDoc:Located" << oendl;
46} 46}
47 47
48#ifdef NEWLINEBREAK 48#ifdef NEWLINEBREAK
49bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border) 49bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border)
50{ 50{
51 bool moreleft = true; 51 bool moreleft = true;
52 bool margindone = false; 52 bool margindone = false;
53 int w = wth-2*_border; 53 int w = wth-2*_border;
54 tchar ch = 32; 54 tchar ch = 32;
55 CStyle cs; 55 CStyle cs;
56 buff->empty(); 56 buff->empty();
57 if (exp == NULL) 57 if (exp == NULL)
@@ -179,25 +179,25 @@ bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border)
179 buff->empty(); 179 buff->empty();
180 return false; 180 return false;
181 } 181 }
182 int len = 0, lastcheck = 0; 182 int len = 0, lastcheck = 0;
183 if (lastword.length() > 0) 183 if (lastword.length() > 0)
184 { 184 {
185 *buff = lastword; 185 *buff = lastword;
186 cs = lastword.laststyle(); 186 cs = lastword.laststyle();
187 w -= buff->leftMargin() + buff->rightMargin(); 187 w -= buff->leftMargin() + buff->rightMargin();
188 margindone = true; 188 margindone = true;
189 } 189 }
190 else buff->empty(); 190 else buff->empty();
191// //qDebug("Buff:%s Lastword:%s", (const char*)toQString(buff->data()), (const char*)toQString(lastword.data())); 191// //odebug << "Buff:" << toQString(buff->data()) << " Lastword:" << toQString(lastword.data()) << "" << oendl;
192 lastcheck = len = buff->length(); 192 lastcheck = len = buff->length();
193 unsigned int slen = buff->width(len); 193 unsigned int slen = buff->width(len);
194 if (slen > w) 194 if (slen > w)
195 { 195 {
196 for ( ; len > 1; len--) 196 for ( ; len > 1; len--)
197 { 197 {
198 if (buff->width(len) < w) break; 198 if (buff->width(len) < w) break;
199 } 199 }
200// lastword = buff->data() + len - 1; 200// lastword = buff->data() + len - 1;
201 laststartline = lastsizes[len-1]; 201 laststartline = lastsizes[len-1];
202 for (int i = 0; i < buff->length(); i++) lastsizes[i] = lastsizes[i+len-1]; 202 for (int i = 0; i < buff->length(); i++) lastsizes[i] = lastsizes[i+len-1];
203// (*buff)[len-1] = '-'; 203// (*buff)[len-1] = '-';
@@ -313,26 +313,26 @@ bool BuffDoc::getline(CDrawBuffer* buff, int wth, int cw, unsigned char _border)
313 if (ch == '\12' || ch == UEOF) break; 313 if (ch == '\12' || ch == UEOF) break;
314 buff->addch(ch,cs); 314 buff->addch(ch,cs);
315 i++; 315 i++;
316 } 316 }
317 buff->truncate(i); 317 buff->truncate(i);
318 laststartline = exp->locate(); 318 laststartline = exp->locate();
319 buff->resize(); 319 buff->resize();
320 return (ch != UEOF); 320 return (ch != UEOF);
321} 321}
322 322
323int BuffDoc::openfile(QWidget* _parent, const char *src) 323int BuffDoc::openfile(QWidget* _parent, const char *src)
324{ 324{
325 // //qDebug("BuffDoc:Openfile:%s", src); 325 // //odebug << "BuffDoc:Openfile:" << src << "" << oendl;
326 // //qDebug("Trying aportis %x",exp); 326 // //odebug << "Trying aportis " << exp << "" << oendl;
327 if (exp != NULL) delete exp; 327 if (exp != NULL) delete exp;
328 lastword.empty(); 328 lastword.empty();
329 lastsizes[0] = laststartline = 0; 329 lastsizes[0] = laststartline = 0;
330#ifdef NEWLINEBREAK 330#ifdef NEWLINEBREAK
331 lastispara = true; 331 lastispara = true;
332#else 332#else
333 lastispara = false; 333 lastispara = false;
334#endif 334#endif
335 /* 335 /*
336 exp = new Text; 336 exp = new Text;
337 int ret = exp->openfile(src); 337 int ret = exp->openfile(src);
338 */ 338 */
@@ -369,44 +369,44 @@ int BuffDoc::openfile(QWidget* _parent, const char *src)
369 } 369 }
370#endif 370#endif
371 if (ret != 0) 371 if (ret != 0)
372 { 372 {
373 373
374 delete exp; 374 delete exp;
375 exp = new CPlucker; 375 exp = new CPlucker;
376 ret = exp->openfile(src); 376 ret = exp->openfile(src);
377 } 377 }
378 if (ret != 0) 378 if (ret != 0)
379 { 379 {
380 delete exp; 380 delete exp;
381 //qDebug("Trying ppms"); 381 //odebug << "Trying ppms" << oendl;
382 exp = new ppm_expander; 382 exp = new ppm_expander;
383 ret = exp->openfile(src); 383 ret = exp->openfile(src);
384 } 384 }
385 if (ret != 0) 385 if (ret != 0)
386 { 386 {
387 delete exp; 387 delete exp;
388 exp = new Text; 388 exp = new Text;
389 // //qDebug("Trying text"); 389 // //odebug << "Trying text" << oendl;
390 ret = exp->openfile(src); 390 ret = exp->openfile(src);
391 } 391 }
392 392
393 if (ret != 0) 393 if (ret != 0)
394 { 394 {
395 delete exp; 395 delete exp;
396 QMessageBox::information(_parent, PROGNAME, "Unknown file compression type","Try another file"); 396 QMessageBox::information(_parent, PROGNAME, "Unknown file compression type","Try another file");
397 return ret; 397 return ret;
398 } 398 }
399 // //qDebug("Doing final open:%x:%x",exp,filt); 399 // //odebug << "Doing final open:" << exp << ":" << filt << "" << oendl;
400 400
401 lastword.empty(); 401 lastword.empty();
402 lastsizes[0] = laststartline = 0; 402 lastsizes[0] = laststartline = 0;
403#ifdef NEWLINEBREAK 403#ifdef NEWLINEBREAK
404 lastispara = true; 404 lastispara = true;
405#else 405#else
406 lastispara = false; 406 lastispara = false;
407#endif 407#endif
408 exp->locate(0); 408 exp->locate(0);
409 filt->setsource(exp); 409 filt->setsource(exp);
410 // //qDebug("BuffDoc:file opened"); 410 // //odebug << "BuffDoc:file opened" << oendl;
411 return 0; 411 return 0;
412} 412}
diff --git a/noncore/apps/opie-reader/CDrawBuffer.cpp b/noncore/apps/opie-reader/CDrawBuffer.cpp
index ec36fb2..b137ac3 100644
--- a/noncore/apps/opie-reader/CDrawBuffer.cpp
+++ b/noncore/apps/opie-reader/CDrawBuffer.cpp
@@ -31,43 +31,43 @@ void CDrawBuffer::setright(CDrawBuffer& rhs, int f)
31 31
32 segs.push_back(textsegment(st,next->style)); 32 segs.push_back(textsegment(st,next->style));
33 } 33 }
34 } 34 }
35 for (i = f; rhs[i] != '\0'; i++) (*this)[i-f] = rhs[i]; 35 for (i = f; rhs[i] != '\0'; i++) (*this)[i-f] = rhs[i];
36 (*this)[i-f] = '\0'; 36 (*this)[i-f] = '\0';
37 len = i; 37 len = i;
38} 38}
39 39
40CDrawBuffer& CDrawBuffer::operator=(CDrawBuffer& rhs) 40CDrawBuffer& CDrawBuffer::operator=(CDrawBuffer& rhs)
41{ 41{
42 int i; 42 int i;
43// //qDebug("Trying 2"); 43// //odebug << "Trying 2" << oendl;
44 len = rhs.len; 44 len = rhs.len;
45 m_maxstyle = rhs.m_maxstyle; 45 m_maxstyle = rhs.m_maxstyle;
46 m_ascent = rhs.m_ascent; 46 m_ascent = rhs.m_ascent;
47 m_descent = rhs.m_descent; 47 m_descent = rhs.m_descent;
48 m_lineSpacing = rhs.m_lineSpacing; 48 m_lineSpacing = rhs.m_lineSpacing;
49 m_lineExtraSpacing = rhs.m_lineExtraSpacing; 49 m_lineExtraSpacing = rhs.m_lineExtraSpacing;
50 while (!segs.isEmpty()) 50 while (!segs.isEmpty())
51 { 51 {
52 segs.erase(0); 52 segs.erase(0);
53 } 53 }
54 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); iter++) 54 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); iter++)
55 { 55 {
56 segs.push_back(*iter); 56 segs.push_back(*iter);
57 } 57 }
58 for (i = 0; rhs[i] != '\0'; i++) (*this)[i] = rhs[i]; 58 for (i = 0; rhs[i] != '\0'; i++) (*this)[i] = rhs[i];
59 (*this)[i] = '\0'; 59 (*this)[i] = '\0';
60 len = i; 60 len = i;
61// //qDebug("Tried 2"); 61// //odebug << "Tried 2" << oendl;
62 return *this; 62 return *this;
63} 63}
64 64
65CDrawBuffer& CDrawBuffer::operator=(const tchar*sztmp) 65CDrawBuffer& CDrawBuffer::operator=(const tchar*sztmp)
66{ 66{
67 int i; 67 int i;
68 while (!segs.isEmpty()) 68 while (!segs.isEmpty())
69 { 69 {
70 segs.erase(0); 70 segs.erase(0);
71 } 71 }
72 segs.push_back(textsegment(0, CStyle())); 72 segs.push_back(textsegment(0, CStyle()));
73 for (i = 0; sztmp[i] != '\0'; i++) (*this)[i] = sztmp[i]; 73 for (i = 0; sztmp[i] != '\0'; i++) (*this)[i] = sztmp[i];
@@ -199,25 +199,25 @@ int CDrawBuffer::width(int numchars, bool onscreen, int scwidth, unsigned char _
199 { 199 {
200 spacenumber++; 200 spacenumber++;
201 int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar; 201 int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar;
202 QString nstr = str.mid(lastspace+1, nsp-lastspace); 202 QString nstr = str.mid(lastspace+1, nsp-lastspace);
203 int lw = fm.width(nstr); 203 int lw = fm.width(nstr);
204 cx += lw+nexttoadd; 204 cx += lw+nexttoadd;
205 spacesofar += nexttoadd; 205 spacesofar += nexttoadd;
206 lastspace = nsp; 206 lastspace = nsp;
207 } 207 }
208 else 208 else
209 { 209 {
210 QString nstr = str.mid(lastspace+1, nsp-lastspace); 210 QString nstr = str.mid(lastspace+1, nsp-lastspace);
211 // qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); 211 // odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl;
212 int lw = fm.width(nstr); 212 int lw = fm.width(nstr);
213 cx += lw; 213 cx += lw;
214 lastspace = nsp; 214 lastspace = nsp;
215 } 215 }
216 } 216 }
217 QString nstr = str.right(str.length()-1-lastspace); 217 QString nstr = str.right(str.length()-1-lastspace);
218 cx += fm.width(nstr); 218 cx += fm.width(nstr);
219 currentx = cx; 219 currentx = cx;
220 } 220 }
221 else 221 else
222 { 222 {
223 currentx += fm.width(str); 223 currentx += fm.width(str);
@@ -308,25 +308,25 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int
308 extraspace = (scwidth - 2*_border - rightMargin() - leftMargin() - width()); 308 extraspace = (scwidth - 2*_border - rightMargin() - leftMargin() - width());
309 if (extraspace == 0) just = false; 309 if (extraspace == 0) just = false;
310 } 310 }
311 } 311 }
312 CList<textsegment>::iterator textend = textstart; 312 CList<textsegment>::iterator textend = textstart;
313 do 313 do
314 { 314 {
315 textend++; 315 textend++;
316 int end = (textend != segs.end()) ? textend->start : len; 316 int end = (textend != segs.end()) ? textend->start : len;
317 CStyle currentstyle = textstart->style; 317 CStyle currentstyle = textstart->style;
318 QFont f((currentstyle.isMono() && fc->hasCourier()) ? fc->fixedfontname() : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) ); 318 QFont f((currentstyle.isMono() && fc->hasCourier()) ? fc->fixedfontname() : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) );
319 //f.setUnderline(currentstyle.isUnderline()); 319 //f.setUnderline(currentstyle.isUnderline());
320 //if (currentstyle.isUnderline()) qDebug("UNDERLINE"); 320 //if (currentstyle.isUnderline()) odebug << "UNDERLINE" << oendl;
321 _p->setFont(f); 321 _p->setFont(f);
322 QString str = text.mid(textstart->start, end-textstart->start); 322 QString str = text.mid(textstart->start, end-textstart->start);
323#if defined(OPIE) || !defined(USEQPE) 323#if defined(OPIE) || !defined(USEQPE)
324 _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/100)); 324 _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/100));
325#else 325#else
326 _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10)); 326 _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10));
327#endif 327#endif
328 int voffset = currentstyle.getVOffset()*fc->getsize(currentstyle)/2; 328 int voffset = currentstyle.getVOffset()*fc->getsize(currentstyle)/2;
329 if (_bMono) 329 if (_bMono)
330 { 330 {
331 if (currentstyle.isUnderline()) 331 if (currentstyle.isUnderline())
332 { 332 {
@@ -399,35 +399,35 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int
399 if (just) 399 if (just)
400 { 400 {
401 int lastspace = -1; 401 int lastspace = -1;
402 int nsp = 0; 402 int nsp = 0;
403 int cx = currentx; 403 int cx = currentx;
404 while ((nsp = str.find(" ", lastspace+1)) >= 0) 404 while ((nsp = str.find(" ", lastspace+1)) >= 0)
405 { 405 {
406 if (nsp+textstart->start >= nonspace) 406 if (nsp+textstart->start >= nonspace)
407 { 407 {
408 spacenumber++; 408 spacenumber++;
409 int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar; 409 int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar;
410 QString nstr = str.mid(lastspace+1, nsp-lastspace); 410 QString nstr = str.mid(lastspace+1, nsp-lastspace);
411 // qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); 411 // odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl;
412 int lw = fm.width(nstr); 412 int lw = fm.width(nstr);
413 _p->drawText( cx, _y+voffset, nstr); 413 _p->drawText( cx, _y+voffset, nstr);
414 cx += lw+nexttoadd; 414 cx += lw+nexttoadd;
415 spacesofar += nexttoadd; 415 spacesofar += nexttoadd;
416 lastspace = nsp; 416 lastspace = nsp;
417 } 417 }
418 else 418 else
419 { 419 {
420 QString nstr = str.mid(lastspace+1, nsp-lastspace); 420 QString nstr = str.mid(lastspace+1, nsp-lastspace);
421 // qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); 421 // odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl;
422 int lw = fm.width(nstr); 422 int lw = fm.width(nstr);
423 _p->drawText( cx, _y+voffset, nstr); 423 _p->drawText( cx, _y+voffset, nstr);
424 cx += lw; 424 cx += lw;
425 lastspace = nsp; 425 lastspace = nsp;
426 } 426 }
427 } 427 }
428 QString nstr = str.right(str.length()-1-lastspace); 428 QString nstr = str.right(str.length()-1-lastspace);
429 _p->drawText( cx, _y+voffset, nstr); 429 _p->drawText( cx, _y+voffset, nstr);
430 cx += fm.width(nstr); 430 cx += fm.width(nstr);
431 w = cx - currentx; 431 w = cx - currentx;
432 } 432 }
433 else 433 else
@@ -461,32 +461,32 @@ CStyle CDrawBuffer::laststyle()
461linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt) 461linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt)
462{ 462{
463 int end = 0; 463 int end = 0;
464 CStyle currentstyle; 464 CStyle currentstyle;
465 CList<textsegment>::iterator textstart = segs.begin(); 465 CList<textsegment>::iterator textstart = segs.begin();
466 CList<textsegment>::iterator textend = textstart; 466 CList<textsegment>::iterator textend = textstart;
467 do 467 do
468 { 468 {
469 textend++; 469 textend++;
470 end = (textend != segs.end()) ? textend->start : len; 470 end = (textend != segs.end()) ? textend->start : len;
471 currentstyle = textstart->style; 471 currentstyle = textstart->style;
472/* 472/*
473 if (currentstyle.isPicture()) qDebug("Passed thru picture"); 473 if (currentstyle.isPicture()) odebug << "Passed thru picture" << oendl;
474 if (currentstyle.getLink()) qDebug("Passed thru link"); 474 if (currentstyle.getLink()) odebug << "Passed thru link" << oendl;
475 //qDebug("islink:%d - %d", numchars, end); 475 //odebug << "islink:" << numchars << " - " << end << "" << oendl;
476*/ 476*/
477 textstart = textend; 477 textstart = textend;
478 } 478 }
479 while (textend != segs.end() && end <= numchars); 479 while (textend != segs.end() && end <= numchars);
480// if (currentstyle.isPicture()) qDebug("Clicked on picture"); 480// if (currentstyle.isPicture()) odebug << "Clicked on picture" << oendl;
481 if (currentstyle.getPictureLink()) 481 if (currentstyle.getPictureLink())
482 { 482 {
483 tgt = currentstyle.getPictureLinkData(); 483 tgt = currentstyle.getPictureLinkData();
484 return ePicture; 484 return ePicture;
485 } 485 }
486 if (currentstyle.getLink()) 486 if (currentstyle.getLink())
487 { 487 {
488 tgt = currentstyle.getData(); 488 tgt = currentstyle.getData();
489 return eLink; 489 return eLink;
490 } 490 }
491 return eNone; 491 return eNone;
492} 492}
@@ -530,17 +530,17 @@ void CDrawBuffer::resize()
530 m_lineSpacing = m_ascent+m_descent+m_lineExtraSpacing; 530 m_lineSpacing = m_ascent+m_descent+m_lineExtraSpacing;
531 } 531 }
532 int lead = fc->getlead(); 532 int lead = fc->getlead();
533 if (lead != 0) 533 if (lead != 0)
534 { 534 {
535 int xt = (lead*m_lineSpacing+5)/10; 535 int xt = (lead*m_lineSpacing+5)/10;
536 m_descent += xt; 536 m_descent += xt;
537 m_lineSpacing += xt; 537 m_lineSpacing += xt;
538 } 538 }
539 if (m_bSop) 539 if (m_bSop)
540 { 540 {
541 int xt = ((segs.begin()->style.getExtraSpace()+fc->getextraspace())*fc->getsize(segs.begin()->style)+5)/10; 541 int xt = ((segs.begin()->style.getExtraSpace()+fc->getextraspace())*fc->getsize(segs.begin()->style)+5)/10;
542 //qDebug("ExtraSpace:%d", xt); 542 //odebug << "ExtraSpace:" << xt << "" << oendl;
543 m_ascent += xt; 543 m_ascent += xt;
544 m_lineSpacing += xt; 544 m_lineSpacing += xt;
545 } 545 }
546} 546}
diff --git a/noncore/apps/opie-reader/QTReader.cpp b/noncore/apps/opie-reader/QTReader.cpp
index d64abb4..b356ba5 100644
--- a/noncore/apps/opie-reader/QTReader.cpp
+++ b/noncore/apps/opie-reader/QTReader.cpp
@@ -71,49 +71,49 @@ QTReader::QTReader( const QString& filename, QWidget *parent=0, const tchar *nam
71 m_textsize(1), 71 m_textsize(1),
72 textarray(NULL), 72 textarray(NULL),
73 numlines(0), 73 numlines(0),
74 bstripcr(true), 74 bstripcr(true),
75 bunindent(false), 75 bunindent(false),
76 brepara(false), 76 brepara(false),
77 bdblspce(false), 77 bdblspce(false),
78 btight(false), 78 btight(false),
79 bindenter(0), 79 bindenter(0),
80 m_fm(NULL) 80 m_fm(NULL)
81{ 81{
82 init(); 82 init();
83// // qDebug("Load_file(1)"); 83// // odebug << "Load_file(1)" << oendl;
84 load_file((const tchar*)filename); 84 load_file((const tchar*)filename);
85} 85}
86*/ 86*/
87 87
88/* 88/*
89void QTReader::mouseMoveEvent(QMouseEvent* _e) 89void QTReader::mouseMoveEvent(QMouseEvent* _e)
90{ 90{
91 91
92 mouseUpOn = !(_e->pos().x() == -1); 92 mouseUpOn = !(_e->pos().x() == -1);
93 93
94 qDebug("MouseMove:[%d, %d]", _e->pos().x(), _e->pos().y()); 94 odebug << "MouseMove:[" << _e->pos().x() << ", " << _e->pos().y() << "]" << oendl;
95} 95}
96*/ 96*/
97long QTReader::real_delay() 97long QTReader::real_delay()
98{ 98{
99 return ( 8976 + m_delay ) / ( m_linespacing * m_linespacing ); 99 return ( 8976 + m_delay ) / ( m_linespacing * m_linespacing );
100} 100}
101 101
102void QTReader::mousePressEvent( QMouseEvent* _e ) 102void QTReader::mousePressEvent( QMouseEvent* _e )
103{ 103{
104 buffdoc.unsuspend(); 104 buffdoc.unsuspend();
105 if (_e->button() == RightButton) 105 if (_e->button() == RightButton)
106 { 106 {
107 //qDebug("MousePress"); 107 //odebug << "MousePress" << oendl;
108 mouseUpOn = false; 108 mouseUpOn = false;
109 if (m_swapmouse) 109 if (m_swapmouse)
110 { 110 {
111 int lineno = 0; 111 int lineno = 0;
112 int ht = textarray[0]->lineSpacing(); 112 int ht = textarray[0]->lineSpacing();
113 while ((ht < _e->y()) && (lineno < numlines)) 113 while ((ht < _e->y()) && (lineno < numlines))
114 { 114 {
115 ht += textarray[++lineno]->lineSpacing(); 115 ht += textarray[++lineno]->lineSpacing();
116 } 116 }
117 size_t startpos, startoffset, tgt; 117 size_t startpos, startoffset, tgt;
118 getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt); 118 getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt);
119 processmousewordevent(startpos, startoffset, _e, lineno); 119 processmousewordevent(startpos, startoffset, _e, lineno);
@@ -308,47 +308,47 @@ void QTReader::processmousewordevent(size_t startpos, size_t startoffset, QMouse
308 else 308 else
309 { 309 {
310 CDrawBuffer* t = textarray[lineno]; 310 CDrawBuffer* t = textarray[lineno];
311 int first = 0; 311 int first = 0;
312 int tgt = _e->x() - t->offset(width(), m_border); 312 int tgt = _e->x() - t->offset(width(), m_border);
313 while (1) 313 while (1)
314 { 314 {
315 int i = first+1; 315 int i = first+1;
316 while (QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++; 316 while (QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++;
317 if (t->width(i, true, width(), m_border) > tgt) 317 if (t->width(i, true, width(), m_border) > tgt)
318 { 318 {
319 wrd = toQString(t->data()+first, i - first); 319 wrd = toQString(t->data()+first, i - first);
320 // qDebug("Got %s", (const char *)wrd); 320 // odebug << "Got " << (const char *)wrd << "" << oendl;
321 break; 321 break;
322 } 322 }
323 while (!QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++; 323 while (!QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++;
324 if ((*t)[i] == 0) break; 324 if ((*t)[i] == 0) break;
325 first = i; 325 first = i;
326 } 326 }
327 } 327 }
328 if (!wrd.isEmpty()) 328 if (!wrd.isEmpty())
329 { 329 {
330 //qDebug("Selected:%s", (const char*)wrd); 330 //odebug << "Selected:" << wrd << "" << oendl;
331 emit OnWordSelected(wrd, locnarray[lineno], (m_twotouch) ? wrd : toQString(textarray[lineno]->data())); 331 emit OnWordSelected(wrd, locnarray[lineno], (m_twotouch) ? wrd : toQString(textarray[lineno]->data()));
332 } 332 }
333} 333}
334 334
335void QTReader::mouseReleaseEvent( QMouseEvent* _e ) 335void QTReader::mouseReleaseEvent( QMouseEvent* _e )
336{ 336{
337 buffdoc.unsuspend(); 337 buffdoc.unsuspend();
338 if (_e->button() == LeftButton) 338 if (_e->button() == LeftButton)
339 { 339 {
340 if (mouseUpOn) 340 if (mouseUpOn)
341 { 341 {
342 // qDebug("MouseRelease"); 342 // odebug << "MouseRelease" << oendl;
343 if (_e->x() > width() - m_border) 343 if (_e->x() > width() - m_border)
344 { 344 {
345 locate(buffdoc.startSection()+((buffdoc.endSection()-buffdoc.startSection())*_e->y()+height()/2)/height()); 345 locate(buffdoc.startSection()+((buffdoc.endSection()-buffdoc.startSection())*_e->y()+height()/2)/height());
346 return; 346 return;
347 } 347 }
348 if (textarray[0] != NULL) 348 if (textarray[0] != NULL)
349 { 349 {
350 QString line; 350 QString line;
351 // int lineno = _e->y()/m_linespacing; 351 // int lineno = _e->y()/m_linespacing;
352 int lineno = 0; 352 int lineno = 0;
353 int ht = textarray[0]->lineSpacing(); 353 int ht = textarray[0]->lineSpacing();
354 while ((ht < _e->y()) && (lineno < numlines)) 354 while ((ht < _e->y()) && (lineno < numlines))
@@ -385,41 +385,41 @@ void QTReader::mouseReleaseEvent( QMouseEvent* _e )
385 // QString anchortext = textarray[lineno]->getanchortext(startoffset); 385 // QString anchortext = textarray[lineno]->getanchortext(startoffset);
386 if (!href.isEmpty()) 386 if (!href.isEmpty())
387 { 387 {
388 emit OnURLSelected(href); 388 emit OnURLSelected(href);
389 } 389 }
390 } 390 }
391 locate(pagelocate()); 391 locate(pagelocate());
392 } 392 }
393 return; 393 return;
394 } 394 }
395 case ePicture: 395 case ePicture:
396 { 396 {
397 // qDebug("Picture:%x", tgt); 397 // odebug << "Picture:" << tgt << "" << oendl;
398 QImage* pm = buffdoc.getPicture(tgt); 398 QImage* pm = buffdoc.getPicture(tgt);
399 if (pm != NULL) 399 if (pm != NULL)
400 { 400 {
401 emit OnShowPicture(*pm); 401 emit OnShowPicture(*pm);
402 delete pm; 402 delete pm;
403 } 403 }
404 else 404 else
405 { 405 {
406 locate(pagelocate()); 406 locate(pagelocate());
407 } 407 }
408 return; 408 return;
409 } 409 }
410 case eNone: 410 case eNone:
411 break; 411 break;
412 default: 412 default:
413 // qDebug("Unknown linktype"); 413 // odebug << "Unknown linktype" << oendl;
414 return; 414 return;
415 } 415 }
416 if (m_swapmouse) 416 if (m_swapmouse)
417 processmousepositionevent(_e); 417 processmousepositionevent(_e);
418 else 418 else
419 processmousewordevent(startpos, startoffset, _e, lineno); 419 processmousewordevent(startpos, startoffset, _e, lineno);
420 } 420 }
421 } 421 }
422 else 422 else
423 { 423 {
424 mouseUpOn = true; 424 mouseUpOn = true;
425 } 425 }
@@ -687,25 +687,25 @@ void QTReader::setautoscroll(bool _sc)
687 m_pipeout = NULL; 687 m_pipeout = NULL;
688 } 688 }
689#endif 689#endif
690 } 690 }
691 else 691 else
692 { 692 {
693 CDrawBuffer* reusebuffer = textarray[numlines]; 693 CDrawBuffer* reusebuffer = textarray[numlines];
694 if (reusebuffer == NULL || reusebuffer->eof()) return; 694 if (reusebuffer == NULL || reusebuffer->eof()) return;
695 m_autoScroll = true; 695 m_autoScroll = true;
696#ifdef _SCROLLPIPE 696#ifdef _SCROLLPIPE
697 if (!m_pipetarget.isEmpty()) 697 if (!m_pipetarget.isEmpty())
698 { 698 {
699 // qDebug("Opening pipe to %s", (const char*)m_pipetarget); 699 // odebug << "Opening pipe to " << m_pipetarget << "" << oendl;
700 m_pipeout = popen((const char*)m_pipetarget, "w"); 700 m_pipeout = popen((const char*)m_pipetarget, "w");
701 m_isPaused = false; 701 m_isPaused = false;
702 } 702 }
703#endif 703#endif
704 autoscroll(); 704 autoscroll();
705#ifdef USEQPE 705#ifdef USEQPE
706 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; // light is even not dimmed 706 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; // light is even not dimmed
707#endif 707#endif
708 } 708 }
709} 709}
710 710
711bool QTReader::getline(CDrawBuffer *buff) 711bool QTReader::getline(CDrawBuffer *buff)
@@ -814,65 +814,65 @@ void QTReader::setfont()
814// m_fontControl.Change 814// m_fontControl.Change
815 m_charWidth = (m_charpc*m_fontControl.currentsize())/100; 815 m_charWidth = (m_charpc*m_fontControl.currentsize())/100;
816 if (m_charWidth <= 0) m_charWidth = 1; 816 if (m_charWidth <= 0) m_charWidth = 1;
817 m_ascent = m_fontControl.ascent(); 817 m_ascent = m_fontControl.ascent();
818 m_descent = m_fontControl.descent(); 818 m_descent = m_fontControl.descent();
819 m_linespacing = m_fontControl.lineSpacing(); 819 m_linespacing = m_fontControl.lineSpacing();
820} 820}
821 821
822void QTReader::drawFonts( QPainter *p ) 822void QTReader::drawFonts( QPainter *p )
823{ 823{
824 if (bDoUpdates) 824 if (bDoUpdates)
825 { 825 {
826 //qDebug("How refreshing..."); 826 //odebug << "How refreshing..." << oendl;
827 if (buffdoc.empty()) return; 827 if (buffdoc.empty()) return;
828 setfont(); 828 setfont();
829 if (m_lastwidth != width()) 829 if (m_lastwidth != width())
830 { 830 {
831 // qDebug("Not Optimised %d", m_lastwidth); 831 // odebug << "Not Optimised " << m_lastwidth << "" << oendl;
832 m_lastwidth = width(); 832 m_lastwidth = width();
833 m_lastheight = height(); 833 m_lastheight = height();
834 buffdoc.setwidth(m_lastwidth-2*m_border); 834 buffdoc.setwidth(m_lastwidth-2*m_border);
835 locate(pagelocate()); 835 locate(pagelocate());
836 // qDebug("Not Optimised %d", m_lastwidth); 836 // odebug << "Not Optimised " << m_lastwidth << "" << oendl;
837 } 837 }
838 else 838 else
839 { 839 {
840 int newht = height(); 840 int newht = height();
841 if (m_lastheight > newht) 841 if (m_lastheight > newht)
842 { 842 {
843 // qDebug("Optimised < %d %d %d", numlines, m_lastheight, newht); 843 // odebug << "Optimised < " << numlines << " " << m_lastheight << " " << newht << "" << oendl;
844 int ypos = 0; 844 int ypos = 0;
845 for (int i = 0; i < numlines; i++) 845 for (int i = 0; i < numlines; i++)
846 { 846 {
847 if ((ypos += textarray[i]->lineSpacing()) > newht) 847 if ((ypos += textarray[i]->lineSpacing()) > newht)
848 { 848 {
849 numlines = i; 849 numlines = i;
850 jumpto(mylastpos = locnarray[i+1]); 850 jumpto(mylastpos = locnarray[i+1]);
851 break; 851 break;
852 } 852 }
853 } 853 }
854 // qDebug("Optimised < %d", numlines); 854 // odebug << "Optimised < " << numlines << "" << oendl;
855 m_lastheight = newht; 855 m_lastheight = newht;
856 } 856 }
857 else if (m_lastheight < newht) 857 else if (m_lastheight < newht)
858 { 858 {
859 // qDebug("Optimised > %d", numlines); 859 // odebug << "Optimised > " << numlines << "" << oendl;
860 int ypos = 0; 860 int ypos = 0;
861 for (int i = 0; i <= numlines; i++) 861 for (int i = 0; i <= numlines; i++)
862 { 862 {
863 ypos += textarray[i]->lineSpacing(); 863 ypos += textarray[i]->lineSpacing();
864 } 864 }
865 fillbuffer(numlines+1, ypos, newht); 865 fillbuffer(numlines+1, ypos, newht);
866 // qDebug("Optimised > %d", numlines); 866 // odebug << "Optimised > " << numlines << "" << oendl;
867 } 867 }
868 if (numlines > 0) 868 if (numlines > 0)
869 { 869 {
870 int ypos = textarray[0]->ascent(); 870 int ypos = textarray[0]->ascent();
871 textarray[0]->render( p, ypos, m_bMonoSpaced, m_charWidth, width(), m_border); 871 textarray[0]->render( p, ypos, m_bMonoSpaced, m_charWidth, width(), m_border);
872 // int last = (m_showlast) ? numlines : numlines-1; 872 // int last = (m_showlast) ? numlines : numlines-1;
873 // for (int i = 1; i <= last; i++) 873 // for (int i = 1; i <= last; i++)
874 for (int i = 1; i < numlines; i++) 874 for (int i = 1; i < numlines; i++)
875 { 875 {
876 // ypos += (textarray[i-1]->lineSpacing() + textarray[i]->lineSpacing())/2; 876 // ypos += (textarray[i-1]->lineSpacing() + textarray[i]->lineSpacing())/2;
877 ypos += (textarray[i-1]->descent() + textarray[i]->ascent())+ 877 ypos += (textarray[i-1]->descent() + textarray[i]->ascent())+
878 (textarray[i-1]->lineExtraSpacing() + textarray[i]->lineExtraSpacing())/2; 878 (textarray[i-1]->lineExtraSpacing() + textarray[i]->lineExtraSpacing())/2;
@@ -888,25 +888,25 @@ void QTReader::drawFonts( QPainter *p )
888 p->fillRect(width()-2, 0, 2, height(), cyan); 888 p->fillRect(width()-2, 0, 2, height(), cyan);
889 int sectionsize = (buffdoc.endSection()-buffdoc.startSection()); 889 int sectionsize = (buffdoc.endSection()-buffdoc.startSection());
890 int mid = (height()*(locnarray[numlines]+locnarray[0]-2*buffdoc.startSection())+sectionsize)/(2*sectionsize); 890 int mid = (height()*(locnarray[numlines]+locnarray[0]-2*buffdoc.startSection())+sectionsize)/(2*sectionsize);
891 p->fillRect(width()-2, mid-5, 2, 10, yellow); 891 p->fillRect(width()-2, mid-5, 2, 10, yellow);
892 p->fillRect(width()-2, (height()*(locnarray[0]-buffdoc.startSection())+sectionsize/2)/sectionsize, 2, ((locnarray[numlines]-locnarray[0])*height()+sectionsize/2)/sectionsize, magenta); 892 p->fillRect(width()-2, (height()*(locnarray[0]-buffdoc.startSection())+sectionsize/2)/sectionsize, 2, ((locnarray[numlines]-locnarray[0])*height()+sectionsize/2)/sectionsize, magenta);
893 } 893 }
894 894
895 emit OnRedraw(); 895 emit OnRedraw();
896 } 896 }
897/* 897/*
898 else 898 else
899 { 899 {
900 qDebug("Not so refreshing..."); 900 odebug << "Not so refreshing..." << oendl;
901 } 901 }
902*/ 902*/
903} 903}
904 904
905QString QTReader::firstword() 905QString QTReader::firstword()
906{ 906{
907 if (m_bMonoSpaced) 907 if (m_bMonoSpaced)
908 { 908 {
909 return toQString(textarray[0]->data()); 909 return toQString(textarray[0]->data());
910 } 910 }
911 else 911 else
912 { 912 {
@@ -1019,54 +1019,54 @@ void QTReader::paintEvent( QPaintEvent * )
1019 QPainter paint( this ); 1019 QPainter paint( this );
1020 drawIt( &paint ); 1020 drawIt( &paint );
1021} 1021}
1022 1022
1023// 1023//
1024// Called when the widget has been resized. 1024// Called when the widget has been resized.
1025// Moves the button group to the upper right corner 1025// Moves the button group to the upper right corner
1026// of the widget. 1026// of the widget.
1027 1027
1028/* 1028/*
1029void QTReader::resizeEvent( QResizeEvent * ) 1029void QTReader::resizeEvent( QResizeEvent * )
1030{ 1030{
1031// // qDebug("resize:(%u,%u)", width(), height()); 1031// // odebug << "resize:(" << width() << "," << height() << ")" << oendl;
1032 // bgroup->move( width()-bgroup->width(), 0 ); 1032 // bgroup->move( width()-bgroup->width(), 0 );
1033} 1033}
1034*/ 1034*/
1035 1035
1036// 1036//
1037// Create and display our widget. 1037// Create and display our widget.
1038// 1038//
1039/* 1039/*
1040int main( int argc, tchar **argv ) 1040int main( int argc, tchar **argv )
1041{ 1041{
1042 QApplication app( argc, argv ); 1042 QApplication app( argc, argv );
1043 QTReader draw; 1043 QTReader draw;
1044 app.setMainWidget( &draw ); 1044 app.setMainWidget( &draw );
1045 draw.setCaption("Qt Example - Drawdemo"); 1045 draw.setCaption("Qt Example - Drawdemo");
1046 draw.show(); 1046 draw.show();
1047 return app.exec(); 1047 return app.exec();
1048} 1048}
1049*/ 1049*/
1050 1050
1051 1051
1052bool QTReader::locate(unsigned long n) { 1052bool QTReader::locate(unsigned long n) {
1053 //printf("Locate\n"); 1053 //printf("Locate\n");
1054 buffdoc.unsuspend(); 1054 buffdoc.unsuspend();
1055 buffdoc.locate(n); 1055 buffdoc.locate(n);
1056// // qDebug("&buffdoc.located"); 1056// // odebug << "&buffdoc.located" << oendl;
1057 fillbuffer(); 1057 fillbuffer();
1058// // qDebug("&Buffer filled"); 1058// // odebug << "&Buffer filled" << oendl;
1059 update(); 1059 update();
1060// // qDebug("&Located"); 1060// // odebug << "&Located" << oendl;
1061 return true; 1061 return true;
1062} 1062}
1063 1063
1064unsigned int QTReader::screenlines() 1064unsigned int QTReader::screenlines()
1065{ 1065{
1066 // int linespacing = (tight) ? m_ascent : m_ascent+m_descent; 1066 // int linespacing = (tight) ? m_ascent : m_ascent+m_descent;
1067 // return (height()-m_descent)/(m_linespacing); 1067 // return (height()-m_descent)/(m_linespacing);
1068 return (height()-2)/(m_linespacing); 1068 return (height()-2)/(m_linespacing);
1069}; 1069};
1070 1070
1071bool QTReader::fillbuffer(int reuse, int ht, int newht) 1071bool QTReader::fillbuffer(int reuse, int ht, int newht)
1072{ 1072{
@@ -1108,30 +1108,30 @@ bool QTReader::fillbuffer(int reuse, int ht, int newht)
1108 } 1108 }
1109 } 1109 }
1110 1110
1111 --numlines; 1111 --numlines;
1112 mylastpos = locate(); 1112 mylastpos = locate();
1113 m_scrolldy1 = m_scrolldy2 = m_scrollpart = m_lastheight - lastypos; 1113 m_scrolldy1 = m_scrolldy2 = m_scrollpart = m_lastheight - lastypos;
1114 1114
1115 return true; 1115 return true;
1116} 1116}
1117 1117
1118void QTReader::dopagedn() 1118void QTReader::dopagedn()
1119{ 1119{
1120// qDebug("HEIGHT(2):%d", m_lastheight); 1120// odebug << "HEIGHT(2):" << m_lastheight << "" << oendl;
1121 buffdoc.unsuspend(); 1121 buffdoc.unsuspend();
1122 int skip = 0, ypos = 0; 1122 int skip = 0, ypos = 0;
1123 if (locate() != mylastpos) 1123 if (locate() != mylastpos)
1124 { 1124 {
1125 ////qDebug("Jumping to %u", mylastpos); 1125 ////odebug << "Jumping to " << mylastpos << "" << oendl;
1126 jumpto(mylastpos); 1126 jumpto(mylastpos);
1127 } 1127 }
1128 CDrawBuffer* reusebuffer = textarray[numlines]; 1128 CDrawBuffer* reusebuffer = textarray[numlines];
1129 if (reusebuffer != NULL && reusebuffer->eof()) return; 1129 if (reusebuffer != NULL && reusebuffer->eof()) return;
1130 if (reusebuffer != NULL) 1130 if (reusebuffer != NULL)
1131 { 1131 {
1132 for (int i = 0; i <= m_overlap; i++) 1132 for (int i = 0; i <= m_overlap; i++)
1133 { 1133 {
1134 int offset = numlines - m_overlap + i; 1134 int offset = numlines - m_overlap + i;
1135 reusebuffer = textarray[offset]; 1135 reusebuffer = textarray[offset];
1136 size_t reuselocn = locnarray[offset]; 1136 size_t reuselocn = locnarray[offset];
1137 textarray[offset] = textarray[i]; 1137 textarray[offset] = textarray[i];
@@ -1304,31 +1304,31 @@ bool QTReader::load_file(const char *newfile, unsigned int _lcn)
1304 { 1304 {
1305 lcn = m_lastposn; 1305 lcn = m_lastposn;
1306 } 1306 }
1307 // QMessageBox::information(0, "Opening...", newfile); 1307 // QMessageBox::information(0, "Opening...", newfile);
1308 m_lastwidth = width(); 1308 m_lastwidth = width();
1309 m_lastheight = height(); 1309 m_lastheight = height();
1310 if (buffdoc.openfile(this,newfile) == 0) 1310 if (buffdoc.openfile(this,newfile) == 0)
1311 { 1311 {
1312 m_lastfile = newfile; 1312 m_lastfile = newfile;
1313 buffdoc.setwidth(m_lastwidth-2*m_border); 1313 buffdoc.setwidth(m_lastwidth-2*m_border);
1314 bRC = true; 1314 bRC = true;
1315 buffdoc.setContinuous(m_continuousDocument); 1315 buffdoc.setContinuous(m_continuousDocument);
1316// // qDebug("buffdoc.openfile done"); 1316// // odebug << "buffdoc.openfile done" << oendl;
1317 locate(lcn); 1317 locate(lcn);
1318// // qDebug("buffdoc.locate done"); 1318// // odebug << "buffdoc.locate done" << oendl;
1319 } 1319 }
1320 setfilter(getfilter()); 1320 setfilter(getfilter());
1321 update(); 1321 update();
1322// // qDebug("Updated"); 1322// // odebug << "Updated" << oendl;
1323 return bRC; 1323 return bRC;
1324} 1324}
1325 1325
1326void QTReader::lineDown() 1326void QTReader::lineDown()
1327{ 1327{
1328 int ypos = 0; 1328 int ypos = 0;
1329 int offset = numlines; 1329 int offset = numlines;
1330 1330
1331 for (int i = 0; i <= numlines; i++) 1331 for (int i = 0; i <= numlines; i++)
1332 { 1332 {
1333 if ((ypos += textarray[numlines-i]->lineSpacing()) > height()) 1333 if ((ypos += textarray[numlines-i]->lineSpacing()) > height())
1334 { 1334 {
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp
index b072854..f18cb59 100644
--- a/noncore/apps/opie-reader/QTReaderApp.cpp
+++ b/noncore/apps/opie-reader/QTReaderApp.cpp
@@ -8,90 +8,91 @@
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20
20#include "useqpe.h" 21#include "useqpe.h"
21#include <qregexp.h> 22#include "QTReader.h"
22#include <qclipboard.h> 23#include "GraphicWin.h"
23#include <qwidgetstack.h> 24#include "Bkmks.h"
25#include "cbkmkselector.h"
26#include "infowin.h"
27#include "ToolbarPrefs.h"
28#include "Prefs.h"
29#include "CAnnoEdit.h"
30#include "QFloatBar.h"
31#include "FixedFont.h"
32#include "URLDialog.h"
33#include "QTReaderApp.h"
34#include "CDrawBuffer.h"
35#include "Filedata.h"
36#include "opie.h"
37#include "names.h"
38#include "CEncoding_tables.h"
39#include "CloseDialog.h"
40
41/* OPIE */
42#include <opie2/odebug.h>
43#ifdef USEQPE
44#include <qpe/menubutton.h>
45#include <qpe/fontdatabase.h>
46#include <qpe/global.h>
47#include <qpe/applnk.h>
48#include <qpe/config.h>
49#include <qpe/qcopenvelope_qws.h>
50#endif
51
52/* QT */
24#ifdef USEQPE 53#ifdef USEQPE
25#include <qmenubar.h> 54#include <qmenubar.h>
26#include <qtoolbar.h> 55#include <qtoolbar.h>
27#endif 56#endif
57#include <qregexp.h>
58#include <qclipboard.h>
59#include <qwidgetstack.h>
28#include <qmenubar.h> 60#include <qmenubar.h>
29#include <qtoolbar.h> 61#include <qtoolbar.h>
30#ifdef USEQPE
31#include <qpe/menubutton.h>
32#include <qpe/fontdatabase.h>
33#endif
34#include <qcombobox.h> 62#include <qcombobox.h>
35#include <qpopupmenu.h> 63#include <qpopupmenu.h>
36#include <qaction.h> 64#include <qaction.h>
37#include <qapplication.h> 65#include <qapplication.h>
38#include <qlineedit.h> 66#include <qlineedit.h>
39#include <qtoolbutton.h> 67#include <qtoolbutton.h>
40#include <qspinbox.h> 68#include <qspinbox.h>
41#include <qobjectlist.h> 69#include <qobjectlist.h>
42#ifdef USEQPE
43#include <qpe/global.h>
44#include <qpe/applnk.h>
45#endif
46#include <qfileinfo.h> 70#include <qfileinfo.h>
47#include <stdlib.h> //getenv
48#include <qprogressbar.h> 71#include <qprogressbar.h>
49#ifdef USEQPE
50#include <qpe/config.h>
51#endif
52#include <qbuttongroup.h> 72#include <qbuttongroup.h>
53#include <qradiobutton.h> 73#include <qradiobutton.h>
54#ifdef USEQPE 74
55#include <qpe/qcopenvelope_qws.h> 75/* STD */
56#endif 76#include <stdlib.h> //getenv
57#include "QTReader.h" 77
58#include "GraphicWin.h"
59#include "Bkmks.h"
60#include "cbkmkselector.h"
61#include "infowin.h"
62#include "ToolbarPrefs.h"
63#include "Prefs.h"
64#include "CAnnoEdit.h"
65#include "QFloatBar.h"
66#include "FixedFont.h"
67#include "URLDialog.h"
68//#include <qpe/fontdatabase.h>
69 78
70#ifdef USEQPE 79#ifdef USEQPE
71#include <qpe/resource.h> 80#include <qpe/resource.h>
72#include <qpe/qpeapplication.h> 81#include <qpe/qpeapplication.h>
73#include "fileBrowser.h" 82#include "fileBrowser.h"
74#else 83#else
75#include "qfiledialog.h" 84#include "qfiledialog.h"
76#endif 85#endif
77 86
78#include "QTReaderApp.h"
79#include "CDrawBuffer.h"
80#include "Filedata.h"
81#include "opie.h"
82#include "names.h"
83#include "CEncoding_tables.h"
84#include "CloseDialog.h"
85
86bool CheckVersion(int&, int&, char&); 87bool CheckVersion(int&, int&, char&);
87 88
88#ifdef _WINDOWS 89#ifdef _WINDOWS
89#define PICDIR "c:\\uqtreader\\pics\\" 90#define PICDIR "c:\\uqtreader\\pics\\"
90#else 91#else
91#ifdef USEQPE 92#ifdef USEQPE
92#define PICDIR "opie-reader/" 93#define PICDIR "opie-reader/"
93#else 94#else
94#define PICDIR "/home/tim/uqtreader/pics/" 95#define PICDIR "/home/tim/uqtreader/pics/"
95#endif 96#endif
96#endif 97#endif
97 98
@@ -116,46 +117,46 @@ void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); }
116#include <dirent.h> 117#include <dirent.h>
117#endif 118#endif
118 119
119void QTReaderApp::listBkmkFiles() 120void QTReaderApp::listBkmkFiles()
120{ 121{
121 bkmkselector->clear(); 122 bkmkselector->clear();
122 bkmkselector->setText("Cancel"); 123 bkmkselector->setText("Cancel");
123#ifndef USEQPE 124#ifndef USEQPE
124 int cnt = 0; 125 int cnt = 0;
125 126
126 QDir d = QDir::home(); // "/" 127 QDir d = QDir::home(); // "/"
127 if ( !d.cd(APPDIR) ) { // "/tmp" 128 if ( !d.cd(APPDIR) ) { // "/tmp"
128 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 129 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
129 d = QDir::home(); 130 d = QDir::home();
130 d.mkdir(APPDIR); 131 d.mkdir(APPDIR);
131 d.cd(APPDIR); 132 d.cd(APPDIR);
132 } 133 }
133 134
134 135
135 136
136 137
137 d.setFilter( QDir::Files | QDir::NoSymLinks ); 138 d.setFilter( QDir::Files | QDir::NoSymLinks );
138// d.setSorting( QDir::Size | QDir::Reversed ); 139// d.setSorting( QDir::Size | QDir::Reversed );
139 140
140 const QFileInfoList *list = d.entryInfoList(); 141 const QFileInfoList *list = d.entryInfoList();
141 QFileInfoListIterator it( *list ); // create list iterator 142 QFileInfoListIterator it( *list ); // create list iterator
142 QFileInfo *fi; // pointer for traversing 143 QFileInfo *fi; // pointer for traversing
143 144
144 while ( (fi=it.current()) ) { // for each file... 145 while ( (fi=it.current()) ) { // for each file...
145 146
146 bkmkselector->insertItem(fi->fileName()); 147 bkmkselector->insertItem(fi->fileName());
147 cnt++; 148 cnt++;
148 149
149 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 150 //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl;
150 ++it; // goto next list element 151 ++it; // goto next list element
151 } 152 }
152 153
153#else /* USEQPE */ 154#else /* USEQPE */
154 int cnt = 0; 155 int cnt = 0;
155 DIR *d; 156 DIR *d;
156 d = opendir((const char *)Global::applicationFileName(APPDIR,"")); 157 d = opendir((const char *)Global::applicationFileName(APPDIR,""));
157 158
158 while(1) 159 while(1)
159 { 160 {
160 struct dirent* de; 161 struct dirent* de;
161 struct stat buf; 162 struct stat buf;
@@ -205,26 +206,26 @@ void QTReaderApp::hidetoolbars()
205 searchBar->hide(); 206 searchBar->hide();
206 } 207 }
207} 208}
208 209
209QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) 210QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
210 : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false), 211 : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false),
211 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL) 212 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL)
212{ 213{
213 m_url_clipboard = false; 214 m_url_clipboard = false;
214 m_url_localfile = false; 215 m_url_localfile = false;
215 m_url_globalfile = false; 216 m_url_globalfile = false;
216 ftime(&m_lastkeytime); 217 ftime(&m_lastkeytime);
217//// qDebug("Application directory = %s", (const tchar *)QPEApplication::documentDir()); 218//// odebug << "Application directory = " << (const tchar *)QPEApplication::documentDir() << "" << oendl;
218//// qDebug("Application directory = %s", (const tchar *)Global::applicationFileName("uqtreader","bkmks.xml")); 219//// odebug << "Application directory = " << (const tchar *)Global::applicationFileName("uqtreader" << "" << oendl;
219 220
220 m_bcloseDisabled = true; 221 m_bcloseDisabled = true;
221 m_disableesckey = false; 222 m_disableesckey = false;
222 pBkmklist = NULL; 223 pBkmklist = NULL;
223 pOpenlist = NULL; 224 pOpenlist = NULL;
224// doc = 0; 225// doc = 0;
225 226
226 m_fBkmksChanged = false; 227 m_fBkmksChanged = false;
227 228
228 QString lang = getenv( "LANG" ); 229 QString lang = getenv( "LANG" );
229 QString rot = getenv( "QWS_DISPLAY" ); 230 QString rot = getenv( "QWS_DISPLAY" );
230 231
@@ -234,48 +235,48 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
234 { 235 {
235 m_rot = 90; 236 m_rot = 90;
236 } 237 }
237 else if (rot.contains("Rot180")) 238 else if (rot.contains("Rot180"))
238 { 239 {
239 m_rot = 180; 240 m_rot = 180;
240 } 241 }
241 else if (rot.contains("Rot270")) 242 else if (rot.contains("Rot270"))
242 { 243 {
243 m_rot = 270; 244 m_rot = 270;
244 } 245 }
245 246
246// qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot); 247// odebug << "Initial Rotation(" << m_rot << "):" << rot << "" << oendl;
247*/ 248*/
248 m_autogenstr = "^ *[A-Z].*[a-z] *$"; 249 m_autogenstr = "^ *[A-Z].*[a-z] *$";
249 250
250#ifdef USEQPE 251#ifdef USEQPE
251 setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); 252 setIcon( Resource::loadPixmap( PICDIR "uqtreader") );
252#else 253#else
253 setIcon( QPixmap (PICDIR "uqtreader.png") ); 254 setIcon( QPixmap (PICDIR "uqtreader.png") );
254#endif /* USEQPE */ 255#endif /* USEQPE */
255 256
256// QToolBar *bar = new QToolBar( this ); 257// QToolBar *bar = new QToolBar( this );
257// menubar = new QToolBar( this ); 258// menubar = new QToolBar( this );
258#ifdef USEQPE 259#ifdef USEQPE
259 Config config( APPDIR ); 260 Config config( APPDIR );
260#else 261#else
261 QDir d = QDir::home(); // "/" 262 QDir d = QDir::home(); // "/"
262 if ( !d.cd(APPDIR) ) { // "/tmp" 263 if ( !d.cd(APPDIR) ) { // "/tmp"
263 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 264 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
264 d = QDir::home(); 265 d = QDir::home();
265 d.mkdir(APPDIR); 266 d.mkdir(APPDIR);
266 d.cd(APPDIR); 267 d.cd(APPDIR);
267 } 268 }
268 QFileInfo fi(d, INIFILE); 269 QFileInfo fi(d, INIFILE);
269// qDebug("Path:%s", (const char*)fi.absFilePath()); 270// odebug << "Path:" << fi.absFilePath() << "" << oendl;
270 Config config(fi.absFilePath()); 271 Config config(fi.absFilePath());
271#endif 272#endif
272 config.setGroup("Toolbar"); 273 config.setGroup("Toolbar");
273 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 274 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false);
274 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 275 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1);
275 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 276 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2);
276 menubar = new QToolBar("Menus", this, m_tbposition); 277 menubar = new QToolBar("Menus", this, m_tbposition);
277 278
278// fileBar = new QToolBar("File", this); 279// fileBar = new QToolBar("File", this);
279// QToolBar* viewBar = new QToolBar("File", this); 280// QToolBar* viewBar = new QToolBar("File", this);
280// QToolBar* navBar = new QToolBar("File", this); 281// QToolBar* navBar = new QToolBar("File", this);
281// QToolBar* markBar = new QToolBar("File", this); 282// QToolBar* markBar = new QToolBar("File", this);
@@ -347,36 +348,36 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
347 connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); 348 connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) );
348 editorStack->addWidget( bkmkselector, get_unique_id() ); 349 editorStack->addWidget( bkmkselector, get_unique_id() );
349 350
350/* 351/*
351 importSelector = new FileSelector( "*", editorStack, "importselector", false ); 352 importSelector = new FileSelector( "*", editorStack, "importselector", false );
352 connect( importSelector, SIGNAL( fileSelected(const DocLnk&) ), this, SLOT( importFile(const DocLnk&) ) ); 353 connect( importSelector, SIGNAL( fileSelected(const DocLnk&) ), this, SLOT( importFile(const DocLnk&) ) );
353 354
354 editorStack->addWidget( importSelector, get_unique_id() ); 355 editorStack->addWidget( importSelector, get_unique_id() );
355 356
356 // don't need the close visible, it is redundant... 357 // don't need the close visible, it is redundant...
357 importSelector->setCloseVisible( FALSE ); 358 importSelector->setCloseVisible( FALSE );
358*/ 359*/
359// qDebug("Reading file list"); 360// odebug << "Reading file list" << oendl;
360 readfilelist(); 361 readfilelist();
361 362
362 reader = new QTReader( editorStack ); 363 reader = new QTReader( editorStack );
363 364
364 reader->bDoUpdates = false; 365 reader->bDoUpdates = false;
365 366
366#ifdef USEQPE 367#ifdef USEQPE
367 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); 368 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold);
368#endif 369#endif
369 370
370// qDebug("Reading config"); 371// odebug << "Reading config" << oendl;
371// Config config( APPDIR ); 372// Config config( APPDIR );
372 config.setGroup( "View" ); 373 config.setGroup( "View" );
373 m_debounce = config.readNumEntry("Debounce", 0); 374 m_debounce = config.readNumEntry("Debounce", 0);
374#ifdef USEQPE 375#ifdef USEQPE
375 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 376 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
376#else 377#else
377 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); 378 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true);
378#endif 379#endif
379 reader->bstripcr = config.readBoolEntry( "StripCr", true ); 380 reader->bstripcr = config.readBoolEntry( "StripCr", true );
380 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 381 reader->bfulljust = config.readBoolEntry( "FullJust", false );
381 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 382 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 ));
382 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 383 reader->setlead(config.readNumEntry( "ExtraLead", 0 ));
@@ -760,25 +761,25 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
760 a->addTo( regBar ); 761 a->addTo( regBar );
761 762
762 a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); 763 a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 );
763 connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); 764 connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) );
764 a->addTo( regBar ); 765 a->addTo( regBar );
765 766
766 regBar->hide(); 767 regBar->hide();
767 768
768 m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); 769 m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE );
769 770
770 m_fontBar->setHorizontalStretchable( TRUE ); 771 m_fontBar->setHorizontalStretchable( TRUE );
771 772
772// qDebug("Font selector"); 773// odebug << "Font selector" << oendl;
773 m_fontSelector = new QComboBox(false, m_fontBar); 774 m_fontSelector = new QComboBox(false, m_fontBar);
774 m_fontBar->setStretchableWidget( m_fontSelector ); 775 m_fontBar->setStretchableWidget( m_fontSelector );
775 { 776 {
776#ifndef USEQPE 777#ifndef USEQPE
777 QFontDatabase f; 778 QFontDatabase f;
778#else 779#else
779 FontDatabase f; 780 FontDatabase f;
780#endif 781#endif
781 QStringList flist = f.families(); 782 QStringList flist = f.families();
782 bool realfont = false; 783 bool realfont = false;
783 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) 784 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++)
784 { 785 {
@@ -792,94 +793,94 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
792 } // delete the FontDatabase!!! 793 } // delete the FontDatabase!!!
793 connect( m_fontSelector, SIGNAL( activated(const QString&) ), 794 connect( m_fontSelector, SIGNAL( activated(const QString&) ),
794 this, SLOT( do_setfont(const QString&) ) ); 795 this, SLOT( do_setfont(const QString&) ) );
795 connect( m_fontSelector, SIGNAL( activated(int) ), 796 connect( m_fontSelector, SIGNAL( activated(int) ),
796 this, SLOT( do_setencoding(int) ) ); 797 this, SLOT( do_setencoding(int) ) );
797 798
798 m_fontBar->hide(); 799 m_fontBar->hide();
799 m_fontVisible = false; 800 m_fontVisible = false;
800#ifdef USEMSGS 801#ifdef USEMSGS
801 connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), 802 connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ),
802 this, SLOT( msgHandler(const QCString&,const QByteArray&) ) ); 803 this, SLOT( msgHandler(const QCString&,const QByteArray&) ) );
803#endif 804#endif
804// qDebug("Initing"); 805// odebug << "Initing" << oendl;
805 reader->init(); 806 reader->init();
806// qDebug("Inited"); 807// odebug << "Inited" << oendl;
807// m_buttonAction[m_spaceTarget]->setOn(true); 808// m_buttonAction[m_spaceTarget]->setOn(true);
808// qDebug("fonting"); 809// odebug << "fonting" << oendl;
809 do_setfont(reader->m_fontname); 810 do_setfont(reader->m_fontname);
810 if (!reader->m_lastfile.isEmpty()) 811 if (!reader->m_lastfile.isEmpty())
811 { 812 {
812 //qDebug("doclnk"); 813// odebug << "doclnk" << oendl;
813 //doc = new DocLnk(reader->m_lastfile); 814 //doc = new DocLnk(reader->m_lastfile);
814 //qDebug("doclnk done"); 815// odebug << "doclnk done" << oendl;
815 if (pOpenlist != NULL) 816 if (pOpenlist != NULL)
816 { 817 {
817 818
818/* 819/*
819 int ind = 0; 820 int ind = 0;
820 Bkmk* p = (*pOpenlist)[ind]; 821 Bkmk* p = (*pOpenlist)[ind];
821 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) 822 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile)
822 { 823 {
823 p = (*pOpenlist)[++ind]; 824 p = (*pOpenlist)[++ind];
824 } 825 }
825*/ 826*/
826 Bkmk* p = NULL; 827 Bkmk* p = NULL;
827 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) 828 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++)
828 { 829 {
829 p = iter.pContent(); 830 p = iter.pContent();
830 if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) 831 if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile)
831 { 832 {
832 break; 833 break;
833 } 834 }
834 // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name())); 835// odebug << "Item:" << toQString(CFiledata(p->anno()).name()) << "" << oendl;
835 p = NULL; 836 p = NULL;
836 } 837 }
837 if (p != NULL) 838 if (p != NULL)
838 { 839 {
839 //qDebug("openfrombkmk"); 840// odebug << "openfrombkmk" << oendl;
840 if (!openfrombkmk(p)) 841 if (!openfrombkmk(p))
841 showEditTools(); 842 showEditTools();
842 } 843 }
843 else 844 else
844 { 845 {
845 //qDebug("openfile"); 846// odebug << "openfile" << oendl;
846 openFile( reader->m_lastfile ); 847 openFile( reader->m_lastfile );
847 } 848 }
848 } 849 }
849 else 850 else
850 { 851 {
851 // qDebug("Openfile 2"); 852// odebug << "Openfile 2" << oendl;
852 if (!reader->m_lastfile.isEmpty()) 853 if (!reader->m_lastfile.isEmpty())
853 openFile( reader->m_lastfile ); 854 openFile( reader->m_lastfile );
854 } 855 }
855 } 856 }
856 else 857 else
857 { 858 {
858 showEditTools(); 859 showEditTools();
859 } 860 }
860// qApp->processEvents(); 861// qApp->processEvents();
861 reader->bDoUpdates = true; 862 reader->bDoUpdates = true;
862 reader->update(); 863 reader->update();
863 config.setGroup("Version"); 864 config.setGroup("Version");
864 int major = config.readNumEntry("Major", 0); 865 int major = config.readNumEntry("Major", 0);
865 int bkmktype = config.readNumEntry("BkmkType", 0); 866 int bkmktype = config.readNumEntry("BkmkType", 0);
866 char minor = config.readNumEntry("Minor", 0); 867 char minor = config.readNumEntry("Minor", 0);
867 if (CheckVersion(major, bkmktype, minor)) 868 if (CheckVersion(major, bkmktype, minor))
868 { 869 {
869 config.writeEntry("Major", major); 870 config.writeEntry("Major", major);
870 config.writeEntry("BkmkType", bkmktype); 871 config.writeEntry("BkmkType", bkmktype);
871 config.writeEntry("Minor", (int)minor); 872 config.writeEntry("Minor", (int)minor);
872 } 873 }
873// qDebug("finished update"); 874// odebug << "finished update" << oendl;
874} 875}
875 876
876void QTReaderApp::addtoolbars(Config* config) 877void QTReaderApp::addtoolbars(Config* config)
877{ 878{
878 config->setGroup("Toolbar"); 879 config->setGroup("Toolbar");
879 880
880 if (fileBar != NULL) 881 if (fileBar != NULL)
881 { 882 {
882 if (fileBar != menubar) 883 if (fileBar != menubar)
883 { 884 {
884 fileBar->clear(); 885 fileBar->clear();
885 } 886 }
@@ -1019,90 +1020,90 @@ bool QTReaderApp::checkbar(Config* _config, const QString& key)
1019{ 1020{
1020 return _config->readBoolEntry(key, false); 1021 return _config->readBoolEntry(key, false);
1021} 1022}
1022 1023
1023 1024
1024QToolBar* QTReaderApp::filebar() 1025QToolBar* QTReaderApp::filebar()
1025{ 1026{
1026 if (fileBar == NULL) 1027 if (fileBar == NULL)
1027 { 1028 {
1028 switch (m_tbpol) 1029 switch (m_tbpol)
1029 { 1030 {
1030 case cesSingle: 1031 case cesSingle:
1031 // qDebug("Setting filebar to menubar"); 1032// odebug << "Setting filebar to menubar" << oendl;
1032 fileBar = menubar; 1033 fileBar = menubar;
1033 break; 1034 break;
1034 default: 1035 default:
1035 qDebug("Incorrect toolbar policy set"); 1036 odebug << "Incorrect toolbar policy set" << oendl;
1036 case cesMenuTool: 1037 case cesMenuTool:
1037 case cesMultiple: 1038 case cesMultiple:
1038 // qDebug("Creating new file bar"); 1039// odebug << "Creating new file bar" << oendl;
1039 fileBar = new QToolBar("File", this, m_tbposition); 1040 fileBar = new QToolBar("File", this, m_tbposition);
1040 break; 1041 break;
1041 } 1042 }
1042 //fileBar->setHorizontalStretchable( true ); 1043 //fileBar->setHorizontalStretchable( true );
1043 } 1044 }
1044 return fileBar; 1045 return fileBar;
1045} 1046}
1046QToolBar* QTReaderApp::viewbar() 1047QToolBar* QTReaderApp::viewbar()
1047{ 1048{
1048 if (viewBar == NULL) 1049 if (viewBar == NULL)
1049 { 1050 {
1050 switch (m_tbpol) 1051 switch (m_tbpol)
1051 { 1052 {
1052 case cesMultiple: 1053 case cesMultiple:
1053 viewBar = new QToolBar("View", this, m_tbposition); 1054 viewBar = new QToolBar("View", this, m_tbposition);
1054 break; 1055 break;
1055 default: 1056 default:
1056 qDebug("Incorrect toolbar policy set"); 1057 odebug << "Incorrect toolbar policy set" << oendl;
1057 case cesSingle: 1058 case cesSingle:
1058 case cesMenuTool: 1059 case cesMenuTool:
1059 viewBar = fileBar; 1060 viewBar = fileBar;
1060 break; 1061 break;
1061 } 1062 }
1062 } 1063 }
1063 return viewBar; 1064 return viewBar;
1064} 1065}
1065QToolBar* QTReaderApp::navbar() 1066QToolBar* QTReaderApp::navbar()
1066{ 1067{
1067 if (navBar == NULL) 1068 if (navBar == NULL)
1068 { 1069 {
1069 switch (m_tbpol) 1070 switch (m_tbpol)
1070 { 1071 {
1071 case cesMultiple: 1072 case cesMultiple:
1072 // qDebug("Creating new nav bar"); 1073// odebug << "Creating new nav bar" << oendl;
1073 navBar = new QToolBar("Navigation", this, m_tbposition); 1074 navBar = new QToolBar("Navigation", this, m_tbposition);
1074 break; 1075 break;
1075 default: 1076 default:
1076 qDebug("Incorrect toolbar policy set"); 1077 odebug << "Incorrect toolbar policy set" << oendl;
1077 case cesSingle: 1078 case cesSingle:
1078 case cesMenuTool: 1079 case cesMenuTool:
1079 navBar = fileBar; 1080 navBar = fileBar;
1080 // qDebug("Setting navbar to filebar"); 1081// odebug << "Setting navbar to filebar" << oendl;
1081 break; 1082 break;
1082 } 1083 }
1083 } 1084 }
1084 return navBar; 1085 return navBar;
1085} 1086}
1086QToolBar* QTReaderApp::markbar() 1087QToolBar* QTReaderApp::markbar()
1087{ 1088{
1088 if (markBar == NULL) 1089 if (markBar == NULL)
1089 { 1090 {
1090 switch (m_tbpol) 1091 switch (m_tbpol)
1091 { 1092 {
1092 case cesMultiple: 1093 case cesMultiple:
1093 markBar = new QToolBar("Marks", this, m_tbposition); 1094 markBar = new QToolBar("Marks", this, m_tbposition);
1094 break; 1095 break;
1095 default: 1096 default:
1096 qDebug("Incorrect toolbar policy set"); 1097 odebug << "Incorrect toolbar policy set" << oendl;
1097 case cesSingle: 1098 case cesSingle:
1098 case cesMenuTool: 1099 case cesMenuTool:
1099 markBar = fileBar; 1100 markBar = fileBar;
1100 break; 1101 break;
1101 } 1102 }
1102 } 1103 }
1103 return markBar; 1104 return markBar;
1104} 1105}
1105 1106
1106void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a) 1107void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a)
1107{ 1108{
1108 if (_config->readBoolEntry(key, false)) a->addTo( filebar() ); 1109 if (_config->readBoolEntry(key, false)) a->addTo( filebar() );
@@ -1118,25 +1119,25 @@ void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a)
1118void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a) 1119void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a)
1119{ 1120{
1120 if (_config->readBoolEntry(key, false)) a->addTo( viewbar() ); 1121 if (_config->readBoolEntry(key, false)) a->addTo( viewbar() );
1121} 1122}
1122 1123
1123void QTReaderApp::suspend() { reader->suspend(); } 1124void QTReaderApp::suspend() { reader->suspend(); }
1124 1125
1125#ifdef USEMSGS 1126#ifdef USEMSGS
1126void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) 1127void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
1127{ 1128{
1128 QString msg = QString::fromUtf8(_msg); 1129 QString msg = QString::fromUtf8(_msg);
1129 1130
1130//// qDebug("Received:%s", (const char*)msg); 1131//// odebug << "Received:" << msg << "" << oendl;
1131 1132
1132 QDataStream stream( _data, IO_ReadOnly ); 1133 QDataStream stream( _data, IO_ReadOnly );
1133 if ( msg == "info(QString)" ) 1134 if ( msg == "info(QString)" )
1134 { 1135 {
1135 QString info; 1136 QString info;
1136 stream >> info; 1137 stream >> info;
1137 QMessageBox::information(this, PROGNAME, info); 1138 QMessageBox::information(this, PROGNAME, info);
1138 } 1139 }
1139 else if ( msg == "Update(int)" ) 1140 else if ( msg == "Update(int)" )
1140 { 1141 {
1141 int info; 1142 int info;
1142 stream >> info; 1143 stream >> info;
@@ -1472,25 +1473,25 @@ ActionTypes QTReaderApp::ActNameToInt(const QString& _enc)
1472void QTReaderApp::setfullscreen(bool sfs) 1473void QTReaderApp::setfullscreen(bool sfs)
1473{ 1474{
1474 reader->bDoUpdates = false; 1475 reader->bDoUpdates = false;
1475 m_fullscreen = sfs; 1476 m_fullscreen = sfs;
1476 showEditTools(); 1477 showEditTools();
1477// qApp->processEvents(); 1478// qApp->processEvents();
1478 reader->bDoUpdates = true; 1479 reader->bDoUpdates = true;
1479 reader->update(); 1480 reader->update();
1480} 1481}
1481 1482
1482void QTReaderApp::buttonActionSelected(QAction* _a) 1483void QTReaderApp::buttonActionSelected(QAction* _a)
1483{ 1484{
1484//// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text())); 1485//// odebug << "es:" << _a << " : " << (const char *)(_a->text()) << " (" << ActNameToInt(_a->text()) << ")" << oendl;
1485 m_spaceTarget = ActNameToInt(_a->text()); 1486 m_spaceTarget = ActNameToInt(_a->text());
1486} 1487}
1487 1488
1488QTReaderApp::~QTReaderApp() 1489QTReaderApp::~QTReaderApp()
1489{ 1490{
1490} 1491}
1491 1492
1492void QTReaderApp::autoScroll(bool _b) 1493void QTReaderApp::autoScroll(bool _b)
1493{ 1494{
1494 reader->setautoscroll(_b); 1495 reader->setautoscroll(_b);
1495 setScrollState(reader->m_autoScroll); 1496 setScrollState(reader->m_autoScroll);
1496} 1497}
@@ -1554,73 +1555,73 @@ void QTReaderApp::fileClose()
1554 1555
1555 fileOpen2(); 1556 fileOpen2();
1556 } 1557 }
1557 delete cd; 1558 delete cd;
1558} 1559}
1559 1560
1560void QTReaderApp::updatefileinfo() 1561void QTReaderApp::updatefileinfo()
1561{ 1562{
1562 if (reader->m_string.isEmpty()) return; 1563 if (reader->m_string.isEmpty()) return;
1563 if (reader->m_lastfile.isEmpty()) return; 1564 if (reader->m_lastfile.isEmpty()) return;
1564 tchar* nm = fromQString(reader->m_string); 1565 tchar* nm = fromQString(reader->m_string);
1565 tchar* fl = fromQString(reader->m_lastfile); 1566 tchar* fl = fromQString(reader->m_lastfile);
1566// qDebug("Lastfile:%x", fl); 1567// odebug << "Lastfile:" << fl << "" << oendl;
1567 bool notadded = true; 1568 bool notadded = true;
1568 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>; 1569 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>;
1569 else 1570 else
1570 { 1571 {
1571 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) 1572 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++)
1572 { 1573 {
1573 if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0) 1574 if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0)
1574 { 1575 {
1575 iter->value(reader->pagelocate()); 1576 iter->value(reader->pagelocate());
1576 unsigned short dlen; 1577 unsigned short dlen;
1577 unsigned char* data; 1578 unsigned char* data;
1578 CFiledata fd(iter->anno()); 1579 CFiledata fd(iter->anno());
1579 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1580 reader->setSaveData(data, dlen, fd.content(), fd.length());
1580 // qDebug("Filedata(1):%u, %u", fd.length(), dlen); 1581// odebug << "Filedata(1):" << fd.length() << ", " << dlen << "" << oendl;
1581 // getstate(data, dlen); 1582 // getstate(data, dlen);
1582 iter->setAnno(data, dlen); 1583 iter->setAnno(data, dlen);
1583 notadded = false; 1584 notadded = false;
1584 delete [] data; 1585 delete [] data;
1585 break; 1586 break;
1586 } 1587 }
1587 } 1588 }
1588 } 1589 }
1589// qDebug("Added?:%x", notadded); 1590// odebug << "Added?:" << notadded << "" << oendl;
1590 if (notadded) 1591 if (notadded)
1591 { 1592 {
1592 struct stat fnstat; 1593 struct stat fnstat;
1593 stat((const char *)reader->m_lastfile, &fnstat); 1594 stat((const char *)reader->m_lastfile, &fnstat);
1594 CFiledata fd(fnstat.st_mtime, fl); 1595 CFiledata fd(fnstat.st_mtime, fl);
1595 unsigned short dlen; 1596 unsigned short dlen;
1596 unsigned char* data; 1597 unsigned char* data;
1597 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1598 reader->setSaveData(data, dlen, fd.content(), fd.length());
1598 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate())); 1599 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate()));
1599 //qDebug("Filedata(2):%u, %u", fd.length(), dlen); 1600// odebug << "Filedata(2):" << fd.length() << ", " << dlen << "" << oendl;
1600 delete [] data; 1601 delete [] data;
1601 } 1602 }
1602 delete [] nm; 1603 delete [] nm;
1603 delete [] fl; 1604 delete [] fl;
1604} 1605}
1605 1606
1606void QTReaderApp::fileOpen() 1607void QTReaderApp::fileOpen()
1607{ 1608{
1608/* 1609/*
1609 menu->hide(); 1610 menu->hide();
1610 fileBar->hide(); 1611 fileBar->hide();
1611 if (regVisible) regBar->hide(); 1612 if (regVisible) regBar->hide();
1612 if (searchVisible) searchBar->hide(); 1613 if (searchVisible) searchBar->hide();
1613*/ 1614*/
1614// qDebug("fileOpen"); 1615// odebug << "fileOpen" << oendl;
1615// if (!reader->m_lastfile.isEmpty()) 1616// if (!reader->m_lastfile.isEmpty())
1616 updatefileinfo(); 1617 updatefileinfo();
1617 fileOpen2(); 1618 fileOpen2();
1618} 1619}
1619 1620
1620void QTReaderApp::fileOpen2() 1621void QTReaderApp::fileOpen2()
1621{ 1622{
1622 if (pBkmklist != NULL) 1623 if (pBkmklist != NULL)
1623 { 1624 {
1624 if (m_fBkmksChanged) 1625 if (m_fBkmksChanged)
1625 { 1626 {
1626 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) 1627 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0)
@@ -1643,45 +1644,45 @@ void QTReaderApp::fileOpen2()
1643 } 1644 }
1644 if (usebrowser) 1645 if (usebrowser)
1645 { 1646 {
1646 QString fn = usefilebrowser(); 1647 QString fn = usefilebrowser();
1647 //qApp->processEvents(); 1648 //qApp->processEvents();
1648 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 1649 if (!fn.isEmpty() && QFileInfo(fn).isFile())
1649 { 1650 {
1650 openFile(fn); 1651 openFile(fn);
1651 } 1652 }
1652 reader->setFocus(); 1653 reader->setFocus();
1653 } 1654 }
1654// reader->refresh(); 1655// reader->refresh();
1655// qDebug("HEIGHT:%d", reader->m_lastheight); 1656// odebug << "HEIGHT:" << reader->m_lastheight << "" << oendl;
1656} 1657}
1657 1658
1658QString QTReaderApp::usefilebrowser() 1659QString QTReaderApp::usefilebrowser()
1659{ 1660{
1660#ifndef USEQPE 1661#ifndef USEQPE
1661 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); 1662 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) );
1662 return s; 1663 return s;
1663#else 1664#else
1664 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, 1665 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog,
1665 0, 1666 0,
1666 // WStyle_Customize | WStyle_NoBorderEx, 1667 // WStyle_Customize | WStyle_NoBorderEx,
1667 "*", QFileInfo(reader->m_lastfile).dirPath(true)); 1668 "*", QFileInfo(reader->m_lastfile).dirPath(true));
1668 1669
1669 1670
1670 QString fn; 1671 QString fn;
1671 if (fb->exec()) 1672 if (fb->exec())
1672 { 1673 {
1673 fn = fb->getCurrentFile(); 1674 fn = fb->getCurrentFile();
1674 } 1675 }
1675// qDebug("Selected %s", (const char*)fn); 1676// odebug << "Selected " << fn << "" << oendl;
1676 delete fb; 1677 delete fb;
1677 showEditTools(); 1678 showEditTools();
1678 return fn; 1679 return fn;
1679#endif 1680#endif
1680} 1681}
1681 1682
1682void QTReaderApp::showgraphic(QImage& pm) 1683void QTReaderApp::showgraphic(QImage& pm)
1683{ 1684{
1684 QPixmap pc; 1685 QPixmap pc;
1685 pc.convertFromImage(pm); 1686 pc.convertFromImage(pm);
1686 m_graphicwin->setPixmap(pc); 1687 m_graphicwin->setPixmap(pc);
1687 editorStack->raiseWidget( m_graphicwin ); 1688 editorStack->raiseWidget( m_graphicwin );
@@ -1794,25 +1795,25 @@ void QTReaderApp::showprefs()
1794 case 1: 1795 case 1:
1795 break; 1796 break;
1796 case 2: 1797 case 2:
1797 reader->btextfmt = true; 1798 reader->btextfmt = true;
1798 break; 1799 break;
1799 case 3: 1800 case 3:
1800 reader->bstriphtml = true; 1801 reader->bstriphtml = true;
1801 break; 1802 break;
1802 case 4: 1803 case 4:
1803 reader->bpeanut = true; 1804 reader->bpeanut = true;
1804 break; 1805 break;
1805 default: 1806 default:
1806 qDebug("Format out of range"); 1807 odebug << "Format out of range" << oendl;
1807 } 1808 }
1808 reader->bdepluck = prefwin->Depluck(); 1809 reader->bdepluck = prefwin->Depluck();
1809 reader->bdejpluck = prefwin->Dejpluck(); 1810 reader->bdejpluck = prefwin->Dejpluck();
1810 reader->setContinuous(prefwin->Continuous()); 1811 reader->setContinuous(prefwin->Continuous());
1811 1812
1812 m_spaceTarget = (ActionTypes)prefwin->spaceAction(); 1813 m_spaceTarget = (ActionTypes)prefwin->spaceAction();
1813 m_escapeTarget = (ActionTypes)prefwin->escapeAction(); 1814 m_escapeTarget = (ActionTypes)prefwin->escapeAction();
1814 m_returnTarget = (ActionTypes)prefwin->returnAction(); 1815 m_returnTarget = (ActionTypes)prefwin->returnAction();
1815 m_leftTarget = (ActionTypes)prefwin->leftAction(); 1816 m_leftTarget = (ActionTypes)prefwin->leftAction();
1816 m_rightTarget = (ActionTypes)prefwin->rightAction(); 1817 m_rightTarget = (ActionTypes)prefwin->rightAction();
1817 m_upTarget = (ActionTypes)prefwin->upAction(); 1818 m_upTarget = (ActionTypes)prefwin->upAction();
1818 m_downTarget = (ActionTypes)prefwin->downAction(); 1819 m_downTarget = (ActionTypes)prefwin->downAction();
@@ -1854,25 +1855,25 @@ void QTReaderApp::showprefs()
1854 } 1855 }
1855} 1856}
1856 1857
1857void QTReaderApp::showtoolbarprefs() 1858void QTReaderApp::showtoolbarprefs()
1858{ 1859{
1859#ifdef USEQPE 1860#ifdef USEQPE
1860 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this); 1861 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this);
1861#else 1862#else
1862 QFileInfo fi; 1863 QFileInfo fi;
1863 QDir d = QDir::home(); // "/" 1864 QDir d = QDir::home(); // "/"
1864 if ( !d.cd(APPDIR) ) 1865 if ( !d.cd(APPDIR) )
1865 { // "/tmp" 1866 { // "/tmp"
1866 qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); 1867 owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl;
1867 d = QDir::home(); 1868 d = QDir::home();
1868 d.mkdir(APPDIR); 1869 d.mkdir(APPDIR);
1869 d.cd(APPDIR); 1870 d.cd(APPDIR);
1870 } 1871 }
1871 fi.setFile(d, INIFILE); 1872 fi.setFile(d, INIFILE);
1872 CBarPrefs* prefwin = new CBarPrefs(fi.absFilePath(), !m_bFloatingDialog, this); 1873 CBarPrefs* prefwin = new CBarPrefs(fi.absFilePath(), !m_bFloatingDialog, this);
1873#endif 1874#endif
1874 prefwin->tbpolicy(m_tbpolsave); 1875 prefwin->tbpolicy(m_tbpolsave);
1875 prefwin->tbposition(m_tbposition-2); 1876 prefwin->tbposition(m_tbposition-2);
1876 prefwin->tbmovable(m_tbmovesave); 1877 prefwin->tbmovable(m_tbmovesave);
1877 prefwin->floating(m_bFloatingDialog); 1878 prefwin->floating(m_bFloatingDialog);
1878 if (prefwin->exec()) 1879 if (prefwin->exec())
@@ -1891,25 +1892,25 @@ void QTReaderApp::showtoolbarprefs()
1891 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy(); 1892 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy();
1892 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2); 1893 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2);
1893 m_tbmovesave = prefwin->tbmovable(); 1894 m_tbmovesave = prefwin->tbmovable();
1894 bool isChanged = prefwin->isChanged(); 1895 bool isChanged = prefwin->isChanged();
1895 delete prefwin; 1896 delete prefwin;
1896#ifdef USEQPE 1897#ifdef USEQPE
1897 Config config( APPDIR ); 1898 Config config( APPDIR );
1898#else 1899#else
1899 QFileInfo fi; 1900 QFileInfo fi;
1900 QDir d = QDir::home(); // "/" 1901 QDir d = QDir::home(); // "/"
1901 if ( !d.cd(APPDIR) ) 1902 if ( !d.cd(APPDIR) )
1902 { // "/tmp" 1903 { // "/tmp"
1903 qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); 1904 owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl;
1904 d = QDir::home(); 1905 d = QDir::home();
1905 d.mkdir(APPDIR); 1906 d.mkdir(APPDIR);
1906 d.cd(APPDIR); 1907 d.cd(APPDIR);
1907 } 1908 }
1908 fi.setFile(d, INIFILE); 1909 fi.setFile(d, INIFILE);
1909 Config config( fi.absFilePath() ); 1910 Config config( fi.absFilePath() );
1910#endif 1911#endif
1911 if (isChanged) addtoolbars(&config); 1912 if (isChanged) addtoolbars(&config);
1912 } 1913 }
1913 else 1914 else
1914 { 1915 {
1915 delete prefwin; 1916 delete prefwin;
@@ -2166,25 +2167,25 @@ void QTReaderApp::editFind()
2166 Global::showInputMethod(); 2167 Global::showInputMethod();
2167#endif 2168#endif
2168 searchBar->show(); 2169 searchBar->show();
2169 searchVisible = TRUE; 2170 searchVisible = TRUE;
2170 searchEdit->setFocus(); 2171 searchEdit->setFocus();
2171#ifdef __ISEARCH 2172#ifdef __ISEARCH
2172 searchStack->push(new searchrecord("",reader->pagelocate())); 2173 searchStack->push(new searchrecord("",reader->pagelocate()));
2173#endif 2174#endif
2174} 2175}
2175 2176
2176void QTReaderApp::findNext() 2177void QTReaderApp::findNext()
2177{ 2178{
2178// // qDebug("findNext called\n"); 2179// // odebug << "findNext called\n" << oendl;
2179#ifdef __ISEARCH 2180#ifdef __ISEARCH
2180 QString arg = searchEdit->text(); 2181 QString arg = searchEdit->text();
2181#else 2182#else
2182 QRegExp arg = searchEdit->text(); 2183 QRegExp arg = searchEdit->text();
2183#endif 2184#endif
2184 CDrawBuffer test(&(reader->m_fontControl)); 2185 CDrawBuffer test(&(reader->m_fontControl));
2185 size_t start = reader->pagelocate(); 2186 size_t start = reader->pagelocate();
2186 reader->jumpto(start); 2187 reader->jumpto(start);
2187 reader->getline(&test); 2188 reader->getline(&test);
2188 dosearch(start, test, arg); 2189 dosearch(start, test, arg);
2189} 2190}
2190 2191
@@ -2262,30 +2263,30 @@ bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg)
2262 if (reader->buffdoc.getpara(test) < 0) 2263 if (reader->buffdoc.getpara(test) < 0)
2263 { 2264 {
2264 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) 2265 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2)
2265 pos = searchStart; 2266 pos = searchStart;
2266 else 2267 else
2267 pos = start; 2268 pos = start;
2268 findClose(); 2269 findClose();
2269 pbar->hide(); 2270 pbar->hide();
2270 reader->locate(pos); 2271 reader->locate(pos);
2271 return false; 2272 return false;
2272 } 2273 }
2273 } 2274 }
2274// qDebug("Found it at %u:%u", pos, offset); 2275// odebug << "Found it at " << pos << ":" << offset << "" << oendl;
2275 pbar->hide(); 2276 pbar->hide();
2276// qDebug("Hid"); 2277// odebug << "Hid" << oendl;
2277 reader->locate(pos+offset); 2278 reader->locate(pos+offset);
2278// qDebug("Loacted"); 2279// odebug << "Loacted" << oendl;
2279// qDebug("page up"); 2280// odebug << "page up" << oendl;
2280 ret = true; 2281 ret = true;
2281 } 2282 }
2282 else 2283 else
2283 { 2284 {
2284 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) 2285 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2)
2285 pos = searchStart; 2286 pos = searchStart;
2286 else 2287 else
2287 pos = start; 2288 pos = start;
2288 ret = false; 2289 ret = false;
2289 findClose(); 2290 findClose();
2290 } 2291 }
2291 return ret; 2292 return ret;
@@ -2324,25 +2325,25 @@ void QTReaderApp::search(const QString & arg)
2324 } 2325 }
2325 dosearch(start, test, arg); 2326 dosearch(start, test, arg);
2326} 2327}
2327#else 2328#else
2328void QTReaderApp::search() 2329void QTReaderApp::search()
2329{ 2330{
2330 findNext(); 2331 findNext();
2331} 2332}
2332#endif 2333#endif
2333 2334
2334void QTReaderApp::openFile( const QString &f ) 2335void QTReaderApp::openFile( const QString &f )
2335{ 2336{
2336// qDebug("File:%s", (const char*)f); 2337// odebug << "File:" << f << "" << oendl;
2337// openFile(DocLnk(f)); 2338// openFile(DocLnk(f));
2338//} 2339//}
2339// 2340//
2340//void QTReaderApp::openFile( const DocLnk &f ) 2341//void QTReaderApp::openFile( const DocLnk &f )
2341//{ 2342//{
2342 clear(); 2343 clear();
2343 QFileInfo fm(f); 2344 QFileInfo fm(f);
2344 if ( fm.exists() ) 2345 if ( fm.exists() )
2345 { 2346 {
2346// QMessageBox::information(0, "Progress", "Calling fileNew()"); 2347// QMessageBox::information(0, "Progress", "Calling fileNew()");
2347#ifdef USEQPE 2348#ifdef USEQPE
2348 if (fm.extension( FALSE ) == "desktop") 2349 if (fm.extension( FALSE ) == "desktop")
@@ -2371,52 +2372,52 @@ void QTReaderApp::openFile( const QString &f )
2371/* 2372/*
2372void QTReaderApp::resizeEvent(QResizeEvent* e) 2373void QTReaderApp::resizeEvent(QResizeEvent* e)
2373{ 2374{
2374 if (m_fullscreen) 2375 if (m_fullscreen)
2375 { 2376 {
2376 showNormal(); 2377 showNormal();
2377 showFullScreen(); 2378 showFullScreen();
2378 } 2379 }
2379} 2380}
2380*/ 2381*/
2381void QTReaderApp::handlekey(QKeyEvent* e) 2382void QTReaderApp::handlekey(QKeyEvent* e)
2382{ 2383{
2383// qDebug("Keypress event"); 2384// odebug << "Keypress event" << oendl;
2384 timeb now; 2385 timeb now;
2385 ftime(&now); 2386 ftime(&now);
2386 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; 2387 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm;
2387 if (etime < m_debounce) 2388 if (etime < m_debounce)
2388 { 2389 {
2389 return; 2390 return;
2390 } 2391 }
2391 m_lastkeytime = now; 2392 m_lastkeytime = now;
2392 switch(e->key()) 2393 switch(e->key())
2393 { 2394 {
2394 case Key_Escape: 2395 case Key_Escape:
2395 // qDebug("escape event"); 2396// odebug << "escape event" << oendl;
2396 if (m_disableesckey) 2397 if (m_disableesckey)
2397 { 2398 {
2398 m_disableesckey = false; 2399 m_disableesckey = false;
2399 } 2400 }
2400 else 2401 else
2401 { 2402 {
2402 m_bcloseDisabled = true; 2403 m_bcloseDisabled = true;
2403 if (m_fullscreen) 2404 if (m_fullscreen)
2404 { 2405 {
2405 m_actFullscreen->setOn(false); 2406 m_actFullscreen->setOn(false);
2406 e->accept(); 2407 e->accept();
2407 } 2408 }
2408 else 2409 else
2409 { 2410 {
2410 // qDebug("escape action"); 2411// odebug << "escape action" << oendl;
2411 doAction(m_escapeTarget, e); 2412 doAction(m_escapeTarget, e);
2412 } 2413 }
2413 } 2414 }
2414 break; 2415 break;
2415 case Key_Space: 2416 case Key_Space:
2416 { 2417 {
2417 doAction(m_spaceTarget, e); 2418 doAction(m_spaceTarget, e);
2418 } 2419 }
2419 break; 2420 break;
2420 case Key_Return: 2421 case Key_Return:
2421 { 2422 {
2422 doAction(m_returnTarget, e); 2423 doAction(m_returnTarget, e);
@@ -2497,64 +2498,64 @@ void QTReaderApp::showEditTools()
2497 if (markBar != NULL) markBar->hide(); 2498 if (markBar != NULL) markBar->hide();
2498 searchBar->hide(); 2499 searchBar->hide();
2499 regBar->hide(); 2500 regBar->hide();
2500#ifdef USEQPE 2501#ifdef USEQPE
2501 Global::hideInputMethod(); 2502 Global::hideInputMethod();
2502#endif 2503#endif
2503 m_fontBar->hide(); 2504 m_fontBar->hide();
2504 //showNormal(); 2505 //showNormal();
2505 showFullScreen(); 2506 showFullScreen();
2506 } 2507 }
2507 else 2508 else
2508 { 2509 {
2509 //qDebug("him"); 2510// odebug << "him" << oendl;
2510#ifdef USEQPE 2511#ifdef USEQPE
2511 Global::hideInputMethod(); 2512 Global::hideInputMethod();
2512#endif 2513#endif
2513 //qDebug("eb"); 2514// odebug << "eb" << oendl;
2514 menubar->show(); 2515 menubar->show();
2515 if (fileBar != NULL) fileBar->show(); 2516 if (fileBar != NULL) fileBar->show();
2516 if (viewBar != NULL) viewBar->show(); 2517 if (viewBar != NULL) viewBar->show();
2517 if (navBar != NULL) navBar->show(); 2518 if (navBar != NULL) navBar->show();
2518 if (markBar != NULL) markBar->show(); 2519 if (markBar != NULL) markBar->show();
2519 mb->show(); 2520 mb->show();
2520 if ( searchVisible ) 2521 if ( searchVisible )
2521 { 2522 {
2522#ifdef USEQPE 2523#ifdef USEQPE
2523 Global::showInputMethod(); 2524 Global::showInputMethod();
2524#endif 2525#endif
2525 searchBar->show(); 2526 searchBar->show();
2526 } 2527 }
2527 if ( regVisible ) 2528 if ( regVisible )
2528 { 2529 {
2529#ifdef USEQPE 2530#ifdef USEQPE
2530 Global::showInputMethod(); 2531 Global::showInputMethod();
2531#endif 2532#endif
2532 regBar->show(); 2533 regBar->show();
2533 } 2534 }
2534 if (m_fontVisible) m_fontBar->show(); 2535 if (m_fontVisible) m_fontBar->show();
2535 //qDebug("sn"); 2536// odebug << "sn" << oendl;
2536 showNormal(); 2537 showNormal();
2537 //qDebug("sm"); 2538// odebug << "sm" << oendl;
2538#ifdef USEQPE 2539#ifdef USEQPE
2539 showMaximized(); 2540 showMaximized();
2540#endif 2541#endif
2541 //setCentralWidget(reader); 2542 //setCentralWidget(reader);
2542 } 2543 }
2543 2544
2544// qDebug("uc"); 2545// odebug << "uc" << oendl;
2545 updateCaption(); 2546 updateCaption();
2546// qDebug("rw"); 2547// odebug << "rw" << oendl;
2547 editorStack->raiseWidget( reader ); 2548 editorStack->raiseWidget( reader );
2548// qDebug("sf"); 2549// odebug << "sf" << oendl;
2549 reader->setFocus(); 2550 reader->setFocus();
2550 reader->refresh(); 2551 reader->refresh();
2551} 2552}
2552/* 2553/*
2553void QTReaderApp::save() 2554void QTReaderApp::save()
2554{ 2555{
2555 if ( !doc ) 2556 if ( !doc )
2556 return; 2557 return;
2557 if ( !editor->edited() ) 2558 if ( !editor->edited() )
2558 return; 2559 return;
2559 2560
2560 QString rt = editor->text(); 2561 QString rt = editor->text();
@@ -2605,42 +2606,42 @@ void QTReaderApp::updateCaption()
2605} 2606}
2606 2607
2607void QTReaderApp::setDocument(const QString& fileref) 2608void QTReaderApp::setDocument(const QString& fileref)
2608{ 2609{
2609 bFromDocView = TRUE; 2610 bFromDocView = TRUE;
2610//QMessageBox::information(0, "setDocument", fileref); 2611//QMessageBox::information(0, "setDocument", fileref);
2611 openFile(fileref); 2612 openFile(fileref);
2612// showEditTools(); 2613// showEditTools();
2613} 2614}
2614 2615
2615void QTReaderApp::closeEvent( QCloseEvent *e ) 2616void QTReaderApp::closeEvent( QCloseEvent *e )
2616{ 2617{
2617// qDebug("Close event"); 2618// odebug << "Close event" << oendl;
2618 if (m_fullscreen) 2619 if (m_fullscreen)
2619 { 2620 {
2620 m_fullscreen = false; 2621 m_fullscreen = false;
2621 showEditTools(); 2622 showEditTools();
2622 e->accept(); 2623 e->accept();
2623 } 2624 }
2624 else if (m_dontSave) 2625 else if (m_dontSave)
2625 { 2626 {
2626 e->accept(); 2627 e->accept();
2627 } 2628 }
2628 else 2629 else
2629 { 2630 {
2630 if (editorStack->visibleWidget() == reader) 2631 if (editorStack->visibleWidget() == reader)
2631 { 2632 {
2632 if ((m_escapeTarget != cesNone) && m_bcloseDisabled) 2633 if ((m_escapeTarget != cesNone) && m_bcloseDisabled)
2633 { 2634 {
2634 //qDebug("Close disabled"); 2635// odebug << "Close disabled" << oendl;
2635 m_bcloseDisabled = false; 2636 m_bcloseDisabled = false;
2636 e->ignore(); 2637 e->ignore();
2637 } 2638 }
2638 else 2639 else
2639 { 2640 {
2640 if (m_fontVisible) 2641 if (m_fontVisible)
2641 { 2642 {
2642 m_fontBar->hide(); 2643 m_fontBar->hide();
2643 m_fontVisible = false; 2644 m_fontVisible = false;
2644 } 2645 }
2645 if (regVisible) 2646 if (regVisible)
2646 { 2647 {
@@ -2700,25 +2701,25 @@ bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab)
2700{ 2701{
2701 bkmkselector->clear(); 2702 bkmkselector->clear();
2702 if (_lab.isEmpty()) 2703 if (_lab.isEmpty())
2703 bkmkselector->setText("Cancel"); 2704 bkmkselector->setText("Cancel");
2704 else 2705 else
2705 bkmkselector->setText(_lab); 2706 bkmkselector->setText(_lab);
2706 int cnt = 0; 2707 int cnt = 0;
2707 if (plist != NULL) 2708 if (plist != NULL)
2708 { 2709 {
2709 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) 2710 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++)
2710 { 2711 {
2711#ifdef _UNICODE 2712#ifdef _UNICODE
2712 // qDebug("Item:%s", (const char*)toQString(i->name())); 2713// odebug << "Item:" << toQString(i->name()) << "" << oendl;
2713 bkmkselector->insertItem(toQString(i->name())); 2714 bkmkselector->insertItem(toQString(i->name()));
2714#else 2715#else
2715 bkmkselector->insertItem(i->name()); 2716 bkmkselector->insertItem(i->name());
2716#endif 2717#endif
2717 cnt++; 2718 cnt++;
2718 } 2719 }
2719 } 2720 }
2720 if (cnt > 0) 2721 if (cnt > 0)
2721 { 2722 {
2722 hidetoolbars(); 2723 hidetoolbars();
2723 editorStack->raiseWidget( bkmkselector ); 2724 editorStack->raiseWidget( bkmkselector );
2724 return true; 2725 return true;
@@ -2729,68 +2730,68 @@ bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab)
2729 2730
2730void QTReaderApp::do_autogen() 2731void QTReaderApp::do_autogen()
2731{ 2732{
2732 m_nRegAction = cAutoGen; 2733 m_nRegAction = cAutoGen;
2733 regEdit->setText(m_autogenstr); 2734 regEdit->setText(m_autogenstr);
2734 do_regedit(); 2735 do_regedit();
2735} 2736}
2736 2737
2737void QTReaderApp::do_regedit() 2738void QTReaderApp::do_regedit()
2738{ 2739{
2739// fileBar->hide(); 2740// fileBar->hide();
2740 reader->bDoUpdates = false; 2741 reader->bDoUpdates = false;
2741// qDebug("Showing regbar"); 2742// odebug << "Showing regbar" << oendl;
2742 regBar->show(); 2743 regBar->show();
2743// qDebug("Showing kbd"); 2744// odebug << "Showing kbd" << oendl;
2744#ifdef USEQPE 2745#ifdef USEQPE
2745 Global::showInputMethod(); 2746 Global::showInputMethod();
2746#endif 2747#endif
2747 regVisible = true; 2748 regVisible = true;
2748 regEdit->setFocus(); 2749 regEdit->setFocus();
2749// qApp->processEvents(); 2750// qApp->processEvents();
2750 reader->bDoUpdates = true; 2751 reader->bDoUpdates = true;
2751 reader->update(); 2752 reader->update();
2752} 2753}
2753 2754
2754bool QTReaderApp::openfrombkmk(Bkmk* bk) 2755bool QTReaderApp::openfrombkmk(Bkmk* bk)
2755{ 2756{
2756 QString fn = toQString( 2757 QString fn = toQString(
2757 CFiledata(bk->anno()).name() 2758 CFiledata(bk->anno()).name()
2758 ); 2759 );
2759 //qDebug("fileinfo"); 2760// odebug << "fileinfo" << oendl;
2760 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 2761 if (!fn.isEmpty() && QFileInfo(fn).isFile())
2761 { 2762 {
2762 //qDebug("Opening"); 2763// odebug << "Opening" << oendl;
2763 openFile(fn); 2764 openFile(fn);
2764 struct stat fnstat; 2765 struct stat fnstat;
2765 stat((const char *)reader->m_lastfile, &fnstat); 2766 stat((const char *)reader->m_lastfile, &fnstat);
2766 2767
2767 if (CFiledata(bk->anno()).date() 2768 if (CFiledata(bk->anno()).date()
2768 != fnstat.st_mtime) 2769 != fnstat.st_mtime)
2769 { 2770 {
2770 CFiledata fd(bk->anno()); 2771 CFiledata fd(bk->anno());
2771 fd.setdate(fnstat.st_mtime); 2772 fd.setdate(fnstat.st_mtime);
2772 bk->value(0); 2773 bk->value(0);
2773 } 2774 }
2774 else 2775 else
2775 { 2776 {
2776 unsigned short svlen = bk->filedatalen(); 2777 unsigned short svlen = bk->filedatalen();
2777 unsigned char* svdata = bk->filedata(); 2778 unsigned char* svdata = bk->filedata();
2778 reader->putSaveData(svdata, svlen); 2779 reader->putSaveData(svdata, svlen);
2779 // setstate(svdata, svlen); 2780 // setstate(svdata, svlen);
2780 if (svlen != 0) 2781 if (svlen != 0)
2781 { 2782 {
2782 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); 2783 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?");
2783 } 2784 }
2784 // qDebug("updating"); 2785// odebug << "updating" << oendl;
2785 // showEditTools(); 2786 // showEditTools();
2786 reader->locate(bk->value()); 2787 reader->locate(bk->value());
2787 } 2788 }
2788 return true; 2789 return true;
2789 } 2790 }
2790 else 2791 else
2791 { 2792 {
2792 return false; 2793 return false;
2793 } 2794 }
2794} 2795}
2795 2796
2796void QTReaderApp::gotobkmk(int ind) 2797void QTReaderApp::gotobkmk(int ind)
@@ -2803,25 +2804,25 @@ void QTReaderApp::gotobkmk(int ind)
2803 // qApp->processEvents(); 2804 // qApp->processEvents();
2804 if (!openfrombkmk((*pOpenlist)[ind])) 2805 if (!openfrombkmk((*pOpenlist)[ind]))
2805 { 2806 {
2806 pOpenlist->erase(ind); 2807 pOpenlist->erase(ind);
2807 QMessageBox::information(this, PROGNAME, "Can't find file"); 2808 QMessageBox::information(this, PROGNAME, "Can't find file");
2808 } 2809 }
2809 } 2810 }
2810 break; 2811 break;
2811 case cGotoBkmk: 2812 case cGotoBkmk:
2812 reader->locate((*pBkmklist)[ind]->value()); 2813 reader->locate((*pBkmklist)[ind]->value());
2813 break; 2814 break;
2814 case cDelBkmk: 2815 case cDelBkmk:
2815 //// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name()); 2816//// odebug << "Deleting:" << (*pBkmklist)[ind]->name() << "\n" << oendl;
2816 pBkmklist->erase(ind); 2817 pBkmklist->erase(ind);
2817 m_fBkmksChanged = true; 2818 m_fBkmksChanged = true;
2818 // pBkmklist->sort(); 2819 // pBkmklist->sort();
2819 break; 2820 break;
2820 case cRmBkmkFile: 2821 case cRmBkmkFile:
2821 { 2822 {
2822#ifndef USEQPE 2823#ifndef USEQPE
2823 QDir d = QDir::home(); // "/" 2824 QDir d = QDir::home(); // "/"
2824 d.cd(APPDIR); 2825 d.cd(APPDIR);
2825 d.remove(bkmkselector->text(ind)); 2826 d.remove(bkmkselector->text(ind));
2826#else /* USEQPE */ 2827#else /* USEQPE */
2827 unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind))); 2828 unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind)));
@@ -2903,49 +2904,49 @@ void QTReaderApp::gotobkmk(int ind)
2903 delete fb; 2904 delete fb;
2904 fclose(fin); 2905 fclose(fin);
2905 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); 2906 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)));
2906 } 2907 }
2907 else 2908 else
2908 { 2909 {
2909 QMessageBox::information(this, PROGNAME, "Couldn't open input"); 2910 QMessageBox::information(this, PROGNAME, "Couldn't open input");
2910 } 2911 }
2911 2912
2912/* 2913/*
2913 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE ); 2914 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE );
2914 int ret = f->exec(); 2915 int ret = f->exec();
2915 qDebug("Return:%d", ret); 2916 odebug << "Return:" << ret << "" << oendl;
2916 DocLnk* doc = f->getDoc(); 2917 DocLnk* doc = f->getDoc();
2917 if (doc != NULL) 2918 if (doc != NULL)
2918 { 2919 {
2919 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); 2920 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r");
2920 QString rt; 2921 QString rt;
2921 rt = "<html><body>\n"; 2922 rt = "<html><body>\n";
2922 int ch = 0; 2923 int ch = 0;
2923 while ((ch = fgetc(fin)) != EOF) 2924 while ((ch = fgetc(fin)) != EOF)
2924 { 2925 {
2925 rt += (char)ch; 2926 rt += (char)ch;
2926 } 2927 }
2927 fclose(fin); 2928 fclose(fin);
2928 rt += "</html></body>\n"; 2929 rt += "</html></body>\n";
2929 if ( doc->name().isEmpty() ) 2930 if ( doc->name().isEmpty() )
2930 { 2931 {
2931 doc->setName(bkmkselector->text(ind)); 2932 doc->setName(bkmkselector->text(ind));
2932 } 2933 }
2933 FileManager fm; 2934 FileManager fm;
2934 fm.saveFile( *doc, rt ); 2935 fm.saveFile( *doc, rt );
2935 qDebug("YES"); 2936 odebug << "YES" << oendl;
2936 } 2937 }
2937 else 2938 else
2938 { 2939 {
2939 qDebug("NO"); 2940 odebug << "NO" << oendl;
2940 } 2941 }
2941 delete f; 2942 delete f;
2942*/ 2943*/
2943 2944
2944#endif /* USEQPE */ 2945#endif /* USEQPE */
2945 } 2946 }
2946 break; 2947 break;
2947 } 2948 }
2948} 2949}
2949 2950
2950void QTReaderApp::cancelbkmk() 2951void QTReaderApp::cancelbkmk()
2951{ 2952{
@@ -3000,25 +3001,25 @@ void QTReaderApp::do_regaction()
3000 do_mono(regEdit->text()); 3001 do_mono(regEdit->text());
3001 break; 3002 break;
3002*/ 3003*/
3003 case cSetTarget: 3004 case cSetTarget:
3004 do_settarget(regEdit->text()); 3005 do_settarget(regEdit->text());
3005 break; 3006 break;
3006#ifdef _SCROLLPIPE 3007#ifdef _SCROLLPIPE
3007 case cSetPipeTarget: 3008 case cSetPipeTarget:
3008 do_setpipetarget(regEdit->text()); 3009 do_setpipetarget(regEdit->text());
3009 break; 3010 break;
3010#endif 3011#endif
3011 case cSetConfigName: 3012 case cSetConfigName:
3012 // qDebug("Saving config"); 3013// odebug << "Saving config" << oendl;
3013 do_saveconfig(regEdit->text(), false); 3014 do_saveconfig(regEdit->text(), false);
3014 break; 3015 break;
3015 } 3016 }
3016// reader->restore(); 3017// reader->restore();
3017// fileBar->show(); 3018// fileBar->show();
3018 reader->setFocus(); 3019 reader->setFocus();
3019// qApp->processEvents(); 3020// qApp->processEvents();
3020 reader->bDoUpdates = true; 3021 reader->bDoUpdates = true;
3021 reader->update(); 3022 reader->update();
3022} 3023}
3023 3024
3024void QTReaderApp::do_settarget(const QString& _txt) 3025void QTReaderApp::do_settarget(const QString& _txt)
@@ -3092,57 +3093,57 @@ void QTReaderApp::setfontHelper(const QString& lcn, int size)
3092 searchEdit->setFont( f ); 3093 searchEdit->setFont( f );
3093 m_annoWin->setFont( f ); 3094 m_annoWin->setFont( f );
3094 } 3095 }
3095 reader->m_fontname = lcn; 3096 reader->m_fontname = lcn;
3096 if (!reader->ChangeFont(size)) 3097 if (!reader->ChangeFont(size))
3097 { 3098 {
3098 reader->ChangeFont(size); 3099 reader->ChangeFont(size);
3099 } 3100 }
3100} 3101}
3101 3102
3102void QTReaderApp::do_setencoding(int i) 3103void QTReaderApp::do_setencoding(int i)
3103{ 3104{
3104// qDebug("setencoding:%d", i); 3105// odebug << "setencoding:" << i << "" << oendl;
3105 if (m_fontAction == cChooseEncoding) 3106 if (m_fontAction == cChooseEncoding)
3106 { 3107 {
3107 reader->setencoding(i); 3108 reader->setencoding(i);
3108 } 3109 }
3109 reader->refresh(); 3110 reader->refresh();
3110 m_fontBar->hide(); 3111 m_fontBar->hide();
3111 m_fontVisible = false; 3112 m_fontVisible = false;
3112// qDebug("showedit"); 3113// odebug << "showedit" << oendl;
3113 if (reader->isVisible()) showEditTools(); 3114 if (reader->isVisible()) showEditTools();
3114// qDebug("showeditdone"); 3115// odebug << "showeditdone" << oendl;
3115} 3116}
3116 3117
3117void QTReaderApp::do_setfont(const QString& lcn) 3118void QTReaderApp::do_setfont(const QString& lcn)
3118{ 3119{
3119 if (m_fontAction == cChooseFont) 3120 if (m_fontAction == cChooseFont)
3120 { 3121 {
3121 setfontHelper(lcn); 3122 setfontHelper(lcn);
3122 } 3123 }
3123 reader->refresh(); 3124 reader->refresh();
3124 m_fontBar->hide(); 3125 m_fontBar->hide();
3125 m_fontVisible = false; 3126 m_fontVisible = false;
3126// qDebug("showedit"); 3127// odebug << "showedit" << oendl;
3127 //if (reader->isVisible()) 3128 //if (reader->isVisible())
3128 showEditTools(); 3129 showEditTools();
3129// qDebug("showeditdone"); 3130// odebug << "showeditdone" << oendl;
3130} 3131}
3131 3132
3132void QTReaderApp::do_autogen(const QString& regText) 3133void QTReaderApp::do_autogen(const QString& regText)
3133{ 3134{
3134 unsigned long fs, ts; 3135 unsigned long fs, ts;
3135 reader->sizes(fs,ts); 3136 reader->sizes(fs,ts);
3136// // qDebug("Reg:%s\n", (const tchar*)(regEdit->text())); 3137// // odebug << "Reg:" << (const tchar*)(regEdit->text()) << "\n" << oendl;
3137 m_autogenstr = regText; 3138 m_autogenstr = regText;
3138 QRegExp re(regText); 3139 QRegExp re(regText);
3139 CBuffer buff; 3140 CBuffer buff;
3140 if (pBkmklist != NULL) delete pBkmklist; 3141 if (pBkmklist != NULL) delete pBkmklist;
3141 pBkmklist = new CList<Bkmk>; 3142 pBkmklist = new CList<Bkmk>;
3142 m_fBkmksChanged = true; 3143 m_fBkmksChanged = true;
3143 3144
3144 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height()); 3145 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height());
3145 pbar->show(); 3146 pbar->show();
3146 pbar->raise(); 3147 pbar->raise();
3147 pbar->reset(); 3148 pbar->reset();
3148 reader->update(); 3149 reader->update();
@@ -3171,25 +3172,25 @@ void QTReaderApp::do_autogen(const QString& regText)
3171#endif 3172#endif
3172 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn)); 3173 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn));
3173 } 3174 }
3174 pBkmklist->sort(); 3175 pBkmklist->sort();
3175 pbar->setProgress(100); 3176 pbar->setProgress(100);
3176 qApp->processEvents(); 3177 qApp->processEvents();
3177 pbar->hide(); 3178 pbar->hide();
3178 reader->refresh(); 3179 reader->refresh();
3179} 3180}
3180 3181
3181void QTReaderApp::saveprefs() 3182void QTReaderApp::saveprefs()
3182{ 3183{
3183// qDebug("saveprefs"); 3184// odebug << "saveprefs" << oendl;
3184// reader->saveprefs("uqtreader"); 3185// reader->saveprefs("uqtreader");
3185// if (!m_loadedconfig) 3186// if (!m_loadedconfig)
3186 do_saveconfig( APPDIR, true ); 3187 do_saveconfig( APPDIR, true );
3187 3188
3188/* 3189/*
3189 Config config( APPDIR ); 3190 Config config( APPDIR );
3190 config.setGroup( "View" ); 3191 config.setGroup( "View" );
3191 3192
3192 reader->m_lastposn = reader->pagelocate(); 3193 reader->m_lastposn = reader->pagelocate();
3193 3194
3194 config.writeEntry("FloatDialogs", m_bFloatingDialog); 3195 config.writeEntry("FloatDialogs", m_bFloatingDialog);
3195 config.writeEntry( "StripCr", reader->bstripcr ); 3196 config.writeEntry( "StripCr", reader->bstripcr );
@@ -3252,29 +3253,29 @@ void QTReaderApp::saveprefs()
3252 3253
3253 config.setGroup( "Toolbar" ); 3254 config.setGroup( "Toolbar" );
3254 config.writeEntry("Movable", m_tbmovesave); 3255 config.writeEntry("Movable", m_tbmovesave);
3255 config.writeEntry("Policy", m_tbpolsave); 3256 config.writeEntry("Policy", m_tbpolsave);
3256 config.writeEntry("Position", m_tbposition); 3257 config.writeEntry("Position", m_tbposition);
3257*/ 3258*/
3258 savefilelist(); 3259 savefilelist();
3259} 3260}
3260 3261
3261/* 3262/*
3262void QTReaderApp::oldFile() 3263void QTReaderApp::oldFile()
3263{ 3264{
3264// qDebug("oldFile called"); 3265// odebug << "oldFile called" << oendl;
3265 reader->setText(true); 3266 reader->setText(true);
3266// qDebug("settext called"); 3267// odebug << "settext called" << oendl;
3267 showEditTools(); 3268 showEditTools();
3268// qDebug("showedit called"); 3269// odebug << "showedit called" << oendl;
3269} 3270}
3270*/ 3271*/
3271 3272
3272/* 3273/*
3273void info_cb(Fl_Widget* o, void* _data) 3274void info_cb(Fl_Widget* o, void* _data)
3274{ 3275{
3275 3276
3276 if (infowin == NULL) 3277 if (infowin == NULL)
3277 { 3278 {
3278 3279
3279 infowin = new Fl_Window(160,240); 3280 infowin = new Fl_Window(160,240);
3280 filename = new Fl_Output(45,5,110,14,"Filename"); 3281 filename = new Fl_Output(45,5,110,14,"Filename");
@@ -3332,43 +3333,43 @@ void QTReaderApp::savebkmks()
3332} 3333}
3333 3334
3334void QTReaderApp::readfilelist() 3335void QTReaderApp::readfilelist()
3335{ 3336{
3336#ifndef USEQPE 3337#ifndef USEQPE
3337 QDir d = QDir::home(); // "/" 3338 QDir d = QDir::home(); // "/"
3338 d.cd(APPDIR); 3339 d.cd(APPDIR);
3339 QFileInfo fi(d, ".openfiles"); 3340 QFileInfo fi(d, ".openfiles");
3340 BkmkFile bf((const char *)fi.absFilePath()); 3341 BkmkFile bf((const char *)fi.absFilePath());
3341#else /* USEQPE */ 3342#else /* USEQPE */
3342 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles")); 3343 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"));
3343#endif /* USEQPE */ 3344#endif /* USEQPE */
3344// qDebug("Reading open files"); 3345// odebug << "Reading open files" << oendl;
3345 pOpenlist = bf.readall(); 3346 pOpenlist = bf.readall();
3346// if (pOpenlist != NULL) qDebug("...with success"); 3347// if (pOpenlist != NULL) odebug << "...with success" << oendl;
3347// else qDebug("...without success!"); 3348// else odebug << "...without success!" << oendl;
3348} 3349}
3349 3350
3350void QTReaderApp::savefilelist() 3351void QTReaderApp::savefilelist()
3351{ 3352{
3352 if (pOpenlist != NULL) 3353 if (pOpenlist != NULL)
3353 { 3354 {
3354#ifndef USEQPE 3355#ifndef USEQPE
3355 QDir d = QDir::home(); // "/" 3356 QDir d = QDir::home(); // "/"
3356 d.cd(APPDIR); 3357 d.cd(APPDIR);
3357 QFileInfo fi(d, ".openfiles"); 3358 QFileInfo fi(d, ".openfiles");
3358 BkmkFile bf((const char *)fi.absFilePath(), true); 3359 BkmkFile bf((const char *)fi.absFilePath(), true);
3359#else /* USEQPE */ 3360#else /* USEQPE */
3360 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true); 3361 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true);
3361#endif /* USEQPE */ 3362#endif /* USEQPE */
3362 //qDebug("Writing open files"); 3363// odebug << "Writing open files" << oendl;
3363 bf.write(*pOpenlist); 3364 bf.write(*pOpenlist);
3364 } 3365 }
3365} 3366}
3366 3367
3367void QTReaderApp::readbkmks() 3368void QTReaderApp::readbkmks()
3368{ 3369{
3369 if (pBkmklist != NULL) 3370 if (pBkmklist != NULL)
3370 { 3371 {
3371 delete pBkmklist; 3372 delete pBkmklist;
3372 } 3373 }
3373 struct stat fnstat; 3374 struct stat fnstat;
3374 struct stat bkstat; 3375 struct stat bkstat;
@@ -3460,25 +3461,25 @@ void QTReaderApp::showAnnotation()
3460 m_annoWin->setName(toQString(m_anno->name())); 3461 m_annoWin->setName(toQString(m_anno->name()));
3461 m_annoWin->setAnno(toQString(m_anno->anno())); 3462 m_annoWin->setAnno(toQString(m_anno->anno()));
3462 m_annoIsEditing = false; 3463 m_annoIsEditing = false;
3463#ifdef USEQPE 3464#ifdef USEQPE
3464 Global::showInputMethod(); 3465 Global::showInputMethod();
3465#endif 3466#endif
3466 editorStack->raiseWidget( m_annoWin ); 3467 editorStack->raiseWidget( m_annoWin );
3467 m_annoWin->setFocus(); 3468 m_annoWin->setFocus();
3468} 3469}
3469 3470
3470void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line) 3471void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line)
3471{ 3472{
3472//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd); 3473//// odebug << "OnWordSelected(" << posn << "):" << wrd << "" << oendl;
3473 3474
3474 if (m_doClipboard) 3475 if (m_doClipboard)
3475 { 3476 {
3476 QClipboard* cb = QApplication::clipboard(); 3477 QClipboard* cb = QApplication::clipboard();
3477 cb->setText(wrd); 3478 cb->setText(wrd);
3478#ifdef USEQPE 3479#ifdef USEQPE
3479 if (wrd.length() > 10) 3480 if (wrd.length() > 10)
3480 { 3481 {
3481 Global::statusMessage(wrd.left(8) + ".."); 3482 Global::statusMessage(wrd.left(8) + "..");
3482 } 3483 }
3483 else 3484 else
3484 { 3485 {
@@ -3510,25 +3511,25 @@ void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString&
3510#endif 3511#endif
3511} 3512}
3512 3513
3513void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e) 3514void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3514{ 3515{
3515 if (a == 0) 3516 if (a == 0)
3516 { 3517 {
3517 e->ignore(); 3518 e->ignore();
3518 } 3519 }
3519 else 3520 else
3520 { 3521 {
3521 e->accept(); 3522 e->accept();
3522 //qDebug("Accepted"); 3523// odebug << "Accepted" << oendl;
3523 switch (a) 3524 switch (a)
3524 { 3525 {
3525 case cesOpenFile: 3526 case cesOpenFile:
3526 { 3527 {
3527 fileOpen(); 3528 fileOpen();
3528 } 3529 }
3529 break; 3530 break;
3530 case cesAutoScroll: 3531 case cesAutoScroll:
3531 { 3532 {
3532 reader->setautoscroll(!reader->m_autoScroll); 3533 reader->setautoscroll(!reader->m_autoScroll);
3533 setScrollState(reader->m_autoScroll); 3534 setScrollState(reader->m_autoScroll);
3534 } 3535 }
@@ -3573,97 +3574,97 @@ void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3573 reader->lineUp(); 3574 reader->lineUp();
3574 break; 3575 break;
3575 case cesLineDown: 3576 case cesLineDown:
3576 reader->lineDown(); 3577 reader->lineDown();
3577 break; 3578 break;
3578 case cesStartDoc: 3579 case cesStartDoc:
3579 gotoStart(); 3580 gotoStart();
3580 break; 3581 break;
3581 case cesEndDoc: 3582 case cesEndDoc:
3582 gotoEnd(); 3583 gotoEnd();
3583 break; 3584 break;
3584 default: 3585 default:
3585 qDebug("Unknown ActionType:%u", a); 3586 odebug << "Unknown ActionType:" << a << "" << oendl;
3586 break; 3587 break;
3587 } 3588 }
3588 } 3589 }
3589} 3590}
3590 3591
3591void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); } 3592void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); }
3592void QTReaderApp::restoreFocus() { reader->setFocus(); } 3593void QTReaderApp::restoreFocus() { reader->setFocus(); }
3593 3594
3594void QTReaderApp::SaveConfig() 3595void QTReaderApp::SaveConfig()
3595{ 3596{
3596 m_nRegAction = cSetConfigName; 3597 m_nRegAction = cSetConfigName;
3597 regEdit->setText(reader->m_string); 3598 regEdit->setText(reader->m_string);
3598 do_regedit(); 3599 do_regedit();
3599} 3600}
3600 3601
3601void QTReaderApp::do_saveconfig(const QString& _txt, bool full) 3602void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3602{ 3603{
3603// qDebug("do_saveconfig:%s", (const char*)_txt); 3604// odebug << "do_saveconfig:" << _txt << "" << oendl;
3604#ifdef USEQPE 3605#ifdef USEQPE
3605 QString configname; 3606 QString configname;
3606 Config::Domain dom; 3607 Config::Domain dom;
3607 3608
3608 if (full) 3609 if (full)
3609 { 3610 {
3610 configname = _txt; 3611 configname = _txt;
3611 dom = Config::User; 3612 dom = Config::User;
3612 } 3613 }
3613 else 3614 else
3614 { 3615 {
3615 configname = Global::applicationFileName(APPDIR "/configs", _txt); 3616 configname = Global::applicationFileName(APPDIR "/configs", _txt);
3616 dom = Config::File; 3617 dom = Config::File;
3617 } 3618 }
3618 3619
3619 Config config(configname, dom); 3620 Config config(configname, dom);
3620 config.setGroup( "View" ); 3621 config.setGroup( "View" );
3621 3622
3622#else 3623#else
3623 QFileInfo fi; 3624 QFileInfo fi;
3624 if (full) 3625 if (full)
3625 { 3626 {
3626 // qDebug("full:%s", (const char*)_txt); 3627// odebug << "full:" << _txt << "" << oendl;
3627 QDir d = QDir::home(); // "/" 3628 QDir d = QDir::home(); // "/"
3628 if ( !d.cd(_txt) ) 3629 if ( !d.cd(_txt) )
3629 { // "/tmp" 3630 { // "/tmp"
3630 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); 3631 owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl;
3631 d = QDir::home(); 3632 d = QDir::home();
3632 d.mkdir(_txt); 3633 d.mkdir(_txt);
3633 d.cd(_txt); 3634 d.cd(_txt);
3634 } 3635 }
3635 fi.setFile(d, INIFILE); 3636 fi.setFile(d, INIFILE);
3636 } 3637 }
3637 else 3638 else
3638 { 3639 {
3639 QDir d = QDir::home(); // "/" 3640 QDir d = QDir::home(); // "/"
3640 if ( !d.cd(APPDIR) ) 3641 if ( !d.cd(APPDIR) )
3641 { // "/tmp" 3642 { // "/tmp"
3642 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 3643 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
3643 d = QDir::home(); 3644 d = QDir::home();
3644 d.mkdir(APPDIR); 3645 d.mkdir(APPDIR);
3645 d.cd(APPDIR); 3646 d.cd(APPDIR);
3646 } 3647 }
3647 if ( !d.cd("configs") ) 3648 if ( !d.cd("configs") )
3648 { // "/tmp" 3649 { // "/tmp"
3649 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); 3650 owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl;
3650 d = QDir::home(); 3651 d = QDir::home();
3651 d.cd(APPDIR); 3652 d.cd(APPDIR);
3652 d.mkdir("configs"); 3653 d.mkdir("configs");
3653 d.cd("configs"); 3654 d.cd("configs");
3654 } 3655 }
3655 fi.setFile(d, _txt); 3656 fi.setFile(d, _txt);
3656 } 3657 }
3657 //qDebug("Path:%s", (const char*)fi.absFilePath()); 3658// odebug << "Path:" << fi.absFilePath() << "" << oendl;
3658 Config config(fi.absFilePath()); 3659 Config config(fi.absFilePath());
3659#endif 3660#endif
3660 3661
3661 3662
3662 config.writeEntry( "StripCr", reader->bstripcr ); 3663 config.writeEntry( "StripCr", reader->bstripcr );
3663 config.writeEntry( "AutoFmt", reader->bautofmt ); 3664 config.writeEntry( "AutoFmt", reader->bautofmt );
3664 config.writeEntry( "TextFmt", reader->btextfmt ); 3665 config.writeEntry( "TextFmt", reader->btextfmt );
3665 config.writeEntry( "StripHtml", reader->bstriphtml ); 3666 config.writeEntry( "StripHtml", reader->bstriphtml );
3666 config.writeEntry( "Dehyphen", reader->bdehyphen ); 3667 config.writeEntry( "Dehyphen", reader->bdehyphen );
3667 config.writeEntry( "Depluck", reader->bdepluck ); 3668 config.writeEntry( "Depluck", reader->bdepluck );
3668 config.writeEntry( "Dejpluck", reader->bdejpluck ); 3669 config.writeEntry( "Dejpluck", reader->bdejpluck );
3669 config.writeEntry( "OneSpace", reader->bonespace ); 3670 config.writeEntry( "OneSpace", reader->bonespace );
@@ -3925,44 +3926,44 @@ bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
3925 } 3926 }
3926 3927
3927 Config config(configname, dom); 3928 Config config(configname, dom);
3928 config.setGroup( "View" ); 3929 config.setGroup( "View" );
3929 3930
3930#else 3931#else
3931 QFileInfo fi; 3932 QFileInfo fi;
3932 if (full) 3933 if (full)
3933 { 3934 {
3934 QDir d = QDir::home(); // "/" 3935 QDir d = QDir::home(); // "/"
3935 if ( !d.cd(_txt) ) 3936 if ( !d.cd(_txt) )
3936 { // "/tmp" 3937 { // "/tmp"
3937 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); 3938 owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl;
3938 d = QDir::home(); 3939 d = QDir::home();
3939 d.mkdir(_txt); 3940 d.mkdir(_txt);
3940 d.cd(_txt); 3941 d.cd(_txt);
3941 } 3942 }
3942 fi.setFile(d, INIFILE); 3943 fi.setFile(d, INIFILE);
3943 } 3944 }
3944 else 3945 else
3945 { 3946 {
3946 QDir d = QDir::home(); // "/" 3947 QDir d = QDir::home(); // "/"
3947 if ( !d.cd(APPDIR) ) 3948 if ( !d.cd(APPDIR) )
3948 { // "/tmp" 3949 { // "/tmp"
3949 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 3950 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
3950 d = QDir::home(); 3951 d = QDir::home();
3951 d.mkdir(APPDIR); 3952 d.mkdir(APPDIR);
3952 d.cd(APPDIR); 3953 d.cd(APPDIR);
3953 } 3954 }
3954 if ( !d.cd("configs") ) 3955 if ( !d.cd("configs") )
3955 { // "/tmp" 3956 { // "/tmp"
3956 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); 3957 owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl;
3957 d = QDir::home(); 3958 d = QDir::home();
3958 d.mkdir("configs"); 3959 d.mkdir("configs");
3959 d.cd("configs"); 3960 d.cd("configs");
3960 } 3961 }
3961 fi.setFile(d, _txt); 3962 fi.setFile(d, _txt);
3962 } 3963 }
3963#ifdef _WINDOWS 3964#ifdef _WINDOWS
3964 struct stat fnstat; 3965 struct stat fnstat;
3965 if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows 3966 if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows
3966#else 3967#else
3967 if (!fi.exists()) return false; 3968 if (!fi.exists()) return false;
3968#endif 3969#endif
@@ -4052,48 +4053,48 @@ bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
4052 return true; 4053 return true;
4053} 4054}
4054 4055
4055bool QTReaderApp::PopulateConfig(const char* tgtdir) 4056bool QTReaderApp::PopulateConfig(const char* tgtdir)
4056{ 4057{
4057 bkmkselector->clear(); 4058 bkmkselector->clear();
4058 bkmkselector->setText("Cancel"); 4059 bkmkselector->setText("Cancel");
4059#ifndef USEQPE 4060#ifndef USEQPE
4060 int cnt = 0; 4061 int cnt = 0;
4061 4062
4062 QDir d = QDir::home(); // "/" 4063 QDir d = QDir::home(); // "/"
4063 if ( !d.cd(APPDIR) ) { // "/tmp" 4064 if ( !d.cd(APPDIR) ) { // "/tmp"
4064 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 4065 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
4065 d = QDir::home(); 4066 d = QDir::home();
4066 d.mkdir(APPDIR); 4067 d.mkdir(APPDIR);
4067 d.cd(APPDIR); 4068 d.cd(APPDIR);
4068 } 4069 }
4069 if ( !d.cd(tgtdir) ) { // "/tmp" 4070 if ( !d.cd(tgtdir) ) { // "/tmp"
4070 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir ); 4071 owarn << "Cannot find the \"~/" APPDIR "/" << tgtdir << "\" directory" << oendl;
4071 d = QDir::home(); 4072 d = QDir::home();
4072 d.mkdir(tgtdir); 4073 d.mkdir(tgtdir);
4073 d.cd(tgtdir); 4074 d.cd(tgtdir);
4074 } 4075 }
4075 d.setFilter( QDir::Files | QDir::NoSymLinks ); 4076 d.setFilter( QDir::Files | QDir::NoSymLinks );
4076// d.setSorting( QDir::Size | QDir::Reversed ); 4077// d.setSorting( QDir::Size | QDir::Reversed );
4077 4078
4078 const QFileInfoList *list = d.entryInfoList(); 4079 const QFileInfoList *list = d.entryInfoList();
4079 QFileInfoListIterator it( *list ); // create list iterator 4080 QFileInfoListIterator it( *list ); // create list iterator
4080 QFileInfo *fi; // pointer for traversing 4081 QFileInfo *fi; // pointer for traversing
4081 4082
4082 while ( (fi=it.current()) ) { // for each file... 4083 while ( (fi=it.current()) ) { // for each file...
4083 4084
4084 bkmkselector->insertItem(fi->fileName()); 4085 bkmkselector->insertItem(fi->fileName());
4085 cnt++; 4086 cnt++;
4086 4087
4087 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 4088 //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl;
4088 ++it; // goto next list element 4089 ++it; // goto next list element
4089 } 4090 }
4090 4091
4091#else /* USEQPE */ 4092#else /* USEQPE */
4092 int cnt = 0; 4093 int cnt = 0;
4093 DIR *d; 4094 DIR *d;
4094 char* finaldir; 4095 char* finaldir;
4095 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1]; 4096 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1];
4096 strcpy(finaldir, APPDIR); 4097 strcpy(finaldir, APPDIR);
4097 strcat(finaldir, "/"); 4098 strcat(finaldir, "/");
4098 strcat(finaldir, tgtdir); 4099 strcat(finaldir, tgtdir);
4099 d = opendir((const char *)Global::applicationFileName(finaldir,"")); 4100 d = opendir((const char *)Global::applicationFileName(finaldir,""));
@@ -4159,56 +4160,56 @@ void QTReaderApp::OnURLSelected(const QString& href)
4159 urld->clipboard(m_url_clipboard); 4160 urld->clipboard(m_url_clipboard);
4160 urld->localfile(m_url_localfile); 4161 urld->localfile(m_url_localfile);
4161 urld->globalfile(m_url_globalfile); 4162 urld->globalfile(m_url_globalfile);
4162 if (urld->exec()) 4163 if (urld->exec())
4163 { 4164 {
4164 m_url_clipboard = urld->clipboard(); 4165 m_url_clipboard = urld->clipboard();
4165 m_url_localfile = urld->localfile(); 4166 m_url_localfile = urld->localfile();
4166 m_url_globalfile = urld->globalfile(); 4167 m_url_globalfile = urld->globalfile();
4167 if (m_url_clipboard) 4168 if (m_url_clipboard)
4168 { 4169 {
4169 QClipboard* cb = QApplication::clipboard(); 4170 QClipboard* cb = QApplication::clipboard();
4170 cb->setText(href); 4171 cb->setText(href);
4171 qDebug("<a href=\"%s\">%s</a>", (const char*)href, (const char*)href); 4172 odebug << "<a href=\"" << href << "\">" << href << "</a>" << oendl;
4172 } 4173 }
4173 if (m_url_localfile) 4174 if (m_url_localfile)
4174 { 4175 {
4175 writeUrl(reader->m_string, href); 4176 writeUrl(reader->m_string, href);
4176 } 4177 }
4177 if (m_url_globalfile) 4178 if (m_url_globalfile)
4178 { 4179 {
4179 writeUrl("GlobalURLFile", href); 4180 writeUrl("GlobalURLFile", href);
4180 } 4181 }
4181 } 4182 }
4182 delete urld; 4183 delete urld;
4183} 4184}
4184 4185
4185void QTReaderApp::writeUrl(const QString& file, const QString& href) 4186void QTReaderApp::writeUrl(const QString& file, const QString& href)
4186{ 4187{
4187 QString filename; 4188 QString filename;
4188#ifdef USEQPE 4189#ifdef USEQPE
4189 filename = Global::applicationFileName(APPDIR "/urls", file); 4190 filename = Global::applicationFileName(APPDIR "/urls", file);
4190#else 4191#else
4191 QFileInfo fi; 4192 QFileInfo fi;
4192 QDir d = QDir::home(); // "/" 4193 QDir d = QDir::home(); // "/"
4193 if ( !d.cd(APPDIR) ) 4194 if ( !d.cd(APPDIR) )
4194 { // "/tmp" 4195 { // "/tmp"
4195 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 4196 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
4196 d = QDir::home(); 4197 d = QDir::home();
4197 d.mkdir(APPDIR); 4198 d.mkdir(APPDIR);
4198 d.cd(APPDIR); 4199 d.cd(APPDIR);
4199 } 4200 }
4200 if ( !d.cd("urls") ) 4201 if ( !d.cd("urls") )
4201 { // "/tmp" 4202 { // "/tmp"
4202 qWarning( "Cannot find the \"~/" APPDIR "/urls\" directory" ); 4203 owarn << "Cannot find the \"~/" APPDIR "/urls\" directory" << oendl;
4203 d = QDir::home(); 4204 d = QDir::home();
4204 d.cd(APPDIR); 4205 d.cd(APPDIR);
4205 d.mkdir("urls"); 4206 d.mkdir("urls");
4206 d.cd("urls"); 4207 d.cd("urls");
4207 } 4208 }
4208 fi.setFile(d, file); 4209 fi.setFile(d, file);
4209 filename = fi.absFilePath(); 4210 filename = fi.absFilePath();
4210#endif 4211#endif
4211 FILE* fout = fopen(filename, "a"); 4212 FILE* fout = fopen(filename, "a");
4212 if (fout != NULL) 4213 if (fout != NULL)
4213 { 4214 {
4214 fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href); 4215 fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href);
diff --git a/noncore/apps/opie-reader/StyleConsts.cpp b/noncore/apps/opie-reader/StyleConsts.cpp
index 9fb56b7..f47acee 100644
--- a/noncore/apps/opie-reader/StyleConsts.cpp
+++ b/noncore/apps/opie-reader/StyleConsts.cpp
@@ -1,21 +1,21 @@
1 1
2#include <qimage.h> 2#include <qimage.h>
3#include "StyleConsts.h" 3#include "StyleConsts.h"
4 4
5GraphicLink::~GraphicLink() { delete graphic; } 5GraphicLink::~GraphicLink() { delete graphic; }
6 6
7pmstore::~pmstore() 7pmstore::~pmstore()
8{ 8{
9//// qDebug("Deleting image"); 9//// odebug << "Deleting image" << oendl;
10 delete graphic; 10 delete graphic;
11} 11}
12 12
13CStyle::~CStyle() 13CStyle::~CStyle()
14{ 14{
15 if (graphic != NULL) 15 if (graphic != NULL)
16 { 16 {
17 if (--(graphic->count) == 0) 17 if (--(graphic->count) == 0)
18 { 18 {
19 delete graphic; 19 delete graphic;
20 } 20 }
21 } 21 }
diff --git a/noncore/apps/opie-reader/fileBrowser.cpp b/noncore/apps/opie-reader/fileBrowser.cpp
index e1cde6c..72a1222 100644
--- a/noncore/apps/opie-reader/fileBrowser.cpp
+++ b/noncore/apps/opie-reader/fileBrowser.cpp
@@ -123,70 +123,70 @@ void fileBrowser::resizeEvent(QResizeEvent* e)
123 ListView->setColumnWidth(1,(ListView->width())/4); 123 ListView->setColumnWidth(1,(ListView->width())/4);
124 ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1)); 124 ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1));
125} 125}
126 126
127fileBrowser::~fileBrowser() 127fileBrowser::~fileBrowser()
128{ 128{
129} 129}
130 130
131 131
132void fileBrowser::populateList() 132void fileBrowser::populateList()
133{ 133{
134 ListView->clear(); 134 ListView->clear();
135////qDebug(currentDir.canonicalPath()); 135////odebug << currentDir.canonicalPath() << oendl;
136// currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks ); 136// currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks );
137 currentDir.setFilter( filterspec ); 137 currentDir.setFilter( filterspec );
138 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 138 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
139 currentDir.setMatchAllDirs(TRUE); 139 currentDir.setMatchAllDirs(TRUE);
140 140
141 currentDir.setNameFilter(filterStr); 141 currentDir.setNameFilter(filterStr);
142// currentDir.setNameFilter("*.txt;*.etx"); 142// currentDir.setNameFilter("*.txt;*.etx");
143 QString fileL, fileS; 143 QString fileL, fileS;
144 const QFileInfoList *list = currentDir.entryInfoList(); 144 const QFileInfoList *list = currentDir.entryInfoList();
145 QFileInfoListIterator it(*list); 145 QFileInfoListIterator it(*list);
146 QFileInfo *fi; 146 QFileInfo *fi;
147 while ( (fi=it.current()) ) 147 while ( (fi=it.current()) )
148 { 148 {
149 if (fi->fileName() != ".") 149 if (fi->fileName() != ".")
150 { 150 {
151 fileS.sprintf( "%10li", fi->size() ); 151 fileS.sprintf( "%10li", fi->size() );
152 fileL.sprintf( "%s",fi->fileName().data() ); 152 fileL.sprintf( "%s",fi->fileName().data() );
153 if( fi->isDir() ) 153 if( fi->isDir() )
154 { 154 {
155 fileL+="/"; 155 fileL+="/";
156 } 156 }
157 else 157 else
158 { 158 {
159//// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); 159//// odebug << "Not a dir: "+currentDir.canonicalPath()+fileL << oendl;
160 } 160 }
161 new QListViewItem( ListView,fileL,fileS ); 161 new QListViewItem( ListView,fileL,fileS );
162 } 162 }
163 ++it; 163 ++it;
164 } 164 }
165 ListView->setSorting( 2, FALSE); 165 ListView->setSorting( 2, FALSE);
166 dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); 166 dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath());
167 ListView->setFocus(); 167 ListView->setFocus();
168} 168}
169 169
170void fileBrowser::upDir() 170void fileBrowser::upDir()
171{ 171{
172//// qDebug(currentDir.canonicalPath()); 172//// odebug << currentDir.canonicalPath() << oendl;
173} 173}
174 174
175void fileBrowser::listClicked(QListViewItem *selectedItem) 175void fileBrowser::listClicked(QListViewItem *selectedItem)
176{ 176{
177 if (selectedItem == NULL) return; 177 if (selectedItem == NULL) return;
178 QString strItem=selectedItem->text(0); 178 QString strItem=selectedItem->text(0);
179 179
180//// qDebug("%s", (const char*)strItem); 180//// odebug << "" << strItem << "" << oendl;
181 181
182 182
183 QString strSize=selectedItem->text(1); 183 QString strSize=selectedItem->text(1);
184 184
185 strSize.stripWhiteSpace(); 185 strSize.stripWhiteSpace();
186 186
187 bool ok; 187 bool ok;
188 188
189 QFileInfo fi(strItem); 189 QFileInfo fi(strItem);
190 while (fi.isSymLink()) fi.setFile(fi.readLink()); 190 while (fi.isSymLink()) fi.setFile(fi.readLink());
191 if (fi.isDir()) 191 if (fi.isDir())
192 { 192 {
diff --git a/noncore/apps/opie-reader/opie-reader.pro b/noncore/apps/opie-reader/opie-reader.pro
index e42204a..dbf6964 100644
--- a/noncore/apps/opie-reader/opie-reader.pro
+++ b/noncore/apps/opie-reader/opie-reader.pro
@@ -76,17 +76,17 @@ SOURCES = Aportis.cpp \
76 plucker.cpp \ 76 plucker.cpp \
77 plucker_base.cpp \ 77 plucker_base.cpp \
78 ppm.cpp \ 78 ppm.cpp \
79 ppm_expander.cpp \ 79 ppm_expander.cpp \
80 version.cpp \ 80 version.cpp \
81 ztxt.cpp 81 ztxt.cpp
82 82
83DESTDIR = $(OPIEDIR)/bin 83DESTDIR = $(OPIEDIR)/bin
84TARGET = reader 84TARGET = reader
85 85
86 INCLUDEPATH+= $(OPIEDIR)/include 86 INCLUDEPATH+= $(OPIEDIR)/include
87 DEPENDPATH+= $(OPIEDIR)/include 87 DEPENDPATH+= $(OPIEDIR)/include
88 LIBS += -lqpe 88LIBS += -lqpe -lopiecore2
89 89
90include ( $(OPIEDIR)/include.pro ) 90include ( $(OPIEDIR)/include.pro )
91 91
92 92
diff --git a/noncore/apps/opie-reader/plucker.cpp b/noncore/apps/opie-reader/plucker.cpp
index e52fd6a..a8e688f 100644
--- a/noncore/apps/opie-reader/plucker.cpp
+++ b/noncore/apps/opie-reader/plucker.cpp
@@ -48,59 +48,59 @@ CPlucker::CPlucker()
48bool CPlucker::CorrectDecoder() 48bool CPlucker::CorrectDecoder()
49{ 49{
50 return (memcmp(&head.type, "DataPlkr", 8) == 0); 50 return (memcmp(&head.type, "DataPlkr", 8) == 0);
51} 51}
52 52
53int CPlucker::bgetch() 53int CPlucker::bgetch()
54{ 54{
55 int ch = EOF; 55 int ch = EOF;
56 if (bufferpos >= buffercontent) 56 if (bufferpos >= buffercontent)
57 { 57 {
58 if (!m_continuous) return EOF; 58 if (!m_continuous) return EOF;
59 if (bufferrec >= ntohs(head.recordList.numRecords) - 1) return EOF; 59 if (bufferrec >= ntohs(head.recordList.numRecords) - 1) return EOF;
60 ////qDebug("Passing through %u", currentpos); 60 ////odebug << "Passing through " << currentpos << "" << oendl;
61 if (!expand(bufferrec+1)) return EOF; 61 if (!expand(bufferrec+1)) return EOF;
62 mystyle.unset(); 62 mystyle.unset();
63 if (m_ParaOffsets[m_nextParaIndex] == 0) 63 if (m_ParaOffsets[m_nextParaIndex] == 0)
64 { 64 {
65 while (m_ParaOffsets[m_nextParaIndex+1] == 0) 65 while (m_ParaOffsets[m_nextParaIndex+1] == 0)
66 { 66 {
67 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 67 // odebug << "Skipping extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl;
68 m_nextParaIndex++; 68 m_nextParaIndex++;
69 } 69 }
70 } 70 }
71 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); 71 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2);
72 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 72 //odebug << "Using extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl;
73 ch = 10; 73 ch = 10;
74 EOPPhase = 4; 74 EOPPhase = 4;
75 } 75 }
76 else if (bufferpos == m_nextPara) 76 else if (bufferpos == m_nextPara)
77 { 77 {
78 while (bufferpos == m_nextPara) 78 while (bufferpos == m_nextPara)
79 { 79 {
80 UInt16 attr = m_ParaAttrs[m_nextParaIndex]; 80 UInt16 attr = m_ParaAttrs[m_nextParaIndex];
81 m_nextParaIndex++; 81 m_nextParaIndex++;
82 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 82 // odebug << "Skipping extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl;
83 if (m_nextParaIndex == m_nParas) 83 if (m_nextParaIndex == m_nParas)
84 { 84 {
85 m_nextPara = -1; 85 m_nextPara = -1;
86 } 86 }
87 else 87 else
88 { 88 {
89 m_nextPara += m_ParaOffsets[m_nextParaIndex]; 89 m_nextPara += m_ParaOffsets[m_nextParaIndex];
90 } 90 }
91 } 91 }
92 mystyle.unset(); 92 mystyle.unset();
93 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); 93 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2);
94 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 94 //odebug << "Using extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl;
95 if (m_lastBreak == locate()) 95 if (m_lastBreak == locate())
96 { 96 {
97 currentpos++; 97 currentpos++;
98 ch = expandedtextbuffer[bufferpos++]; 98 ch = expandedtextbuffer[bufferpos++];
99 } 99 }
100 else 100 else
101 { 101 {
102 ch = 10; 102 ch = 10;
103 } 103 }
104 } 104 }
105 else 105 else
106 { 106 {
diff --git a/noncore/apps/opie-reader/plucker_base.cpp b/noncore/apps/opie-reader/plucker_base.cpp
index caa945d..b523a54 100644
--- a/noncore/apps/opie-reader/plucker_base.cpp
+++ b/noncore/apps/opie-reader/plucker_base.cpp
@@ -1,33 +1,41 @@
1
2
1#include "useqpe.h" 3#include "useqpe.h"
2#include <stdio.h> 4#include "plucker_base.h"
3#include <string.h> 5#include "Aportis.h"
6#include "Palm2QImage.h"
7
8/* OPIE */
9#include <opie2/odebug.h>
4#ifdef USEQPE 10#ifdef USEQPE
5#include <qpe/qcopenvelope_qws.h> 11#include <qpe/qcopenvelope_qws.h>
6#endif /* USEQPE */
7#ifdef LOCALPICTURES
8#include <qscrollview.h>
9#endif
10#ifdef USEQPE
11#include <qpe/global.h> 12#include <qpe/global.h>
12#endif /* USEQPE */ 13#endif /* USEQPE */
14
13#ifndef USEQPE 15#ifndef USEQPE
14#include <qapplication.h> 16#include <qapplication.h>
15#else /* USEQPE */ 17#else /* USEQPE */
16#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
17#endif /* USEQPE */ 19#endif /* USEQPE */
18 20
19#include "plucker_base.h" 21/* QT */
20#include "Aportis.h" 22#ifdef LOCALPICTURES
21#include "Palm2QImage.h" 23#include <qscrollview.h>
24#endif
25
26/* STD */
27#include <stdio.h>
28#include <string.h>
29
22 30
23CPlucker_base::CPlucker_base() : 31CPlucker_base::CPlucker_base() :
24#ifdef LOCALPICTURES 32#ifdef LOCALPICTURES
25 m_viewer(NULL), 33 m_viewer(NULL),
26 m_picture(NULL), 34 m_picture(NULL),
27#endif 35#endif
28 expandedtextbuffer(NULL), 36 expandedtextbuffer(NULL),
29 compressedtextbuffer(NULL) 37 compressedtextbuffer(NULL)
30//, urls(NULL) 38//, urls(NULL)
31 { /*printf("constructing:%x\n",fin);*/ } 39 { /*printf("constructing:%x\n",fin);*/ }
32 40
33 41
@@ -84,85 +92,85 @@ void CPlucker_base::sizes(unsigned long& _file, unsigned long& _text)
84 } 92 }
85 } 93 }
86 _text = textlength; 94 _text = textlength;
87//ntohl(hdr0.size); 95//ntohl(hdr0.size);
88} 96}
89 97
90char* CPlucker_base::geturl(UInt16 tgt) 98char* CPlucker_base::geturl(UInt16 tgt)
91{ 99{
92 char * pRet = NULL; 100 char * pRet = NULL;
93 gotorecordnumber(0); 101 gotorecordnumber(0);
94 fread(&hdr0, 1, 6, fin); 102 fread(&hdr0, 1, 6, fin);
95 unsigned int nrecs = ntohs(hdr0.nRecords); 103 unsigned int nrecs = ntohs(hdr0.nRecords);
96 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); 104 //odebug << "Version " << ntohs(hdr0.version) << ", no. recs " << nrecs << "" << oendl;
97 UInt16 urlid = 0; 105 UInt16 urlid = 0;
98 bool urlsfound = false; 106 bool urlsfound = false;
99 char* urls = NULL; 107 char* urls = NULL;
100 size_t urlsize = 0; 108 size_t urlsize = 0;
101 for (unsigned int i = 0; i < nrecs; i++) 109 for (unsigned int i = 0; i < nrecs; i++)
102 { 110 {
103 UInt16 id, name; 111 UInt16 id, name;
104 fread(&name, 1, sizeof(name), fin); 112 fread(&name, 1, sizeof(name), fin);
105 fread(&id, 1, sizeof(id), fin); 113 fread(&id, 1, sizeof(id), fin);
106 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); 114 //odebug << "N:" << ntohs(name) << ", I:" << ntohs(id) << "" << oendl;
107 if (ntohs(name) == 2) 115 if (ntohs(name) == 2)
108 { 116 {
109 urlsfound = true; 117 urlsfound = true;
110 urlid = id; 118 urlid = id;
111 //qDebug("Found url index:%d", ntohs(urlid)); 119 //odebug << "Found url index:" << ntohs(urlid) << "" << oendl;
112 } 120 }
113 ////qDebug("%x", id); 121// //odebug << "" << id << "" << oendl;
114 } 122 }
115 if (urlsfound) 123 if (urlsfound)
116 { 124 {
117 unsigned short recptr = finduid(ntohs(urlid)); 125 unsigned short recptr = finduid(ntohs(urlid));
118 if (recptr != 0) 126 if (recptr != 0)
119 { 127 {
120 gotorecordnumber(recptr); 128 gotorecordnumber(recptr);
121 UInt16 thishdr_uid, thishdr_nParagraphs; 129 UInt16 thishdr_uid, thishdr_nParagraphs;
122 UInt32 thishdr_size; 130 UInt32 thishdr_size;
123 UInt8 thishdr_type, thishdr_reserved; 131 UInt8 thishdr_type, thishdr_reserved;
124 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 132 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
125 UInt16 urlctr = 0; 133 UInt16 urlctr = 0;
126 while (1) 134 while (1)
127 { 135 {
128 UInt16 tctr; 136 UInt16 tctr;
129 fread(&tctr, 1, sizeof(tctr), fin); 137 fread(&tctr, 1, sizeof(tctr), fin);
130 fread(&urlid, 1, sizeof(urlid), fin); 138 fread(&urlid, 1, sizeof(urlid), fin);
131 tctr = ntohs(tctr); 139 tctr = ntohs(tctr);
132 //qDebug("tgt:%u urlctr:%u tctr:%u", tgt, urlctr, tctr); 140 //odebug << "tgt:" << tgt << " urlctr:" << urlctr << " tctr:" << tctr << "" << oendl;
133 if (tctr >= tgt) 141 if (tctr >= tgt)
134 { 142 {
135 break; 143 break;
136 } 144 }
137 urlctr = tctr; 145 urlctr = tctr;
138 } 146 }
139 //qDebug("urls are in %d", ntohs(urlid)); 147 //odebug << "urls are in " << ntohs(urlid) << "" << oendl;
140 recptr = finduid(ntohs(urlid)); 148 recptr = finduid(ntohs(urlid));
141 if (recptr != 0) 149 if (recptr != 0)
142 { 150 {
143 UInt32 reclen = recordlength(recptr) - HeaderSize(); 151 UInt32 reclen = recordlength(recptr) - HeaderSize();
144 gotorecordnumber(recptr); 152 gotorecordnumber(recptr);
145 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 153 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
146 //qDebug("Found urls:%x",thishdr_type); 154 //odebug << "Found urls:" << thishdr_type << "" << oendl;
147 urlsize = thishdr_size; 155 urlsize = thishdr_size;
148 urls = new char[urlsize]; 156 urls = new char[urlsize];
149 Expand(reclen, thishdr_type, (UInt8*)urls, urlsize); 157 Expand(reclen, thishdr_type, (UInt8*)urls, urlsize);
150 char* ptr = urls; 158 char* ptr = urls;
151 int rn = urlctr+1; 159 int rn = urlctr+1;
152 while (ptr - urls < urlsize) 160 while (ptr - urls < urlsize)
153 { 161 {
154 if (rn == tgt) 162 if (rn == tgt)
155 { 163 {
156 //qDebug("URL:%s", ptr); 164 //odebug << "URL:" << ptr << "" << oendl;
157 int len = strlen(ptr)+1; 165 int len = strlen(ptr)+1;
158 pRet = new char[len]; 166 pRet = new char[len];
159 memcpy(pRet, ptr, len); 167 memcpy(pRet, ptr, len);
160 break; 168 break;
161 } 169 }
162 ptr += strlen(ptr)+1; 170 ptr += strlen(ptr)+1;
163 rn++; 171 rn++;
164 } 172 }
165 delete [] urls; 173 delete [] urls;
166 } 174 }
167 } 175 }
168 } 176 }
@@ -241,50 +249,50 @@ void CPlucker_base::locate(unsigned int n)
241 } 249 }
242 } 250 }
243 } 251 }
244 else if (n < textlength) 252 else if (n < textlength)
245 { 253 {
246 UInt16 thishdr_uid, thishdr_nParagraphs; 254 UInt16 thishdr_uid, thishdr_nParagraphs;
247 UInt32 thishdr_size; 255 UInt32 thishdr_size;
248 UInt8 thishdr_type, thishdr_reserved; 256 UInt8 thishdr_type, thishdr_reserved;
249 while (n < textlength && recptr > 1) 257 while (n < textlength && recptr > 1)
250 { 258 {
251 recptr--; 259 recptr--;
252 gotorecordnumber(recptr); 260 gotorecordnumber(recptr);
253 //qDebug("recptr:%u", recptr); 261 //odebug << "recptr:" << recptr << "" << oendl;
254 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 262 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
255 if (thishdr_type < 2) 263 if (thishdr_type < 2)
256 { 264 {
257 textlength -= thishdr_size; 265 textlength -= thishdr_size;
258 } 266 }
259 } 267 }
260 } 268 }
261 else 269 else
262 { 270 {
263 UInt16 thishdr_uid, thishdr_nParagraphs; 271 UInt16 thishdr_uid, thishdr_nParagraphs;
264 UInt32 thishdr_size = buffercontent; 272 UInt32 thishdr_size = buffercontent;
265 UInt8 thishdr_type, thishdr_reserved; 273 UInt8 thishdr_type, thishdr_reserved;
266 while (n > textlength + thishdr_size && recptr < ntohs(head.recordList.numRecords)-1) 274 while (n > textlength + thishdr_size && recptr < ntohs(head.recordList.numRecords)-1)
267 { 275 {
268 textlength += thishdr_size; 276 textlength += thishdr_size;
269 recptr++; 277 recptr++;
270 gotorecordnumber(recptr); 278 gotorecordnumber(recptr);
271 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 279 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
272 if (!(thishdr_type < 2)) 280 if (!(thishdr_type < 2))
273 { 281 {
274 thishdr_size = 0; 282 thishdr_size = 0;
275 } 283 }
276 } 284 }
277 } 285 }
278// qDebug("Time(1): %u", clock()-start); 286// odebug << "Time(1): " << clock()-start << "" << oendl;
279/* 287/*
280 expand(recptr); 288 expand(recptr);
281 mystyle.unset(); 289 mystyle.unset();
282 bufferpos = n-textlength; 290 bufferpos = n-textlength;
283 currentpos = n; 291 currentpos = n;
284 while (bufferpos >= m_nextPara && m_nextPara >= 0) 292 while (bufferpos >= m_nextPara && m_nextPara >= 0)
285 { 293 {
286 UInt16 attr = m_ParaAttrs[m_nextParaIndex]; 294 UInt16 attr = m_ParaAttrs[m_nextParaIndex];
287 m_nextParaIndex++; 295 m_nextParaIndex++;
288 if (m_nextParaIndex == m_nParas) 296 if (m_nextParaIndex == m_nParas)
289 { 297 {
290 m_nextPara = -1; 298 m_nextPara = -1;
@@ -312,36 +320,36 @@ void CPlucker_base::locate(unsigned int n)
312 gotorecordnumber(thisrec); 320 gotorecordnumber(thisrec);
313 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 321 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
314 if (thishdr_type < 2) 322 if (thishdr_type < 2)
315 { 323 {
316 bs = thishdr_size; 324 bs = thishdr_size;
317 } 325 }
318 else 326 else
319 { 327 {
320 bs = 0; 328 bs = 0;
321 } 329 }
322 } while (locpos + bs <= n); 330 } while (locpos + bs <= n);
323 331
324// qDebug("Time(2): %u", clock()-start); 332// odebug << "Time(2): " << clock()-start << "" << oendl;
325 if (recptr != thisrec) 333 if (recptr != thisrec)
326 { 334 {
327 qDebug("Disaster:recptr:%u thisrec:%u", recptr, thisrec); 335 odebug << "Disaster:recptr:" << recptr << " thisrec:" << thisrec << "" << oendl;
328 UInt16 thishdr_uid, thishdr_nParagraphs; 336 UInt16 thishdr_uid, thishdr_nParagraphs;
329 UInt32 thishdr_size = buffercontent; 337 UInt32 thishdr_size = buffercontent;
330 UInt8 thishdr_type, thishdr_reserved; 338 UInt8 thishdr_type, thishdr_reserved;
331 for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) 339 for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++)
332 { 340 {
333 gotorecordnumber(recptr); 341 gotorecordnumber(recptr);
334 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 342 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
335 // qDebug("UID:%u Paras:%u Size:%u Type:%u Reserved:%u", thishdr_uid, thishdr_nParagraphs, thishdr_size, (unsigned int)thishdr_type, (unsigned int)thishdr_reserved); 343// odebug << "UID:" << thishdr_uid << " Paras:" << thishdr_nParagraphs << " Size:" << thishdr_size << " Type:" << (unsigned int)thishdr_type << " Reserved:" << (unsigned int)thishdr_reserved << "" << oendl;
336 } 344 }
337 //QApplication::exit ( 100 ); 345 //QApplication::exit ( 100 );
338 } 346 }
339 347
340 currentpos = locpos; 348 currentpos = locpos;
341 expand(thisrec); 349 expand(thisrec);
342 while (currentpos < n && bufferpos < buffercontent) getch_base(true); 350 while (currentpos < n && bufferpos < buffercontent) getch_base(true);
343 351
344/* // This is faster but the alignment attribute doesn't get set 8^( 352/* // This is faster but the alignment attribute doesn't get set 8^(
345 bufferpos = n-locpos; 353 bufferpos = n-locpos;
346 currentpos = n; 354 currentpos = n;
347 while (bufferpos >= m_nextPara && m_nextPara >= 0) 355 while (bufferpos >= m_nextPara && m_nextPara >= 0)
@@ -362,72 +370,72 @@ void CPlucker_base::locate(unsigned int n)
362 370
363bool CPlucker_base::expand(int thisrec) 371bool CPlucker_base::expand(int thisrec)
364{ 372{
365 mystyle.unset(); 373 mystyle.unset();
366 size_t reclen = recordlength(thisrec); 374 size_t reclen = recordlength(thisrec);
367 gotorecordnumber(thisrec); 375 gotorecordnumber(thisrec);
368 UInt16 thishdr_uid, thishdr_nParagraphs; 376 UInt16 thishdr_uid, thishdr_nParagraphs;
369 UInt32 thishdr_size; 377 UInt32 thishdr_size;
370 UInt8 thishdr_type, thishdr_reserved; 378 UInt8 thishdr_type, thishdr_reserved;
371 while (1) 379 while (1)
372 { 380 {
373 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 381 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
374 //qDebug("This (%d) type is %d, uid is %u", thisrec, thishdr_type, thishdr_uid); 382 //odebug << "This (" << thisrec << ") type is " << thishdr_type << ", uid is " << thishdr_uid << "" << oendl;
375 if (thishdr_type < 2) break; 383 if (thishdr_type < 2) break;
376 //qDebug("Skipping paragraph of type %d", thishdr_type); 384 //odebug << "Skipping paragraph of type " << thishdr_type << "" << oendl;
377 if (++thisrec >= ntohs(head.recordList.numRecords) - 1) return false; 385 if (++thisrec >= ntohs(head.recordList.numRecords) - 1) return false;
378 reclen = recordlength(thisrec); 386 reclen = recordlength(thisrec);
379 gotorecordnumber(thisrec); 387 gotorecordnumber(thisrec);
380 } 388 }
381 m_nParas = thishdr_nParagraphs; 389 m_nParas = thishdr_nParagraphs;
382 m_bufferisreserved = (thishdr_reserved != 0); 390 m_bufferisreserved = (thishdr_reserved != 0);
383 //qDebug("It has %u paragraphs and is %u bytes", thishdr_nParagraphs, thishdr_size); 391 //odebug << "It has " << thishdr_nParagraphs << " paragraphs and is " << thishdr_size << " bytes" << oendl;
384 uid = thishdr_uid; 392 uid = thishdr_uid;
385// gotorecordnumber(thisrec); 393// gotorecordnumber(thisrec);
386// fread(expandedtextbuffer,1,10,fin); 394// fread(expandedtextbuffer,1,10,fin);
387 for (int i = 0; i < m_nParas; i++) 395 for (int i = 0; i < m_nParas; i++)
388 { 396 {
389 UInt16 ubytes, attrs; 397 UInt16 ubytes, attrs;
390 fread(&ubytes, 1, sizeof(ubytes), fin); 398 fread(&ubytes, 1, sizeof(ubytes), fin);
391 fread(&attrs, 1, sizeof(attrs), fin); 399 fread(&attrs, 1, sizeof(attrs), fin);
392 m_ParaOffsets[i] = ntohs(ubytes); 400 m_ParaOffsets[i] = ntohs(ubytes);
393 m_ParaAttrs[i] = ntohs(attrs); 401 m_ParaAttrs[i] = ntohs(attrs);
394 ////qDebug("Bytes %u, Attr %x", ntohs(ubytes), ntohs(attrs)); 402// //odebug << "Bytes " << ntohs(ubytes) << ", Attr " << ntohs(attrs) << "" << oendl;
395 } 403 }
396 if (m_nParas > 0) 404 if (m_nParas > 0)
397 { 405 {
398 m_nextPara = m_ParaOffsets[0]; 406 m_nextPara = m_ParaOffsets[0];
399 //qDebug("First offset = %u", m_nextPara); 407 //odebug << "First offset = " << m_nextPara << "" << oendl;
400 m_nextParaIndex = 0; 408 m_nextParaIndex = 0;
401 } 409 }
402 else 410 else
403 { 411 {
404 m_nextPara = -1; 412 m_nextPara = -1;
405 } 413 }
406 414
407 reclen -= HeaderSize()+4*m_nParas; 415 reclen -= HeaderSize()+4*m_nParas;
408 416
409 buffercontent = thishdr_size; 417 buffercontent = thishdr_size;
410 418
411 if (thishdr_size > buffersize) 419 if (thishdr_size > buffersize)
412 { 420 {
413 delete [] expandedtextbuffer; 421 delete [] expandedtextbuffer;
414 buffersize = thishdr_size; 422 buffersize = thishdr_size;
415 expandedtextbuffer = new UInt8[buffersize]; 423 expandedtextbuffer = new UInt8[buffersize];
416 } 424 }
417 425
418 Expand(reclen, thishdr_type, expandedtextbuffer, buffercontent); 426 Expand(reclen, thishdr_type, expandedtextbuffer, buffercontent);
419 bufferpos = 0; 427 bufferpos = 0;
420 bufferrec = thisrec; 428 bufferrec = thisrec;
421 //qDebug("BC:%u, HS:%u", buffercontent, thishdr_size); 429 //odebug << "BC:" << buffercontent << ", HS:" << thishdr_size << "" << oendl;
422 return true; 430 return true;
423} 431}
424 432
425void CPlucker_base::UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) 433void CPlucker_base::UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize)
426{ 434{
427 z_stream zstream; 435 z_stream zstream;
428 memset(&zstream,sizeof(zstream),0); 436 memset(&zstream,sizeof(zstream),0);
429 zstream.next_in = compressedbuffer; 437 zstream.next_in = compressedbuffer;
430 zstream.next_out = tgtbuffer; 438 zstream.next_out = tgtbuffer;
431 zstream.avail_out = bsize; 439 zstream.avail_out = bsize;
432 zstream.avail_in = reclen; 440 zstream.avail_in = reclen;
433 441
@@ -443,25 +451,25 @@ void CPlucker_base::UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuff
443 int err = 0; 451 int err = 0;
444 do { 452 do {
445 if ( zstream.avail_in == 0 && 0 < keylen ) { 453 if ( zstream.avail_in == 0 && 0 < keylen ) {
446 zstream.next_in = compressedbuffer + keylen; 454 zstream.next_in = compressedbuffer + keylen;
447 zstream.avail_in = reclen - keylen; 455 zstream.avail_in = reclen - keylen;
448 keylen = 0; 456 keylen = 0;
449 } 457 }
450 zstream.next_out = tgtbuffer; 458 zstream.next_out = tgtbuffer;
451 zstream.avail_out = bsize; 459 zstream.avail_out = bsize;
452 460
453 err = inflate( &zstream, Z_SYNC_FLUSH ); 461 err = inflate( &zstream, Z_SYNC_FLUSH );
454 462
455 ////qDebug("err:%d - %u", err, zstream.avail_in); 463// //odebug << "err:" << err << " - " << zstream.avail_in << "" << oendl;
456 464
457 } while ( err == Z_OK ); 465 } while ( err == Z_OK );
458 466
459 inflateEnd(&zstream); 467 inflateEnd(&zstream);
460} 468}
461 469
462void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) 470void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize)
463{ 471{
464// UInt16 headerSize; 472// UInt16 headerSize;
465 UInt16 docSize; 473 UInt16 docSize;
466 UInt16 i; 474 UInt16 i;
467 UInt16 j; 475 UInt16 j;
@@ -525,27 +533,27 @@ CList<Bkmk>* CPlucker_base::getbkmklist()
525 UInt32 thishdr_size; 533 UInt32 thishdr_size;
526 UInt8 thishdr_type, thishdr_reserved; 534 UInt8 thishdr_type, thishdr_reserved;
527 535
528 for (int i = 1; i < ntohs(head.recordList.numRecords); i++) 536 for (int i = 1; i < ntohs(head.recordList.numRecords); i++)
529 { 537 {
530 gotorecordnumber(i); 538 gotorecordnumber(i);
531 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 539 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
532 if (thishdr_type == 8) 540 if (thishdr_type == 8)
533 { 541 {
534 UInt16 n; 542 UInt16 n;
535 fread(&n, 1, sizeof(n), fin); 543 fread(&n, 1, sizeof(n), fin);
536 n = ntohs(n); 544 n = ntohs(n);
537 //qDebug("Found %u bookmarks", n); 545 //odebug << "Found " << n << " bookmarks" << oendl;
538 } 546 }
539 //qDebug("Found:%d, %u", i , thishdr_type); 547 //odebug << "Found:" << i << ", " << thishdr_type << "" << oendl;
540 } 548 }
541*/ 549*/
542 return NULL; 550 return NULL;
543} 551}
544 552
545 553
546QImage* CPlucker_base::expandimg(UInt16 tgt, bool border) 554QImage* CPlucker_base::expandimg(UInt16 tgt, bool border)
547{ 555{
548 QImage* qimage = getimg(tgt); 556 QImage* qimage = getimg(tgt);
549 QImage* ret; 557 QImage* ret;
550 if (qimage == NULL) return NULL; 558 if (qimage == NULL) return NULL;
551 if (border) 559 if (border)
@@ -583,105 +591,105 @@ QImage* CPlucker_base::getPicture(unsigned long tgt)
583 else 591 else
584 return &(t.data()); 592 return &(t.data());
585#else 593#else
586 return expandimg(tgt >> 16); 594 return expandimg(tgt >> 16);
587#endif 595#endif
588} 596}
589 597
590#ifdef LOCALPICTURES 598#ifdef LOCALPICTURES
591#include <unistd.h> 599#include <unistd.h>
592#include <qpe/global.h> 600#include <qpe/global.h>
593void CPlucker_base::showimg(UInt16 tgt) 601void CPlucker_base::showimg(UInt16 tgt)
594{ 602{
595 //qDebug("Crassssssh!"); 603 //odebug << "Crassssssh!" << oendl;
596 QPixmap* qimage = expandimg(tgt); 604 QPixmap* qimage = expandimg(tgt);
597 m_picture->setFixedSize(qimage->size()); 605 m_picture->setFixedSize(qimage->size());
598 m_picture->setBackgroundPixmap(*qimage); 606 m_picture->setBackgroundPixmap(*qimage);
599 delete qimage; 607 delete qimage;
600 m_viewer->show(); 608 m_viewer->show();
601 609
602/* 610/*
603 char tmp[] = "uqtreader.XXXXXX"; 611 char tmp[] = "uqtreader.XXXXXX";
604 QImage* qimage = getimg(tgt); 612 QImage* qimage = getimg(tgt);
605 QPixmap* image = new QPixmap(0,0); 613 QPixmap* image = new QPixmap(0,0);
606// //qDebug("New image"); 614// //odebug << "New image" << oendl;
607 image->convertFromImage(*qimage); 615 image->convertFromImage(*qimage);
608 delete qimage; 616 delete qimage;
609 char tmpfile[sizeof(tmp)+1]; 617 char tmpfile[sizeof(tmp)+1];
610 strcpy(tmpfile,tmp); 618 strcpy(tmpfile,tmp);
611 int f = mkstemp(tmpfile); 619 int f = mkstemp(tmpfile);
612 close(f); 620 close(f);
613 //qDebug("TMPFILE:%s", tmpfile); 621 //odebug << "TMPFILE:" << tmpfile << "" << oendl;
614 if (image->save(tmpfile,"PNG")) 622 if (image->save(tmpfile,"PNG"))
615 { 623 {
616 QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)"); 624 QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)");
617 e << QString(tmpfile); 625 e << QString(tmpfile);
618 } 626 }
619 Global::statusMessage("Opening image"); 627 Global::statusMessage("Opening image");
620 sleep(5); 628 sleep(5);
621 delete image; 629 delete image;
622 unlink(tmpfile); 630 unlink(tmpfile);
623*/ 631*/
624} 632}
625 633
626#endif 634#endif
627 635
628unsigned short CPlucker_base::finduid(unsigned short urlid) 636unsigned short CPlucker_base::finduid(unsigned short urlid)
629{ 637{
630// //qDebug("Finding %u", urlid); 638// //odebug << "Finding " << urlid << "" << oendl;
631 unsigned short jmin = 1, jmax = ntohs(head.recordList.numRecords); 639 unsigned short jmin = 1, jmax = ntohs(head.recordList.numRecords);
632 unsigned short jmid = (jmin+jmax) >> 1; 640 unsigned short jmid = (jmin+jmax) >> 1;
633 while (jmax - jmin > 1) 641 while (jmax - jmin > 1)
634 { 642 {
635 gotorecordnumber(jmid); 643 gotorecordnumber(jmid);
636 UInt16 thishdr_uid, thishdr_nParagraphs; 644 UInt16 thishdr_uid, thishdr_nParagraphs;
637 UInt32 thishdr_size; 645 UInt32 thishdr_size;
638 UInt8 thishdr_type, thishdr_reserved; 646 UInt8 thishdr_type, thishdr_reserved;
639 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 647 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
640 unsigned short luid = thishdr_uid; 648 unsigned short luid = thishdr_uid;
641 ////qDebug("%u %u %u : %u", jmin, jmid, jmax, urlid); 649// //odebug << "" << jmin << " " << jmid << " " << jmax << " : " << urlid << "" << oendl;
642 if (luid == urlid) 650 if (luid == urlid)
643 { 651 {
644 return jmid; 652 return jmid;
645 } 653 }
646 if (luid < urlid) 654 if (luid < urlid)
647 { 655 {
648 jmin = jmid; 656 jmin = jmid;
649 } 657 }
650 else 658 else
651 { 659 {
652 jmax = jmid; 660 jmax = jmid;
653 } 661 }
654 jmid = (jmin+jmax) >> 1; 662 jmid = (jmin+jmax) >> 1;
655 } 663 }
656 gotorecordnumber(jmin); 664 gotorecordnumber(jmin);
657 UInt16 thishdr_uid, thishdr_nParagraphs; 665 UInt16 thishdr_uid, thishdr_nParagraphs;
658 UInt32 thishdr_size; 666 UInt32 thishdr_size;
659 UInt8 thishdr_type, thishdr_reserved; 667 UInt8 thishdr_type, thishdr_reserved;
660 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 668 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
661 unsigned short luid = thishdr_uid; 669 unsigned short luid = thishdr_uid;
662 //qDebug("jmin at end:%u,%u", jmin, luid); 670 //odebug << "jmin at end:" << jmin << "," << luid << "" << oendl;
663 if (luid == urlid) 671 if (luid == urlid)
664 { 672 {
665 return jmin; 673 return jmin;
666 } 674 }
667 gotorecordnumber(jmax); 675 gotorecordnumber(jmax);
668 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 676 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
669 luid = thishdr_uid; 677 luid = thishdr_uid;
670 //qDebug("jmax at end:%u,%u", jmax, luid); 678 //odebug << "jmax at end:" << jmax << "," << luid << "" << oendl;
671 if (luid == urlid) 679 if (luid == urlid)
672 { 680 {
673 return jmax; 681 return jmax;
674 } 682 }
675 //qDebug("Couldn't find %u", urlid); 683 //odebug << "Couldn't find " << urlid << "" << oendl;
676 return 0; // Not found! 684 return 0; // Not found!
677} 685}
678 686
679 687
680void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen) 688void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen)
681{ 689{
682 unsigned short sz = 0; 690 unsigned short sz = 0;
683 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) 691 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++)
684 { 692 {
685 sz++; 693 sz++;
686 } 694 }
687 size_t newlen = srclen+sizeof(sz)+sz*sizeof(unsigned long); 695 size_t newlen = srclen+sizeof(sz)+sz*sizeof(unsigned long);
@@ -689,48 +697,48 @@ void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsig
689 unsigned char* pdata = newdata; 697 unsigned char* pdata = newdata;
690 memcpy(newdata, src, srclen); 698 memcpy(newdata, src, srclen);
691 newdata += srclen; 699 newdata += srclen;
692 memcpy(newdata, &sz, sizeof(sz)); 700 memcpy(newdata, &sz, sizeof(sz));
693 newdata += sizeof(sz); 701 newdata += sizeof(sz);
694#ifdef _WINDOWS 702#ifdef _WINDOWS
695 for (it = visited.begin(); it != visited.end(); it++) 703 for (it = visited.begin(); it != visited.end(); it++)
696#else 704#else
697 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) 705 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++)
698#endif 706#endif
699 { 707 {
700 unsigned long t = *it; 708 unsigned long t = *it;
701 //qDebug("[%u]", t); 709// odebug << "[" << t << "]" << oendl;
702 memcpy(newdata, &t, sizeof(t)); 710 memcpy(newdata, &t, sizeof(t));
703 newdata += sizeof(t); 711 newdata += sizeof(t);
704 } 712 }
705 m_nav.setSaveData(data, len, pdata, newlen); 713 m_nav.setSaveData(data, len, pdata, newlen);
706 delete [] pdata; 714 delete [] pdata;
707} 715}
708 716
709void CPlucker_base::putSaveData(unsigned char*& src, unsigned short& srclen) 717void CPlucker_base::putSaveData(unsigned char*& src, unsigned short& srclen)
710{ 718{
711 unsigned short sz; 719 unsigned short sz;
712 if (srclen >= sizeof(sz)) 720 if (srclen >= sizeof(sz))
713 { 721 {
714 memcpy(&sz, src, sizeof(sz)); 722 memcpy(&sz, src, sizeof(sz));
715 src += sizeof(sz); 723 src += sizeof(sz);
716 srclen -= sizeof(sz); 724 srclen -= sizeof(sz);
717 } 725 }
718 for (int i = 0; i < sz; i++) 726 for (int i = 0; i < sz; i++)
719 { 727 {
720 unsigned long t; 728 unsigned long t;
721 if (srclen >= sizeof(t)) 729 if (srclen >= sizeof(t))
722 { 730 {
723 memcpy(&t, src, sizeof(t)); 731 memcpy(&t, src, sizeof(t));
724 // qDebug("[%u]", t); 732// odebug << "[" << t << "]" << oendl;
725 visited.push_front(t); 733 visited.push_front(t);
726 src += sizeof(t); 734 src += sizeof(t);
727 srclen -= sizeof(t); 735 srclen -= sizeof(t);
728 } 736 }
729 else 737 else
730 { 738 {
731 QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself"); 739 QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself");
732 break; 740 break;
733 } 741 }
734 } 742 }
735 m_nav.putSaveData(src, srclen); 743 m_nav.putSaveData(src, srclen);
736} 744}
@@ -742,35 +750,35 @@ int CPlucker_base::OpenFile(const char *src)
742 { 750 {
743 return -1; 751 return -1;
744 } 752 }
745 753
746 if (!CorrectDecoder()) return -1; 754 if (!CorrectDecoder()) return -1;
747 755
748 gotorecordnumber(0); 756 gotorecordnumber(0);
749 fread(&hdr0, 1, 6, fin); 757 fread(&hdr0, 1, 6, fin);
750 setbuffersize(); 758 setbuffersize();
751 compressedtextbuffer = new UInt8[compressedbuffersize]; 759 compressedtextbuffer = new UInt8[compressedbuffersize];
752 expandedtextbuffer = new UInt8[buffersize]; 760 expandedtextbuffer = new UInt8[buffersize];
753 761
754 //qDebug("Total number of records:%u", ntohs(head.recordList.numRecords)); 762 //odebug << "Total number of records:" << ntohs(head.recordList.numRecords) << "" << oendl;
755 763
756 unsigned int nrecs = ntohs(hdr0.nRecords); 764 unsigned int nrecs = ntohs(hdr0.nRecords);
757 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); 765 //odebug << "Version " << ntohs(hdr0.version) << ", no. recs " << nrecs << "" << oendl;
758 UInt16 homerecid = 1; 766 UInt16 homerecid = 1;
759 for (unsigned int i = 0; i < nrecs; i++) 767 for (unsigned int i = 0; i < nrecs; i++)
760 { 768 {
761 UInt16 id, name; 769 UInt16 id, name;
762 fread(&name, 1, sizeof(name), fin); 770 fread(&name, 1, sizeof(name), fin);
763 fread(&id, 1, sizeof(id), fin); 771 fread(&id, 1, sizeof(id), fin);
764 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); 772 //odebug << "N:" << ntohs(name) << ", I:" << ntohs(id) << "" << oendl;
765 if (ntohs(name) == 0) homerecid = ntohs(id); 773 if (ntohs(name) == 0) homerecid = ntohs(id);
766 } 774 }
767 775
768 textlength = 0; 776 textlength = 0;
769 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) 777 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++)
770 { 778 {
771 gotorecordnumber(recptr); 779 gotorecordnumber(recptr);
772 UInt16 thishdr_uid, thishdr_nParagraphs; 780 UInt16 thishdr_uid, thishdr_nParagraphs;
773 UInt32 thishdr_size; 781 UInt32 thishdr_size;
774 UInt8 thishdr_type, thishdr_reserved; 782 UInt8 thishdr_type, thishdr_reserved;
775 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 783 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
776 if (thishdr_uid == homerecid) 784 if (thishdr_uid == homerecid)
@@ -810,37 +818,37 @@ QImage* CPlucker_base::getimg(UInt16 tgt)
810 UInt8* imgbuffer = new UInt8[imgsize]; 818 UInt8* imgbuffer = new UInt8[imgsize];
811 819
812 Expand(reclen, thishdr_type, imgbuffer, imgsize); 820 Expand(reclen, thishdr_type, imgbuffer, imgsize);
813 821
814 return imagefromdata(imgbuffer, imgsize); 822 return imagefromdata(imgbuffer, imgsize);
815} 823}
816 824
817linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd) 825linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd)
818{ 826{
819 visited.push_front(n); 827 visited.push_front(n);
820 UInt16 tuid = (n >> 16); 828 UInt16 tuid = (n >> 16);
821 n &= 0xffff; 829 n &= 0xffff;
822// //qDebug("Hyper:<%u,%u>", tuid, n); 830// //odebug << "Hyper:<" << tuid << "," << n << ">" << oendl;
823 UInt16 thisrec = 1; 831 UInt16 thisrec = 1;
824 currentpos = 0; 832 currentpos = 0;
825 gotorecordnumber(thisrec); 833 gotorecordnumber(thisrec);
826 UInt16 thishdr_uid, thishdr_nParagraphs; 834 UInt16 thishdr_uid, thishdr_nParagraphs;
827 UInt32 thishdr_size; 835 UInt32 thishdr_size;
828 UInt8 thishdr_type, thishdr_reserved; 836 UInt8 thishdr_type, thishdr_reserved;
829 while (1) 837 while (1)
830 { 838 {
831 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 839 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
832 if (tuid == thishdr_uid) break; 840 if (tuid == thishdr_uid) break;
833 if (thishdr_type < 2) currentpos += thishdr_size; 841 if (thishdr_type < 2) currentpos += thishdr_size;
834 ////qDebug("hyper-cp:%u", currentpos); 842// //odebug << "hyper-cp:" << currentpos << "" << oendl;
835 thisrec++; 843 thisrec++;
836 if (thisrec >= ntohs(head.recordList.numRecords)) 844 if (thisrec >= ntohs(head.recordList.numRecords))
837 { 845 {
838 char *turl = geturl(tuid); 846 char *turl = geturl(tuid);
839 if (turl == NULL) 847 if (turl == NULL)
840 { 848 {
841 QMessageBox::information(NULL, 849 QMessageBox::information(NULL,
842 QString(PROGNAME), 850 QString(PROGNAME),
843 QString("Couldn't find link") 851 QString("Couldn't find link")
844 ); 852 );
845 } 853 }
846 else 854 else
@@ -848,25 +856,25 @@ linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd)
848 wrd = turl; 856 wrd = turl;
849#ifdef USEQPE 857#ifdef USEQPE
850 if (wrd.length() > 10) 858 if (wrd.length() > 10)
851 { 859 {
852 Global::statusMessage(wrd.left(8) + ".."); 860 Global::statusMessage(wrd.left(8) + "..");
853 } 861 }
854 else 862 else
855 { 863 {
856 Global::statusMessage(wrd); 864 Global::statusMessage(wrd);
857 } 865 }
858#else 866#else
859#endif /* USEQPE */ 867#endif /* USEQPE */
860 //qDebug("Link:%s", (const char*)wrd); 868 //odebug << "Link:" << wrd << "" << oendl;
861 // setlink(fn, wrd); 869 // setlink(fn, wrd);
862 delete [] turl; 870 delete [] turl;
863 } 871 }
864 return eNone; 872 return eNone;
865 } 873 }
866 gotorecordnumber(thisrec); 874 gotorecordnumber(thisrec);
867 } 875 }
868 if (thishdr_type > 1) 876 if (thishdr_type > 1)
869 { 877 {
870 if (thishdr_type == 4) 878 if (thishdr_type == 4)
871 { 879 {
872 QMessageBox::information(NULL, 880 QMessageBox::information(NULL,
@@ -917,25 +925,25 @@ linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd)
917 unsigned int noff = 0; 925 unsigned int noff = 0;
918 for (unsigned int i = 0; i < n; i++) noff += m_ParaOffsets[i]; 926 for (unsigned int i = 0; i < n; i++) noff += m_ParaOffsets[i];
919 n = noff; 927 n = noff;
920 } 928 }
921 if (n > thishdr_size) 929 if (n > thishdr_size)
922 { 930 {
923 QMessageBox::information(NULL, 931 QMessageBox::information(NULL,
924 QString(PROGNAME), 932 QString(PROGNAME),
925 QString("Error in link\nOffset too big") 933 QString("Error in link\nOffset too big")
926 ); 934 );
927 return eNone; 935 return eNone;
928 } 936 }
929 //qDebug("Hyper:<%u,%u>", tuid, n); 937 //odebug << "Hyper:<" << tuid << "," << n << ">" << oendl;
930 while (bufferpos < n && bufferpos < buffercontent) getch_base(true); 938 while (bufferpos < n && bufferpos < buffercontent) getch_base(true);
931/* // This is faster but the alignment doesn't get set 939/* // This is faster but the alignment doesn't get set
932 mystyle.unset(); 940 mystyle.unset();
933 bufferpos = n; 941 bufferpos = n;
934 currentpos += n; 942 currentpos += n;
935 while (bufferpos >= m_nextPara && m_nextPara >= 0) 943 while (bufferpos >= m_nextPara && m_nextPara >= 0)
936 { 944 {
937 UInt16 attr = m_ParaAttrs[m_nextParaIndex]; 945 UInt16 attr = m_ParaAttrs[m_nextParaIndex];
938 m_nextParaIndex++; 946 m_nextParaIndex++;
939 if (m_nextParaIndex == m_nParas) 947 if (m_nextParaIndex == m_nParas)
940 { 948 {
941 m_nextPara = -1; 949 m_nextPara = -1;
@@ -947,64 +955,64 @@ linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd)
947 } 955 }
948*/ 956*/
949 } 957 }
950 return eLink; 958 return eLink;
951} 959}
952 960
953tchar CPlucker_base::getch_base(bool fast) 961tchar CPlucker_base::getch_base(bool fast)
954{ 962{
955 int ch = bgetch(); 963 int ch = bgetch();
956 while (ch == 0) 964 while (ch == 0)
957 { 965 {
958 ch = bgetch(); 966 ch = bgetch();
959 ////qDebug("Function:%x", ch); 967// //odebug << "Function:" << ch << "" << oendl;
960 switch (ch) 968 switch (ch)
961 { 969 {
962 case 0x38: 970 case 0x38:
963 // //qDebug("Break:%u", locate()); 971// //odebug << "Break:" << locate() << "" << oendl;
964 if (m_lastBreak == locate()) 972 if (m_lastBreak == locate())
965 { 973 {
966 ch = bgetch(); 974 ch = bgetch();
967 } 975 }
968 else 976 else
969 { 977 {
970 ch = 10; 978 ch = 10;
971 } 979 }
972 m_lastBreak = locate(); 980 m_lastBreak = locate();
973 break; 981 break;
974 case 0x0a: 982 case 0x0a:
975 case 0x0c: 983 case 0x0c:
976 { 984 {
977 unsigned long ln = 0; 985 unsigned long ln = 0;
978 int skip = ch & 7; 986 int skip = ch & 7;
979 for (int i = 0; i < 2; i++) 987 for (int i = 0; i < 2; i++)
980 { 988 {
981 int ch = bgetch(); 989 int ch = bgetch();
982 ln = (ln << 8) + ch; 990 ln = (ln << 8) + ch;
983 // //qDebug("ch:%d, ln:%u", ch, ln); 991// //odebug << "ch:" << ch << ", ln:" << ln << "" << oendl;
984 } 992 }
985 if (skip == 2) 993 if (skip == 2)
986 { 994 {
987 ln <<= 16; 995 ln <<= 16;
988 } 996 }
989 else 997 else
990 { 998 {
991 for (int i = 0; i < 2; i++) 999 for (int i = 0; i < 2; i++)
992 { 1000 {
993 int ch = bgetch(); 1001 int ch = bgetch();
994 ln = (ln << 8) + ch; 1002 ln = (ln << 8) + ch;
995 // //qDebug("ch:%d, ln:%u", ch, ln); 1003// //odebug << "ch:" << ch << ", ln:" << ln << "" << oendl;
996 } 1004 }
997 } 1005 }
998 // //qDebug("ln:%u", ln); 1006// //odebug << "ln:" << ln << "" << oendl;
999 mystyle.setLink(true); 1007 mystyle.setLink(true);
1000 mystyle.setData(ln); 1008 mystyle.setData(ln);
1001 // mystyle.setColour(255, 0, 0); 1009 // mystyle.setColour(255, 0, 0);
1002 bool hasseen = false; 1010 bool hasseen = false;
1003 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) 1011 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++)
1004 { 1012 {
1005 if (*it == ln) 1013 if (*it == ln)
1006 { 1014 {
1007 hasseen = true; 1015 hasseen = true;
1008 break; 1016 break;
1009 } 1017 }
1010 } 1018 }
@@ -1029,25 +1037,25 @@ tchar CPlucker_base::getch_base(bool fast)
1029 break; 1037 break;
1030 case 0x40: 1038 case 0x40:
1031 mystyle.setItalic(); 1039 mystyle.setItalic();
1032 ch = bgetch(); 1040 ch = bgetch();
1033 break; 1041 break;
1034 case 0x48: 1042 case 0x48:
1035 mystyle.unsetItalic(); 1043 mystyle.unsetItalic();
1036 ch = bgetch(); 1044 ch = bgetch();
1037 break; 1045 break;
1038 case 0x11: 1046 case 0x11:
1039 { 1047 {
1040 ch = bgetch(); 1048 ch = bgetch();
1041 // //qDebug("Font:%d",ch); 1049// //odebug << "Font:" << ch << "" << oendl;
1042 mystyle.setVOffset(0); 1050 mystyle.setVOffset(0);
1043 mystyle.unsetMono(); 1051 mystyle.unsetMono();
1044 mystyle.unsetBold(); 1052 mystyle.unsetBold();
1045 mystyle.setFontSize(0); 1053 mystyle.setFontSize(0);
1046 switch (ch) 1054 switch (ch)
1047 { 1055 {
1048 case 0: 1056 case 0:
1049 break; 1057 break;
1050 case 1: 1058 case 1:
1051 mystyle.setBold(); 1059 mystyle.setBold();
1052 mystyle.setFontSize(3); 1060 mystyle.setFontSize(3);
1053 break; 1061 break;
@@ -1063,167 +1071,167 @@ tchar CPlucker_base::getch_base(bool fast)
1063 mystyle.setBold(); 1071 mystyle.setBold();
1064 break; 1072 break;
1065 case 5: 1073 case 5:
1066 mystyle.setBold(); 1074 mystyle.setBold();
1067 break; 1075 break;
1068 case 6: 1076 case 6:
1069 mystyle.setBold(); 1077 mystyle.setBold();
1070 break; 1078 break;
1071 case 7: 1079 case 7:
1072 mystyle.setBold(); 1080 mystyle.setBold();
1073 break; 1081 break;
1074 case 8: // should be fixed width 1082 case 8: // should be fixed width
1075 //qDebug("Trying fixed width"); 1083 //odebug << "Trying fixed width" << oendl;
1076 mystyle.setMono(); 1084 mystyle.setMono();
1077 break; 1085 break;
1078 case 9: 1086 case 9:
1079 mystyle.setFontSize(-1); 1087 mystyle.setFontSize(-1);
1080 break; 1088 break;
1081 case 10: 1089 case 10:
1082 mystyle.setFontSize(-2); 1090 mystyle.setFontSize(-2);
1083 mystyle.setVOffset(1); 1091 mystyle.setVOffset(1);
1084 break; 1092 break;
1085 case 11: 1093 case 11:
1086 mystyle.setFontSize(-2); 1094 mystyle.setFontSize(-2);
1087 mystyle.setVOffset(-1); 1095 mystyle.setVOffset(-1);
1088 break; 1096 break;
1089 default: 1097 default:
1090 qDebug("Unrecognised font"); 1098 odebug << "Unrecognised font" << oendl;
1091 break; 1099 break;
1092 } 1100 }
1093 ch = bgetch(); 1101 ch = bgetch();
1094 } 1102 }
1095 break; 1103 break;
1096 case 0x29: 1104 case 0x29:
1097 ch = bgetch(); 1105 ch = bgetch();
1098 switch (ch) 1106 switch (ch)
1099 { 1107 {
1100 case 0: 1108 case 0:
1101 mystyle.setLeftJustify(); 1109 mystyle.setLeftJustify();
1102 // //qDebug("left"); 1110// //odebug << "left" << oendl;
1103 break; 1111 break;
1104 case 1: 1112 case 1:
1105 mystyle.setRightJustify(); 1113 mystyle.setRightJustify();
1106 // //qDebug("right"); 1114// //odebug << "right" << oendl;
1107 break; 1115 break;
1108 case 2: 1116 case 2:
1109 mystyle.setCentreJustify(); 1117 mystyle.setCentreJustify();
1110 // //qDebug("centre"); 1118// //odebug << "centre" << oendl;
1111 break; 1119 break;
1112 case 3: 1120 case 3:
1113 mystyle.setFullJustify(); 1121 mystyle.setFullJustify();
1114 // //qDebug("full"); 1122// //odebug << "full" << oendl;
1115 break; 1123 break;
1116 1124
1117 } 1125 }
1118 ch = bgetch(); 1126 ch = bgetch();
1119 break; 1127 break;
1120 case 0x53: 1128 case 0x53:
1121 { 1129 {
1122 int r = bgetch(); 1130 int r = bgetch();
1123 int g = bgetch(); 1131 int g = bgetch();
1124 int b = bgetch(); 1132 int b = bgetch();
1125 mystyle.setColour(r,g,b); 1133 mystyle.setColour(r,g,b);
1126 ch = bgetch(); 1134 ch = bgetch();
1127 } 1135 }
1128 break; 1136 break;
1129 case 0x1a: 1137 case 0x1a:
1130 case 0x5c: 1138 case 0x5c:
1131 { 1139 {
1132 bool hasalternate = (ch == 0x5c); 1140 bool hasalternate = (ch == 0x5c);
1133 UInt16 ir = bgetch(); 1141 UInt16 ir = bgetch();
1134 ir = (ir << 8) + bgetch(); 1142 ir = (ir << 8) + bgetch();
1135 if (hasalternate) 1143 if (hasalternate)
1136 { 1144 {
1137 //qDebug("Alternate image:%x", ir); 1145 //odebug << "Alternate image:" << ir << "" << oendl;
1138 UInt16 ir2 = bgetch(); 1146 UInt16 ir2 = bgetch();
1139 ir2 = (ir2 << 8) + bgetch(); 1147 ir2 = (ir2 << 8) + bgetch();
1140 if (!fast) mystyle.setPicture(true, expandimg(ir2, true), true, ir << 16); 1148 if (!fast) mystyle.setPicture(true, expandimg(ir2, true), true, ir << 16);
1141#ifdef LOCALPICTURES 1149#ifdef LOCALPICTURES
1142 UInt32 ln = ir; 1150 UInt32 ln = ir;
1143 ln <<= 16; 1151 ln <<= 16;
1144 mystyle.setLink(true); 1152 mystyle.setLink(true);
1145 mystyle.setData(ln); 1153 mystyle.setData(ln);
1146#endif 1154#endif
1147 } 1155 }
1148 else 1156 else
1149 { 1157 {
1150 if (!fast) mystyle.setPicture(true, expandimg(ir)); 1158 if (!fast) mystyle.setPicture(true, expandimg(ir));
1151 } 1159 }
1152 // if (mystyle.getLink()) qDebug("Picture link!"); 1160// if (mystyle.getLink()) odebug << "Picture link!" << oendl;
1153 ch = '#'; 1161 ch = '#';
1154 } 1162 }
1155 // ch = bgetch(); 1163 // ch = bgetch();
1156 break; 1164 break;
1157 case 0x33: 1165 case 0x33:
1158 { 1166 {
1159 UInt8 h = bgetch(); 1167 UInt8 h = bgetch();
1160 UInt8 wc = bgetch(); 1168 UInt8 wc = bgetch();
1161 UInt8 pc = bgetch(); 1169 UInt8 pc = bgetch();
1162 UInt16 w = wc; 1170 UInt16 w = wc;
1163 // //qDebug("h,w,pc [%u, %u, %u]", h, w, pc); 1171// //odebug << "h,w,pc [" << h << ", " << w << ", " << pc << "]" << oendl;
1164 if (w == 0) 1172 if (w == 0)
1165 { 1173 {
1166 w = (m_scrWidth*(unsigned long)pc)/100; 1174 w = (m_scrWidth*(unsigned long)pc)/100;
1167 } 1175 }
1168 if (w == 0) w = m_scrWidth; 1176 if (w == 0) w = m_scrWidth;
1169 mystyle.setPicture(false, hRule(w,h,mystyle.Red(),mystyle.Green(),mystyle.Blue())); 1177 mystyle.setPicture(false, hRule(w,h,mystyle.Red(),mystyle.Green(),mystyle.Blue()));
1170 // if (mystyle.getLink()) //qDebug("hRule link!"); 1178// if (mystyle.getLink()) //odebug << "hRule link!" << oendl;
1171 ch = '#'; 1179 ch = '#';
1172 } 1180 }
1173 break; 1181 break;
1174 case 0x60: 1182 case 0x60:
1175 mystyle.setUnderline(); 1183 mystyle.setUnderline();
1176 ch = bgetch(); 1184 ch = bgetch();
1177 break; 1185 break;
1178 case 0x68: 1186 case 0x68:
1179 mystyle.unsetUnderline(); 1187 mystyle.unsetUnderline();
1180 ch = bgetch(); 1188 ch = bgetch();
1181 break; 1189 break;
1182 case 0x22: 1190 case 0x22:
1183 ch = bgetch(); 1191 ch = bgetch();
1184 mystyle.setLeftMargin(ch); 1192 mystyle.setLeftMargin(ch);
1185 // //qDebug("Left margin:%d", ch); 1193// //odebug << "Left margin:" << ch << "" << oendl;
1186 ch = bgetch(); 1194 ch = bgetch();
1187 mystyle.setRightMargin(ch); 1195 mystyle.setRightMargin(ch);
1188 // //qDebug("Right margin:%d", ch); 1196// //odebug << "Right margin:" << ch << "" << oendl;
1189 ch = bgetch(); 1197 ch = bgetch();
1190 break; 1198 break;
1191 case 0x70: 1199 case 0x70:
1192 mystyle.setStrikethru(); 1200 mystyle.setStrikethru();
1193 ch = bgetch(); 1201 ch = bgetch();
1194 break; 1202 break;
1195 case 0x78: 1203 case 0x78:
1196 mystyle.unsetStrikethru(); 1204 mystyle.unsetStrikethru();
1197 ch = bgetch(); 1205 ch = bgetch();
1198 break; 1206 break;
1199 case 0x83: 1207 case 0x83:
1200 { 1208 {
1201 int tlen = bgetch(); 1209 int tlen = bgetch();
1202 ch = bgetch(); 1210 ch = bgetch();
1203 ch <<= 8; 1211 ch <<= 8;
1204 ch |= (tchar)bgetch(); 1212 ch |= (tchar)bgetch();
1205 for (int i = 0; i < tlen; i++) bgetch(); 1213 for (int i = 0; i < tlen; i++) bgetch();
1206 //qDebug("Function 83"); 1214 //odebug << "Function 83" << oendl;
1207 } 1215 }
1208 break; 1216 break;
1209 case 0x85: 1217 case 0x85:
1210 default: 1218 default:
1211 qDebug("Function:%x NOT IMPLEMENTED", ch); 1219 odebug << "Function:" << ch << " NOT IMPLEMENTED" << oendl;
1212 { 1220 {
1213 int skip = ch & 7; 1221 int skip = ch & 7;
1214 for (int i = 0; i < skip; i++) 1222 for (int i = 0; i < skip; i++)
1215 { 1223 {
1216 ch = bgetch(); 1224 ch = bgetch();
1217 //qDebug("Arg %d, %d", i, ch); 1225 //odebug << "Arg " << i << ", " << ch << "" << oendl;
1218 } 1226 }
1219 ch = bgetch(); 1227 ch = bgetch();
1220 } 1228 }
1221 } 1229 }
1222 } 1230 }
1223 1231
1224 if (m_lastIsBreak && !mystyle.isMono()) 1232 if (m_lastIsBreak && !mystyle.isMono())
1225 { 1233 {
1226 while (ch == ' ') 1234 while (ch == ' ')
1227 { 1235 {
1228 ch = getch(false); 1236 ch = getch(false);
1229 } 1237 }