-rw-r--r-- | noncore/apps/opie-reader/Aportis.cpp | 8 | ||||
-rw-r--r-- | noncore/apps/opie-reader/Bkmks.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/opie-reader/BuffDoc.cpp | 18 | ||||
-rw-r--r-- | noncore/apps/opie-reader/CDrawBuffer.cpp | 22 | ||||
-rw-r--r-- | noncore/apps/opie-reader/QTReader.cpp | 52 | ||||
-rw-r--r-- | noncore/apps/opie-reader/QTReaderApp.cpp | 3231 | ||||
-rw-r--r-- | noncore/apps/opie-reader/StyleConsts.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-reader/fileBrowser.cpp | 8 | ||||
-rw-r--r-- | noncore/apps/opie-reader/opie-reader.pro | 12 | ||||
-rw-r--r-- | noncore/apps/opie-reader/plucker.cpp | 10 | ||||
-rw-r--r-- | noncore/apps/opie-reader/plucker_base.cpp | 1402 |
11 files changed, 2390 insertions, 2381 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 @@ -7,56 +7,56 @@ Aportis::Aportis() : peanutfile(false) { /*printf("constructing:%x\n",fin);*/ } void Aportis::dePeanut(int& ch) { if (peanutfile && ch != EOF) { unsigned char c = ch; if (peanutfile) c ^= 0xa5; ch = c; } } CList<Bkmk>* Aportis::getbkmklist() { /* if (peanutfile) { if (nRecs2 > nRecs) { CList<Bkmk>* t = new CList<Bkmk>; for (int i = nRecs; i < nRecs2; i++) { char name[17]; name[16] = '\0'; -// qDebug("Record:%d, Length:%u",i,recordlength(i)); +// odebug << "Record:" << i << ", Length:" << recordlength(i) << "" << oendl; gotorecordnumber(i); fread(name,1,16,fin); unsigned long lcn; fread(&lcn,sizeof(lcn),1,fin); lcn ^= 0xa5a5a5a5; lcn = SwapLong(lcn); -// qDebug("Bookmark:%s:%u", name,lcn); +// odebug << "Bookmark:" << name << ":" << lcn << "" << oendl; tchar tname[17]; memset(tname, 0, sizeof(tname)); for (int i = 0; name[i] != 0; i++) { tname[i] = name[i] ^ 0xa5; } t->push_back(Bkmk(tname, NULL, lcn)); } return t; } else { return NULL; } } */ if (bCompressed != 4) return NULL; CList<Bkmk>* t = new CList<Bkmk>; size_t cur = ftell(fin); for (int i = 0; i < nRecs2; i++) { DWORD dwPos; fseek(fin, 0x56 + 8*i, SEEK_SET); fread(&dwPos, 4, 1, fin); @@ -100,49 +100,49 @@ int Aportis::OpenFile(const char *src) if (head.creator != 0x64414552 // 'dAER' || head.type != 0x74584554) // 'tXET') { if (memcmp(&head.creator, "PPrs", 4) == 0 && memcmp(&head.type, "PNRd", 4) == 0) { peanutfile = true; } else { return -2; } } nRecs2 = nRecs = SwapWord(head.recordList.numRecords) - 1; fseek(fin,0,SEEK_END); dwLen = ftell(fin); if (peanutfile) { PeanutHeader hdr0; gotorecordnumber(0); fread(&hdr0, sizeof(hdr0), 1, fin); -// qDebug("Version:%x", ntohs(hdr0.Version)); +// odebug << "Version:" << ntohs(hdr0.Version) << "" << oendl; if (hdr0.Version && 0x0200) { bCompressed = 2; } else { bCompressed = 1; } BlockSize = 4096; nRecs = SwapWord(hdr0.Records)-1; dwTLen = nRecs*BlockSize; } else { gotorecordnumber(0); tDocRecord0 hdr0; fread(&hdr0, sizeof(hdr0), 1, fin); bCompressed = SwapWord(hdr0.wVersion); if (bCompressed!=1 && bCompressed!=2 && bCompressed != 4) { ret = bCompressed; bCompressed = 2; } switch (bCompressed) { @@ -161,49 +161,49 @@ int Aportis::OpenFile(const char *src) } break; case 1: case 2: default: nRecs = SwapWord(hdr0.wNumRecs); dwTLen = SwapLong(hdr0.dwStoryLen); BlockSize = SwapWord(hdr0.wRecSize); if (BlockSize == 0) { BlockSize = 4096; printf("WARNING: Blocksize not set in source file\n"); } } } // this is the main record buffer // it knows how to stretch to accomodate the decompress currentrec = 0; cbptr = 0; outptr = 0; refreshbuffer(); -// qDebug("Number of records:[%u,%u]", nRecs, nRecs2); +// odebug << "Number of records:[" << nRecs << "," << nRecs2 << "]" << oendl; return ret; } int Aportis::getch() { if (bCompressed == 1) { if ((dwRecLen == 0) && !refreshbuffer()) return EOF; else { int c = getc(fin); dePeanut(c); dwRecLen--; currentpos++; return c; } } if (outptr != cbptr) { currentpos++; return (circbuf[outptr = (outptr + 1) % 2048]); } if ((dwRecLen == 0) && !refreshbuffer()) return EOF; currentpos++; 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 @@ -196,57 +196,57 @@ CList<Bkmk>* BkmkFile::readall() { unsigned long newmagic; fread(&newmagic, sizeof(newmagic), 1, f); if ((newmagic & 0xffffff00) != (magic & 0xffffff00)) { if (QMessageBox::warning(NULL, "Old bookmark file!", "Which version of " PROGNAME "\ndid you upgrade from?", "0_4*", "Any other version") == 0) { fseek(f,0,SEEK_SET); bl = readall00(&read05); } else { fseek(f,0,SEEK_SET); bl = readall00(&read03); } isUpgraded = true; } else { switch(newmagic & 0xff) { case 6: isUpgraded = false; bl = readall00(read06); -// qDebug("Correct version!"); +// odebug << "Correct version!" << oendl; break; case 5: isUpgraded = true; bl = readall00(read05); -// qDebug("Known version!"); +// odebug << "Known version!" << oendl; break; default: -// qDebug("Unknown version!"); +// odebug << "Unknown version!" << oendl; isUpgraded = true; bl = readall00(read05); } } } return bl; } CList<Bkmk>* BkmkFile::readall00(Bkmk* (*readfn)(FILE*)) { CList<Bkmk>* bl = new CList<Bkmk>; while (1) { Bkmk* b = (*readfn)(f); if (b == NULL) break; bl->push_back(*b); delete b; } return bl; } Bkmk* BkmkFile::read03(FILE* f) { Bkmk* b = NULL; 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 @@ -11,59 +11,59 @@ linkType BuffDoc::hyperlink(unsigned int n, QString& wrd) { linkType bRet = eNone; if (exp != NULL) { bRet = exp->hyperlink(n, wrd); if (bRet == eLink) { lastword.empty(); lastsizes[0] = laststartline = n; #ifdef NEWLINEBREAK lastispara = true; #else lastispara = false; #endif lastsizes[0] = laststartline = exp->locate(); } } return bRet; } void BuffDoc::locate(unsigned int n) { - // //qDebug("BuffDoc:locating:%u",n); + // //odebug << "BuffDoc:locating:" << n << "" << oendl; lastword.empty(); lastsizes[0] = laststartline = n; #ifdef NEWLINEBREAK lastispara = true; #else lastispara = false; #endif // tchar linebuf[1024]; if (exp != NULL) exp->locate(n); - // //qDebug("BuffDoc:Located"); + // //odebug << "BuffDoc:Located" << oendl; } #ifdef NEWLINEBREAK bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border) { bool moreleft = true; bool margindone = false; int w = wth-2*_border; tchar ch = 32; CStyle cs; buff->empty(); if (exp == NULL) { buff->empty(); buff->setEof(); return false; } int len = 0; if (lastword.length() > 0) { *buff = lastword; cs = lastword.laststyle(); w -= buff->leftMargin() + buff->rightMargin(); margindone = true; @@ -167,49 +167,49 @@ bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border) } #else bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border) { bool margindone = false; int w = wth-2*_border; tchar ch = 32; CStyle cs; buff->empty(); if (exp == NULL) { // (*buff)[0] = '\0'; buff->empty(); return false; } int len = 0, lastcheck = 0; if (lastword.length() > 0) { *buff = lastword; cs = lastword.laststyle(); w -= buff->leftMargin() + buff->rightMargin(); margindone = true; } else buff->empty(); -// //qDebug("Buff:%s Lastword:%s", (const char*)toQString(buff->data()), (const char*)toQString(lastword.data())); +// //odebug << "Buff:" << toQString(buff->data()) << " Lastword:" << toQString(lastword.data()) << "" << oendl; lastcheck = len = buff->length(); unsigned int slen = buff->width(len); if (slen > w) { for ( ; len > 1; len--) { if (buff->width(len) < w) break; } // lastword = buff->data() + len - 1; laststartline = lastsizes[len-1]; for (int i = 0; i < buff->length(); i++) lastsizes[i] = lastsizes[i+len-1]; // (*buff)[len-1] = '-'; if (len > 2) { lastword.setright(*buff, len - 1); buff->truncate(len-1); buff->addch('-', cs); (*buff)[len] = '\0'; } else { lastword.empty(); (*buff)[len] = '\0'; @@ -301,50 +301,50 @@ bool BuffDoc::getline(CDrawBuffer* buff, int wth, int cw, unsigned char _border) int w = wth-2*_border; buff->empty(); if (exp == NULL) { return false; } tchar ch; CStyle cs; int i = 1; while (i*cw < w-buff->offset(w,0)) { getch(ch, cs); if (ch == '\12' || ch == UEOF) break; buff->addch(ch,cs); i++; } buff->truncate(i); laststartline = exp->locate(); buff->resize(); return (ch != UEOF); } int BuffDoc::openfile(QWidget* _parent, const char *src) { - // //qDebug("BuffDoc:Openfile:%s", src); - // //qDebug("Trying aportis %x",exp); + // //odebug << "BuffDoc:Openfile:" << src << "" << oendl; + // //odebug << "Trying aportis " << exp << "" << oendl; if (exp != NULL) delete exp; lastword.empty(); lastsizes[0] = laststartline = 0; #ifdef NEWLINEBREAK lastispara = true; #else lastispara = false; #endif /* exp = new Text; int ret = exp->openfile(src); */ exp = new Aportis; int ret = exp->openfile(src); if (ret == -1) { delete exp; exp = NULL; return ret; } if (ret == -2) { @@ -357,56 +357,56 @@ int BuffDoc::openfile(QWidget* _parent, const char *src) { delete exp; exp = new CArriere; ret = exp->openfile(src); } if (ret != 0) { delete exp; exp = new CNEF; ret = exp->openfile(src); } #endif if (ret != 0) { delete exp; exp = new CPlucker; ret = exp->openfile(src); } if (ret != 0) { delete exp; - //qDebug("Trying ppms"); + //odebug << "Trying ppms" << oendl; exp = new ppm_expander; ret = exp->openfile(src); } if (ret != 0) { delete exp; exp = new Text; -// //qDebug("Trying text"); +// //odebug << "Trying text" << oendl; ret = exp->openfile(src); } if (ret != 0) { delete exp; QMessageBox::information(_parent, PROGNAME, "Unknown file compression type","Try another file"); return ret; } - // //qDebug("Doing final open:%x:%x",exp,filt); + // //odebug << "Doing final open:" << exp << ":" << filt << "" << oendl; lastword.empty(); lastsizes[0] = laststartline = 0; #ifdef NEWLINEBREAK lastispara = true; #else lastispara = false; #endif exp->locate(0); filt->setsource(exp); - // //qDebug("BuffDoc:file opened"); + // //odebug << "BuffDoc:file opened" << oendl; return 0; } 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 @@ -19,67 +19,67 @@ void CDrawBuffer::setright(CDrawBuffer& rhs, int f) segs.erase(0); } for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); ) { CList<textsegment>::iterator next = iter; iter++; if (iter == rhs.segs.end() || iter->start > f) { int st = next->start-f; if (st < 0) st = 0; CStyle _style = next->style; segs.push_back(textsegment(st,next->style)); } } for (i = f; rhs[i] != '\0'; i++) (*this)[i-f] = rhs[i]; (*this)[i-f] = '\0'; len = i; } CDrawBuffer& CDrawBuffer::operator=(CDrawBuffer& rhs) { int i; -// //qDebug("Trying 2"); +// //odebug << "Trying 2" << oendl; len = rhs.len; m_maxstyle = rhs.m_maxstyle; m_ascent = rhs.m_ascent; m_descent = rhs.m_descent; m_lineSpacing = rhs.m_lineSpacing; m_lineExtraSpacing = rhs.m_lineExtraSpacing; while (!segs.isEmpty()) { segs.erase(0); } for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); iter++) { segs.push_back(*iter); } for (i = 0; rhs[i] != '\0'; i++) (*this)[i] = rhs[i]; (*this)[i] = '\0'; len = i; -// //qDebug("Tried 2"); +// //odebug << "Tried 2" << oendl; return *this; } CDrawBuffer& CDrawBuffer::operator=(const tchar*sztmp) { int i; while (!segs.isEmpty()) { segs.erase(0); } segs.push_back(textsegment(0, CStyle())); for (i = 0; sztmp[i] != '\0'; i++) (*this)[i] = sztmp[i]; (*this)[i] = '\0'; len = i; return *this; } void CDrawBuffer::empty() { m_bSop = false; m_bEop = false; len = 0; (*this)[0] = 0; while (!segs.isEmpty()) @@ -187,49 +187,49 @@ int CDrawBuffer::width(int numchars, bool onscreen, int scwidth, unsigned char _ QFont f(currentstyle.isMono() ? QString(fc->fixedfontname()) : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) ); // f.setUnderline(currentstyle.isUnderline()); QString str = text.mid(textstart->start, end-textstart->start); QFontMetrics fm(f); if (just) { int lastspace = -1; int nsp = 0; int cx = currentx; while ((nsp = str.find(" ", lastspace+1)) >= 0) { if (nsp > nonspace) { spacenumber++; int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar; QString nstr = str.mid(lastspace+1, nsp-lastspace); int lw = fm.width(nstr); cx += lw+nexttoadd; spacesofar += nexttoadd; lastspace = nsp; } else { QString nstr = str.mid(lastspace+1, nsp-lastspace); -// qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); +// odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl; int lw = fm.width(nstr); cx += lw; lastspace = nsp; } } QString nstr = str.right(str.length()-1-lastspace); cx += fm.width(nstr); currentx = cx; } else { currentx += fm.width(str); } } } textstart = textend; } while (textend != segs.end() && end != numchars && textstart->start < len); return currentx; } int CDrawBuffer::leftMargin() { return (segs.begin()->style.getLeftMargin()*fc->getsize(segs.begin()->style)+3)/6; @@ -296,49 +296,49 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int { if ((*this)[i] == ' ') { spaces++; } } if (spaces == 0) { just = false; } else { extraspace = (scwidth - 2*_border - rightMargin() - leftMargin() - width()); if (extraspace == 0) just = false; } } CList<textsegment>::iterator textend = textstart; do { textend++; int end = (textend != segs.end()) ? textend->start : len; CStyle currentstyle = textstart->style; QFont f((currentstyle.isMono() && fc->hasCourier()) ? fc->fixedfontname() : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) ); // f.setUnderline(currentstyle.isUnderline()); -// if (currentstyle.isUnderline()) qDebug("UNDERLINE"); +// if (currentstyle.isUnderline()) odebug << "UNDERLINE" << oendl; _p->setFont(f); QString str = text.mid(textstart->start, end-textstart->start); #if defined(OPIE) || !defined(USEQPE) _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/100)); #else _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10)); #endif int voffset = currentstyle.getVOffset()*fc->getsize(currentstyle)/2; if (_bMono) { if (currentstyle.isUnderline()) { _p->drawLine( currentx, _y+voffset, currentx + str.length()*_charWidth, _y+voffset); } if (currentstyle.isStrikethru()) { int ascent = fc->ascent(currentstyle)/3; _p->drawLine( currentx, _y-ascent+voffset, currentx + str.length()*_charWidth, _y-ascent+voffset); } for (int i = 0; i < str.length(); i++) { _p->drawText( currentx + i*_charWidth, _y+voffset, QString(str[i])); } currentx += str.length()*_charWidth; @@ -387,59 +387,59 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int #ifdef _WINDOWS _p->drawText( currentx, _y+voffset, QString(str.at(i))); #else _p->drawText( currentx, _y+voffset, QString(str[i])); #endif currentx += cw; } } else { QFontMetrics fm(f); int w; if (just) { int lastspace = -1; int nsp = 0; int cx = currentx; while ((nsp = str.find(" ", lastspace+1)) >= 0) { if (nsp+textstart->start >= nonspace) { spacenumber++; int nexttoadd = (extraspace*spacenumber+spaces/2)/spaces - spacesofar; QString nstr = str.mid(lastspace+1, nsp-lastspace); -// qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); +// odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl; int lw = fm.width(nstr); _p->drawText( cx, _y+voffset, nstr); cx += lw+nexttoadd; spacesofar += nexttoadd; lastspace = nsp; } else { QString nstr = str.mid(lastspace+1, nsp-lastspace); -// qDebug("str:%s: last:%d new:%d nstr:%s:", (const char*)str, lastspace, nsp, (const char*)nstr); +// odebug << "str:" << str << ": last:" << lastspace << " new:" << nsp << " nstr:" << nstr << ":" << oendl; int lw = fm.width(nstr); _p->drawText( cx, _y+voffset, nstr); cx += lw; lastspace = nsp; } } QString nstr = str.right(str.length()-1-lastspace); _p->drawText( cx, _y+voffset, nstr); cx += fm.width(nstr); w = cx - currentx; } else { _p->drawText( currentx, _y+voffset, str); w = fm.width(str); } if (currentstyle.isUnderline()) { _p->drawLine( currentx, _y+voffset, currentx + w, _y+voffset); } if (currentstyle.isStrikethru()) { int ascent = fc->ascent(currentstyle)/3; _p->drawLine( currentx, _y-ascent+voffset, currentx + w, _y-ascent+voffset); @@ -449,56 +449,56 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int } } textstart = textend; } while (textend != segs.end() && textstart->start < len); } CStyle CDrawBuffer::laststyle() { return segs.last().style; } linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt) { int end = 0; CStyle currentstyle; CList<textsegment>::iterator textstart = segs.begin(); CList<textsegment>::iterator textend = textstart; do { textend++; end = (textend != segs.end()) ? textend->start : len; currentstyle = textstart->style; /* - if (currentstyle.isPicture()) qDebug("Passed thru picture"); - if (currentstyle.getLink()) qDebug("Passed thru link"); - //qDebug("islink:%d - %d", numchars, end); + if (currentstyle.isPicture()) odebug << "Passed thru picture" << oendl; + if (currentstyle.getLink()) odebug << "Passed thru link" << oendl; + //odebug << "islink:" << numchars << " - " << end << "" << oendl; */ textstart = textend; } while (textend != segs.end() && end <= numchars); -// if (currentstyle.isPicture()) qDebug("Clicked on picture"); +// if (currentstyle.isPicture()) odebug << "Clicked on picture" << oendl; if (currentstyle.getPictureLink()) { tgt = currentstyle.getPictureLinkData(); return ePicture; } if (currentstyle.getLink()) { tgt = currentstyle.getData(); return eLink; } return eNone; } void CDrawBuffer::resize() { int gzoom = fc->gzoom(); m_maxstyle = m_ascent = m_descent = m_lineSpacing = m_lineExtraSpacing = 0; for (CList<textsegment>::iterator iter = segs.begin(); iter != segs.end() && iter->start <= len; ) { CList<textsegment>::iterator next = iter; iter++; int st = next->start; if (st < 0) st = 0; @@ -518,29 +518,29 @@ void CDrawBuffer::resize() /* else if (fc != NULL) { ascent = fc->ascent(_style); descent = fc->descent(_style); linespacing = fc->lineSpacing(_style); extra = linespacing - ascent - descent; } */ if (ascent > m_ascent) m_ascent = ascent; if (descent > m_descent) m_descent = descent; if (extra > m_lineExtraSpacing) m_lineExtraSpacing = extra; m_lineSpacing = m_ascent+m_descent+m_lineExtraSpacing; } int lead = fc->getlead(); if (lead != 0) { int xt = (lead*m_lineSpacing+5)/10; m_descent += xt; m_lineSpacing += xt; } if (m_bSop) { int xt = ((segs.begin()->style.getExtraSpace()+fc->getextraspace())*fc->getsize(segs.begin()->style)+5)/10; -// qDebug("ExtraSpace:%d", xt); +// odebug << "ExtraSpace:" << xt << "" << oendl; m_ascent += xt; m_lineSpacing += xt; } } 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 @@ -59,73 +59,73 @@ QTReader::QTReader( QWidget *parent, const char *name, WFlags f) : #endif m_border(2) { m_overlap = 1; setKeyCompression ( true ); // init(); } /* QTReader::QTReader( const QString& filename, QWidget *parent=0, const tchar *name=0, WFlags f = 0) : QWidget(parent, name, f), m_textfont(0), m_textsize(1), textarray(NULL), numlines(0), bstripcr(true), bunindent(false), brepara(false), bdblspce(false), btight(false), bindenter(0), m_fm(NULL) { init(); -// // qDebug("Load_file(1)"); +// // odebug << "Load_file(1)" << oendl; load_file((const tchar*)filename); } */ /* void QTReader::mouseMoveEvent(QMouseEvent* _e) { mouseUpOn = !(_e->pos().x() == -1); - qDebug("MouseMove:[%d, %d]", _e->pos().x(), _e->pos().y()); + odebug << "MouseMove:[" << _e->pos().x() << ", " << _e->pos().y() << "]" << oendl; } */ long QTReader::real_delay() { return ( 8976 + m_delay ) / ( m_linespacing * m_linespacing ); } void QTReader::mousePressEvent( QMouseEvent* _e ) { buffdoc.unsuspend(); if (_e->button() == RightButton) { -// qDebug("MousePress"); +// odebug << "MousePress" << oendl; mouseUpOn = false; if (m_swapmouse) { int lineno = 0; int ht = textarray[0]->lineSpacing(); while ((ht < _e->y()) && (lineno < numlines)) { ht += textarray[++lineno]->lineSpacing(); } size_t startpos, startoffset, tgt; getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt); processmousewordevent(startpos, startoffset, _e, lineno); } else processmousepositionevent(_e); } } void QTReader::processmousepositionevent( QMouseEvent* _e ) { if (buffdoc.hasnavigation()) { if (_e->y() > (2*height())/3) { @@ -296,71 +296,71 @@ void QTReader::processmousewordevent(size_t startpos, size_t startoffset, QMouse jumpto(currentpos); } } } else if (m_bMonoSpaced) { int chno = (_e->x()-textarray[lineno]->offset(width(), m_border))/m_charWidth; if (chno < ustrlen(textarray[lineno]->data())) { wrd[0] = textarray[lineno]->data()[chno]; } } else { CDrawBuffer* t = textarray[lineno]; int first = 0; int tgt = _e->x() - t->offset(width(), m_border); while (1) { int i = first+1; while (QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++; if (t->width(i, true, width(), m_border) > tgt) { wrd = toQString(t->data()+first, i - first); -// qDebug("Got %s", (const char *)wrd); +// odebug << "Got " << (const char *)wrd << "" << oendl; break; } while (!QChar((*t)[i]).isLetter() && (*t)[i] != 0) i++; if ((*t)[i] == 0) break; first = i; } } if (!wrd.isEmpty()) { -// qDebug("Selected:%s", (const char*)wrd); +// odebug << "Selected:" << wrd << "" << oendl; emit OnWordSelected(wrd, locnarray[lineno], (m_twotouch) ? wrd : toQString(textarray[lineno]->data())); } } void QTReader::mouseReleaseEvent( QMouseEvent* _e ) { buffdoc.unsuspend(); if (_e->button() == LeftButton) { if (mouseUpOn) { -// qDebug("MouseRelease"); +// odebug << "MouseRelease" << oendl; if (_e->x() > width() - m_border) { locate(buffdoc.startSection()+((buffdoc.endSection()-buffdoc.startSection())*_e->y()+height()/2)/height()); return; } if (textarray[0] != NULL) { QString line; // int lineno = _e->y()/m_linespacing; int lineno = 0; int ht = textarray[0]->lineSpacing(); while ((ht < _e->y()) && (lineno < numlines)) { ht += textarray[++lineno]->lineSpacing(); } size_t startpos, startoffset, tgt; switch (getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt)) { case eLink: { size_t saveposn = pagelocate(); QString href; linkType lt = buffdoc.hyperlink(tgt, href); if (lt == eLink) @@ -373,65 +373,65 @@ void QTReader::mouseReleaseEvent( QMouseEvent* _e ) { if (lt == ePicture) { QImage* pm = buffdoc.getPicture(tgt); if (pm != NULL) { emit OnShowPicture(*pm); delete pm; } } else { // QString anchortext = textarray[lineno]->getanchortext(startoffset); if (!href.isEmpty()) { emit OnURLSelected(href); } } locate(pagelocate()); } return; } case ePicture: { -// qDebug("Picture:%x", tgt); +// odebug << "Picture:" << tgt << "" << oendl; QImage* pm = buffdoc.getPicture(tgt); if (pm != NULL) { emit OnShowPicture(*pm); delete pm; } else { locate(pagelocate()); } return; } case eNone: break; default: -// qDebug("Unknown linktype"); +// odebug << "Unknown linktype" << oendl; return; } if (m_swapmouse) processmousepositionevent(_e); else processmousewordevent(startpos, startoffset, _e, lineno); } } else { mouseUpOn = true; } } } void QTReader::focusInEvent(QFocusEvent* e) { if (m_autoScroll) timer->start(real_delay(), false); update(); } void QTReader::focusOutEvent(QFocusEvent* e) { if (m_autoScroll) @@ -675,49 +675,49 @@ void QTReader::setautoscroll(bool _sc) { if (_sc == m_autoScroll) return; if (m_autoScroll) { m_autoScroll = false; #ifdef USEQPE QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; #endif #ifdef _SCROLLPIPE if (m_pipeout != NULL) { pclose(m_pipeout); m_pipeout = NULL; } #endif } else { CDrawBuffer* reusebuffer = textarray[numlines]; if (reusebuffer == NULL || reusebuffer->eof()) return; m_autoScroll = true; #ifdef _SCROLLPIPE if (!m_pipetarget.isEmpty()) { -// qDebug("Opening pipe to %s", (const char*)m_pipetarget); +// odebug << "Opening pipe to " << m_pipetarget << "" << oendl; m_pipeout = popen((const char*)m_pipetarget, "w"); m_isPaused = false; } #endif autoscroll(); #ifdef USEQPE QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; // light is even not dimmed #endif } } bool QTReader::getline(CDrawBuffer *buff) { buffdoc.unsuspend(); if (m_bMonoSpaced) { return buffdoc.getline(buff ,width(), m_charWidth, m_border); } else { return buffdoc.getline(buff, width(), m_border); } } @@ -802,123 +802,123 @@ void QTReader::doscroll() } emit OnRedraw(); } } void QTReader::autoscroll() { timer->start(real_delay(), false); } void QTReader::setfont() { // m_fontControl.Change m_charWidth = (m_charpc*m_fontControl.currentsize())/100; if (m_charWidth <= 0) m_charWidth = 1; m_ascent = m_fontControl.ascent(); m_descent = m_fontControl.descent(); m_linespacing = m_fontControl.lineSpacing(); } void QTReader::drawFonts( QPainter *p ) { if (bDoUpdates) { -// qDebug("How refreshing..."); +// odebug << "How refreshing..." << oendl; if (buffdoc.empty()) return; setfont(); if (m_lastwidth != width()) { -// qDebug("Not Optimised %d", m_lastwidth); +// odebug << "Not Optimised " << m_lastwidth << "" << oendl; m_lastwidth = width(); m_lastheight = height(); buffdoc.setwidth(m_lastwidth-2*m_border); locate(pagelocate()); -// qDebug("Not Optimised %d", m_lastwidth); +// odebug << "Not Optimised " << m_lastwidth << "" << oendl; } else { int newht = height(); if (m_lastheight > newht) { -// qDebug("Optimised < %d %d %d", numlines, m_lastheight, newht); +// odebug << "Optimised < " << numlines << " " << m_lastheight << " " << newht << "" << oendl; int ypos = 0; for (int i = 0; i < numlines; i++) { if ((ypos += textarray[i]->lineSpacing()) > newht) { numlines = i; jumpto(mylastpos = locnarray[i+1]); break; } } -// qDebug("Optimised < %d", numlines); +// odebug << "Optimised < " << numlines << "" << oendl; m_lastheight = newht; } else if (m_lastheight < newht) { -// qDebug("Optimised > %d", numlines); +// odebug << "Optimised > " << numlines << "" << oendl; int ypos = 0; for (int i = 0; i <= numlines; i++) { ypos += textarray[i]->lineSpacing(); } fillbuffer(numlines+1, ypos, newht); -// qDebug("Optimised > %d", numlines); +// odebug << "Optimised > " << numlines << "" << oendl; } if (numlines > 0) { int ypos = textarray[0]->ascent(); textarray[0]->render( p, ypos, m_bMonoSpaced, m_charWidth, width(), m_border); // int last = (m_showlast) ? numlines : numlines-1; // for (int i = 1; i <= last; i++) for (int i = 1; i < numlines; i++) { // ypos += (textarray[i-1]->lineSpacing() + textarray[i]->lineSpacing())/2; ypos += (textarray[i-1]->descent() + textarray[i]->ascent())+ (textarray[i-1]->lineExtraSpacing() + textarray[i]->lineExtraSpacing())/2; textarray[i]->render( p, ypos, m_bMonoSpaced, m_charWidth, width(), m_border); } // mylastpos = locate(); } } m_scrolldy1 = m_scrolldy2 = m_scrollpart; if (m_border > 5 && !buffdoc.empty()) { p->fillRect(width()-2, 0, 2, height(), cyan); int sectionsize = (buffdoc.endSection()-buffdoc.startSection()); int mid = (height()*(locnarray[numlines]+locnarray[0]-2*buffdoc.startSection())+sectionsize)/(2*sectionsize); p->fillRect(width()-2, mid-5, 2, 10, yellow); p->fillRect(width()-2, (height()*(locnarray[0]-buffdoc.startSection())+sectionsize/2)/sectionsize, 2, ((locnarray[numlines]-locnarray[0])*height()+sectionsize/2)/sectionsize, magenta); } emit OnRedraw(); } /* else { - qDebug("Not so refreshing..."); + odebug << "Not so refreshing..." << oendl; } */ } QString QTReader::firstword() { if (m_bMonoSpaced) { return toQString(textarray[0]->data()); } else { int start, end, len, j; for (j = 0; j < numlines; j++) { len = textarray[j]->length(); for (start = 0; start < len && !isalpha((*textarray[j])[start]); start++); if (start < len) break; } if (j < numlines) { QString ret = ""; for (end = start; end < len && isalpha((*textarray[j])[end]); end++) ret += (*textarray[j])[end]; @@ -1007,78 +1007,78 @@ void QTReader::printIt() return; drawIt( &paint ); } #endif } */ // // Called when the widget needs to be updated. // void QTReader::paintEvent( QPaintEvent * ) { QPainter paint( this ); drawIt( &paint ); } // // Called when the widget has been resized. // Moves the button group to the upper right corner // of the widget. /* void QTReader::resizeEvent( QResizeEvent * ) { -// // qDebug("resize:(%u,%u)", width(), height()); +// // odebug << "resize:(" << width() << "," << height() << ")" << oendl; // bgroup->move( width()-bgroup->width(), 0 ); } */ // // Create and display our widget. // /* int main( int argc, tchar **argv ) { QApplication app( argc, argv ); QTReader draw; app.setMainWidget( &draw ); draw.setCaption("Qt Example - Drawdemo"); draw.show(); return app.exec(); } */ bool QTReader::locate(unsigned long n) { //printf("Locate\n"); buffdoc.unsuspend(); buffdoc.locate(n); -// // qDebug("&buffdoc.located"); +// // odebug << "&buffdoc.located" << oendl; fillbuffer(); -// // qDebug("&Buffer filled"); +// // odebug << "&Buffer filled" << oendl; update(); -// // qDebug("&Located"); +// // odebug << "&Located" << oendl; return true; } unsigned int QTReader::screenlines() { // int linespacing = (tight) ? m_ascent : m_ascent+m_descent; // return (height()-m_descent)/(m_linespacing); return (height()-2)/(m_linespacing); }; bool QTReader::fillbuffer(int reuse, int ht, int newht) { buffdoc.unsuspend(); if (buffdoc.empty()) return false; if (newht < 0) m_lastheight = height(); else m_lastheight = newht; int ch; bool ret = false; unsigned int oldpagepos = locnarray[reuse]; int lastypos = ht, ypos = ht; numlines = reuse; while (ypos < m_lastheight || numlines < 2) @@ -1096,54 +1096,54 @@ bool QTReader::fillbuffer(int reuse, int ht, int newht) { if (numlines - reuse == 1 /*&& locnarray[numlines] == buffdoc.locate()*/) { locate(oldpagepos); return false; } else { --numlines; mylastpos = locate(); return true; } } } --numlines; mylastpos = locate(); m_scrolldy1 = m_scrolldy2 = m_scrollpart = m_lastheight - lastypos; return true; } void QTReader::dopagedn() { -// qDebug("HEIGHT(2):%d", m_lastheight); +// odebug << "HEIGHT(2):" << m_lastheight << "" << oendl; buffdoc.unsuspend(); int skip = 0, ypos = 0; if (locate() != mylastpos) { -//// qDebug("Jumping to %u", mylastpos); +//// odebug << "Jumping to " << mylastpos << "" << oendl; jumpto(mylastpos); } CDrawBuffer* reusebuffer = textarray[numlines]; if (reusebuffer != NULL && reusebuffer->eof()) return; if (reusebuffer != NULL) { for (int i = 0; i <= m_overlap; i++) { int offset = numlines - m_overlap + i; reusebuffer = textarray[offset]; size_t reuselocn = locnarray[offset]; textarray[offset] = textarray[i]; textarray[i] = reusebuffer; // reusebuffer->empty(); locnarray[offset] = locnarray[i]; locnarray[i] = reuselocn; ypos += textarray[i]->lineSpacing(); skip++; } } if (fillbuffer(skip, ypos)) { update(); } @@ -1292,55 +1292,55 @@ void QTReader::dopageup(unsigned int target) update(); } bool QTReader::load_file(const char *newfile, unsigned int _lcn) { // QMessageBox::information(this, "Name", name, 1); // QMessageBox::information(this, "load_file", newfile, 1); bool bRC = false; unsigned int lcn = _lcn; if (m_lastfile == newfile) { lcn = m_lastposn; } // QMessageBox::information(0, "Opening...", newfile); m_lastwidth = width(); m_lastheight = height(); if (buffdoc.openfile(this,newfile) == 0) { m_lastfile = newfile; buffdoc.setwidth(m_lastwidth-2*m_border); bRC = true; buffdoc.setContinuous(m_continuousDocument); -// // qDebug("buffdoc.openfile done"); +// // odebug << "buffdoc.openfile done" << oendl; locate(lcn); -// // qDebug("buffdoc.locate done"); +// // odebug << "buffdoc.locate done" << oendl; } setfilter(getfilter()); update(); -// // qDebug("Updated"); +// // odebug << "Updated" << oendl; return bRC; } void QTReader::lineDown() { int ypos = 0; int offset = numlines; for (int i = 0; i <= numlines; i++) { if ((ypos += textarray[numlines-i]->lineSpacing()) > height()) { offset = i-1; break; } } offset = numlines - offset; #ifdef _WINDOWS for (i = offset; i <= numlines; i++) #else for (int i = offset; i <= numlines; i++) #endif { CDrawBuffer* buff = textarray[i-offset]; 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 @@ -1,293 +1,294 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. Allrights reserved. ** ** This file is part of Qt Palmtop Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ + #include "useqpe.h" -#include <qregexp.h> -#include <qclipboard.h> -#include <qwidgetstack.h> +#include "QTReader.h" +#include "GraphicWin.h" +#include "Bkmks.h" +#include "cbkmkselector.h" +#include "infowin.h" +#include "ToolbarPrefs.h" +#include "Prefs.h" +#include "CAnnoEdit.h" +#include "QFloatBar.h" +#include "FixedFont.h" +#include "URLDialog.h" +#include "QTReaderApp.h" +#include "CDrawBuffer.h" +#include "Filedata.h" +#include "opie.h" +#include "names.h" +#include "CEncoding_tables.h" +#include "CloseDialog.h" + +/* OPIE */ +#include <opie2/odebug.h> +#ifdef USEQPE +#include <qpe/menubutton.h> +#include <qpe/fontdatabase.h> +#include <qpe/global.h> +#include <qpe/applnk.h> +#include <qpe/config.h> +#include <qpe/qcopenvelope_qws.h> +#endif + +/* QT */ #ifdef USEQPE #include <qmenubar.h> #include <qtoolbar.h> #endif +#include <qregexp.h> +#include <qclipboard.h> +#include <qwidgetstack.h> #include <qmenubar.h> #include <qtoolbar.h> -#ifdef USEQPE -#include <qpe/menubutton.h> -#include <qpe/fontdatabase.h> -#endif #include <qcombobox.h> #include <qpopupmenu.h> #include <qaction.h> #include <qapplication.h> #include <qlineedit.h> #include <qtoolbutton.h> #include <qspinbox.h> #include <qobjectlist.h> -#ifdef USEQPE -#include <qpe/global.h> -#include <qpe/applnk.h> -#endif #include <qfileinfo.h> -#include <stdlib.h> //getenv #include <qprogressbar.h> -#ifdef USEQPE -#include <qpe/config.h> -#endif #include <qbuttongroup.h> #include <qradiobutton.h> -#ifdef USEQPE -#include <qpe/qcopenvelope_qws.h> -#endif -#include "QTReader.h" -#include "GraphicWin.h" -#include "Bkmks.h" -#include "cbkmkselector.h" -#include "infowin.h" -#include "ToolbarPrefs.h" -#include "Prefs.h" -#include "CAnnoEdit.h" -#include "QFloatBar.h" -#include "FixedFont.h" -#include "URLDialog.h" -//#include <qpe/fontdatabase.h> + +/* STD */ +#include <stdlib.h> //getenv + #ifdef USEQPE #include <qpe/resource.h> #include <qpe/qpeapplication.h> #include "fileBrowser.h" #else #include "qfiledialog.h" #endif -#include "QTReaderApp.h" -#include "CDrawBuffer.h" -#include "Filedata.h" -#include "opie.h" -#include "names.h" -#include "CEncoding_tables.h" -#include "CloseDialog.h" - bool CheckVersion(int&, int&, char&); #ifdef _WINDOWS #define PICDIR "c:\\uqtreader\\pics\\" #else #ifdef USEQPE #define PICDIR "opie-reader/" #else #define PICDIR "/home/tim/uqtreader/pics/" #endif #endif unsigned long QTReaderApp::m_uid = 0; void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); } #ifdef USEQPE #define geticon(iconname) Resource::loadPixmap( iconname ) #define getmyicon(iconname) Resource::loadPixmap( PICDIR iconname ) #else #define geticon(iconname) QPixmap(PICDIR iconname ".png") #define getmyicon(iconname) geticon(iconname) //#define geticon(iconname) QIconSet( QPixmap(PICDIR iconname) ) #endif #ifndef _WINDOWS #include <unistd.h> #endif #include <stddef.h> #ifndef _WINDOWS #include <dirent.h> #endif void QTReaderApp::listBkmkFiles() { bkmkselector->clear(); bkmkselector->setText("Cancel"); #ifndef USEQPE int cnt = 0; QDir d = QDir::home(); // "/" if ( !d.cd(APPDIR) ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); } d.setFilter( QDir::Files | QDir::NoSymLinks ); // d.setSorting( QDir::Size | QDir::Reversed ); const QFileInfoList *list = d.entryInfoList(); QFileInfoListIterator it( *list ); // create list iterator QFileInfo *fi; // pointer for traversing while ( (fi=it.current()) ) { // for each file... - bkmkselector->insertItem(fi->fileName()); - cnt++; + bkmkselector->insertItem(fi->fileName()); + cnt++; - //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); + //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl; ++it; // goto next list element } #else /* USEQPE */ int cnt = 0; DIR *d; d = opendir((const char *)Global::applicationFileName(APPDIR,"")); while(1) { - struct dirent* de; - struct stat buf; - de = readdir(d); - if (de == NULL) break; + struct dirent* de; + struct stat buf; + de = readdir(d); + if (de == NULL) break; - if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) - { - bkmkselector->insertItem(de->d_name); - cnt++; - } + if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) + { + bkmkselector->insertItem(de->d_name); + cnt++; + } } closedir(d); #endif if (cnt > 0) { //tjw menu->hide(); editorStack->raiseWidget( bkmkselector ); hidetoolbars(); - m_nBkmkAction = cRmBkmkFile; + m_nBkmkAction = cRmBkmkFile; } else QMessageBox::information(this, PROGNAME, "No bookmark files"); } void QTReaderApp::hidetoolbars() { menubar->hide(); if (fileBar != NULL) fileBar->hide(); if (viewBar != NULL) viewBar->hide(); if (navBar != NULL) navBar->hide(); if (markBar != NULL) markBar->hide(); if (m_fontVisible) m_fontBar->hide(); if (regVisible) { #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif - regBar->hide(); + regBar->hide(); } if (searchVisible) { #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif - searchBar->hide(); + searchBar->hide(); } } QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false), fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL) { - m_url_clipboard = false; - m_url_localfile = false; - m_url_globalfile = false; - ftime(&m_lastkeytime); -//// qDebug("Application directory = %s", (const tchar *)QPEApplication::documentDir()); -//// qDebug("Application directory = %s", (const tchar *)Global::applicationFileName("uqtreader","bkmks.xml")); + m_url_clipboard = false; + m_url_localfile = false; + m_url_globalfile = false; + ftime(&m_lastkeytime); +//// odebug << "Application directory = " << (const tchar *)QPEApplication::documentDir() << "" << oendl; +//// odebug << "Application directory = " << (const tchar *)Global::applicationFileName("uqtreader" << "" << oendl; m_bcloseDisabled = true; m_disableesckey = false; pBkmklist = NULL; pOpenlist = NULL; // doc = 0; - m_fBkmksChanged = false; - + m_fBkmksChanged = false; + QString lang = getenv( "LANG" ); QString rot = getenv( "QWS_DISPLAY" ); /* int m_rot = 0; if (rot.contains("Rot90")) { m_rot = 90; } else if (rot.contains("Rot180")) { m_rot = 180; } else if (rot.contains("Rot270")) { m_rot = 270; } -// qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot); +// odebug << "Initial Rotation(" << m_rot << "):" << rot << "" << oendl; */ m_autogenstr = "^ *[A-Z].*[a-z] *$"; #ifdef USEQPE setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); #else setIcon( QPixmap (PICDIR "uqtreader.png") ); #endif /* USEQPE */ // QToolBar *bar = new QToolBar( this ); // menubar = new QToolBar( this ); #ifdef USEQPE Config config( APPDIR ); #else QDir d = QDir::home(); // "/" if ( !d.cd(APPDIR) ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); } QFileInfo fi(d, INIFILE); -// qDebug("Path:%s", (const char*)fi.absFilePath()); +// odebug << "Path:" << fi.absFilePath() << "" << oendl; Config config(fi.absFilePath()); #endif config.setGroup("Toolbar"); m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); menubar = new QToolBar("Menus", this, m_tbposition); // fileBar = new QToolBar("File", this); // QToolBar* viewBar = new QToolBar("File", this); // QToolBar* navBar = new QToolBar("File", this); // QToolBar* markBar = new QToolBar("File", this); #ifdef USEQPE mb = new QMenuBar( menubar ); #else mb = new QMenuBar( menubar ); #endif //#ifdef USEQPE QPopupMenu* tmp = new QPopupMenu(mb); mb->insertItem( geticon( "AppsIcon" ), tmp ); //#else // QMenuBar* tmp = mb; @@ -334,61 +335,61 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) m_infoWin = new infowin(editorStack); editorStack->addWidget(m_infoWin, get_unique_id()); connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) ); m_graphicwin = new GraphicWin(editorStack); editorStack->addWidget(m_graphicwin, get_unique_id()); connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); // bkmkselector = new QListBox(editorStack, "Bookmarks"); bkmkselector = new CBkmkSelector(editorStack, "Bookmarks"); // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) ); connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) ); connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); editorStack->addWidget( bkmkselector, get_unique_id() ); /* importSelector = new FileSelector( "*", editorStack, "importselector", false ); connect( importSelector, SIGNAL( fileSelected(const DocLnk&) ), this, SLOT( importFile(const DocLnk&) ) ); editorStack->addWidget( importSelector, get_unique_id() ); // don't need the close visible, it is redundant... importSelector->setCloseVisible( FALSE ); -*/ -// qDebug("Reading file list"); +*/ +// odebug << "Reading file list" << oendl; readfilelist(); reader = new QTReader( editorStack ); reader->bDoUpdates = false; #ifdef USEQPE ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); #endif -// qDebug("Reading config"); +// odebug << "Reading config" << oendl; // Config config( APPDIR ); config.setGroup( "View" ); m_debounce = config.readNumEntry("Debounce", 0); #ifdef USEQPE m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); #else m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); #endif reader->bstripcr = config.readBoolEntry( "StripCr", true ); reader->bfulljust = config.readBoolEntry( "FullJust", false ); reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); reader->setlead(config.readNumEntry( "ExtraLead", 0 )); reader->btextfmt = config.readBoolEntry( "TextFmt", false ); reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); reader->bpeanut = config.readBoolEntry( "Peanut", false ); reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); reader->bdepluck = config.readBoolEntry( "Depluck", false ); reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); reader->bonespace = config.readBoolEntry( "OneSpace", false ); reader->bunindent = config.readBoolEntry( "Unindent", false ); reader->brepara = config.readBoolEntry( "Repara", false ); reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); reader->bindenter = config.readNumEntry( "Indent", 0 ); @@ -416,55 +417,55 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); #endif m_twoTouch = config.readBoolEntry( "TwoTouch", false); m_doAnnotation = config.readBoolEntry( "Annotation", false); m_doDictionary = config.readBoolEntry( "Dictionary", false); m_doClipboard = config.readBoolEntry( "Clipboard", false); m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); m_leftScroll = config.readBoolEntry("LeftScroll", false); m_rightScroll = config.readBoolEntry("RightScroll", false); m_upScroll = config.readBoolEntry("UpScroll", true); m_downScroll = config.readBoolEntry("DownScroll", true); m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); #ifndef USEQPE - config.setGroup( "Geometry" ); - setGeometry(0,0, - config.readNumEntry( "width", QApplication::desktop()->width()/2 ), - config.readNumEntry( "height", QApplication::desktop()->height()/2 )); - move( - config.readNumEntry( "x", 20 ), - config.readNumEntry( "y", 20 )); + config.setGroup( "Geometry" ); + setGeometry(0,0, + config.readNumEntry( "width", QApplication::desktop()->width()/2 ), + config.readNumEntry( "height", QApplication::desktop()->height()/2 )); + move( + config.readNumEntry( "x", 20 ), + config.readNumEntry( "y", 20 )); #endif setTwoTouch(m_twoTouch); connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) ); connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) ); connect( reader, SIGNAL( OnWordSelected(const QString&,size_t,const QString&) ), this, SLOT( OnWordSelected(const QString&,size_t,const QString&) ) ); connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) ); editorStack->addWidget( reader, get_unique_id() ); m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) ); m_preferences_action->addTo( settings ); m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL); connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) ); m_saveconfig_action->addTo( settings ); m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL); connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) ); m_loadconfig_action->addTo( settings ); @@ -525,49 +526,49 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) ); m_scrollButton->addTo(navigation); m_scrollButton->setOn(false); m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) ); m_start_action->addTo(navigation); m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) ); m_end_action->addTo(navigation); m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) ); m_jump_action->addTo(navigation); m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) ); m_pageline_action->addTo(navigation); m_pageline_action->setOn(reader->m_bpagemode); m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) ); m_pageup_action->addTo( navigation ); - + m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) ); m_pagedn_action->addTo( navigation ); m_back_action = new QAction( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 ); connect( m_back_action, SIGNAL( activated() ), reader, SLOT( goBack() ) ); m_back_action->addTo( navigation ); m_home_action = new QAction( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 ); connect( m_home_action, SIGNAL( activated() ), reader, SLOT( goHome() ) ); m_home_action->addTo( navigation ); m_forward_action = new QAction( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 ); connect( m_forward_action, SIGNAL( activated() ), reader, SLOT( goForward() ) ); m_forward_action->addTo( navigation ); /* a = new QAction( tr( "Find" ), QString::null, 0, this, NULL, true ); // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); a->addTo( file ); a = new QAction( tr( "Find Again" ), QString::null, 0, this, NULL, true ); // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); a->addTo( file ); @@ -706,1497 +707,1497 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) m_bkmkAvail = NULL; setToolBarsMovable(m_tbmove); addtoolbars(&config); pbar = new QProgressBar(this); pbar->hide(); searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); searchBar->setHorizontalStretchable( TRUE ); connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); searchEdit = new QLineEdit( searchBar, "searchEdit" ); // QFont f("unifont", 16 /*, QFont::Bold*/); // searchEdit->setFont( f ); searchBar->setStretchableWidget( searchEdit ); #ifdef __ISEARCH connect( searchEdit, SIGNAL( textChanged(const QString&) ), - this, SLOT( search(const QString&) ) ); + this, SLOT( search(const QString&) ) ); #else connect( searchEdit, SIGNAL( returnPressed() ), - this, SLOT( search() ) ); + this, SLOT( search() ) ); #endif QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); a->addTo( searchBar ); a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); a->addTo( searchBar ); searchBar->hide(); regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE ); connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); regBar->setHorizontalStretchable( TRUE ); regEdit = new QLineEdit( regBar, "regEdit" ); // regEdit->setFont( f ); regBar->setStretchableWidget( regEdit ); connect( regEdit, SIGNAL( returnPressed() ), - this, SLOT( do_regaction() ) ); + this, SLOT( do_regaction() ) ); a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) ); a->addTo( regBar ); a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); a->addTo( regBar ); regBar->hide(); m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); m_fontBar->setHorizontalStretchable( TRUE ); -// qDebug("Font selector"); +// odebug << "Font selector" << oendl; m_fontSelector = new QComboBox(false, m_fontBar); m_fontBar->setStretchableWidget( m_fontSelector ); { #ifndef USEQPE - QFontDatabase f; + QFontDatabase f; #else - FontDatabase f; + FontDatabase f; #endif - QStringList flist = f.families(); - bool realfont = false; - for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) - { - if (reader->m_fontname == *nm) - { - realfont = true; - } - if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); - } - if (!realfont) reader->m_fontname = flist[0]; + QStringList flist = f.families(); + bool realfont = false; + for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) + { + if (reader->m_fontname == *nm) + { + realfont = true; + } + if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); + } + if (!realfont) reader->m_fontname = flist[0]; } // delete the FontDatabase!!! connect( m_fontSelector, SIGNAL( activated(const QString&) ), - this, SLOT( do_setfont(const QString&) ) ); + this, SLOT( do_setfont(const QString&) ) ); connect( m_fontSelector, SIGNAL( activated(int) ), - this, SLOT( do_setencoding(int) ) ); + this, SLOT( do_setencoding(int) ) ); m_fontBar->hide(); m_fontVisible = false; #ifdef USEMSGS connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), - this, SLOT( msgHandler(const QCString&,const QByteArray&) ) ); + this, SLOT( msgHandler(const QCString&,const QByteArray&) ) ); #endif -// qDebug("Initing"); +// odebug << "Initing" << oendl; reader->init(); -// qDebug("Inited"); +// odebug << "Inited" << oendl; // m_buttonAction[m_spaceTarget]->setOn(true); -// qDebug("fonting"); +// odebug << "fonting" << oendl; do_setfont(reader->m_fontname); if (!reader->m_lastfile.isEmpty()) { -// qDebug("doclnk"); -// doc = new DocLnk(reader->m_lastfile); -// qDebug("doclnk done"); - if (pOpenlist != NULL) - { +// odebug << "doclnk" << oendl; +// doc = new DocLnk(reader->m_lastfile); +// odebug << "doclnk done" << oendl; + if (pOpenlist != NULL) + { /* - int ind = 0; - Bkmk* p = (*pOpenlist)[ind]; - while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) - { - p = (*pOpenlist)[++ind]; - } + int ind = 0; + Bkmk* p = (*pOpenlist)[ind]; + while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) + { + p = (*pOpenlist)[++ind]; + } */ - Bkmk* p = NULL; - for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) - { - p = iter.pContent(); - if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) - { - break; - } -// qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name())); - p = NULL; - } - if (p != NULL) - { -// qDebug("openfrombkmk"); - if (!openfrombkmk(p)) - showEditTools(); - } - else - { -// qDebug("openfile"); - openFile( reader->m_lastfile ); - } - } - else - { -// qDebug("Openfile 2"); - if (!reader->m_lastfile.isEmpty()) - openFile( reader->m_lastfile ); - } + Bkmk* p = NULL; + for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) + { + p = iter.pContent(); + if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) + { + break; + } +// odebug << "Item:" << toQString(CFiledata(p->anno()).name()) << "" << oendl; + p = NULL; + } + if (p != NULL) + { +// odebug << "openfrombkmk" << oendl; + if (!openfrombkmk(p)) + showEditTools(); + } + else + { +// odebug << "openfile" << oendl; + openFile( reader->m_lastfile ); + } + } + else + { +// odebug << "Openfile 2" << oendl; + if (!reader->m_lastfile.isEmpty()) + openFile( reader->m_lastfile ); + } } else { showEditTools(); } // qApp->processEvents(); reader->bDoUpdates = true; reader->update(); config.setGroup("Version"); int major = config.readNumEntry("Major", 0); int bkmktype = config.readNumEntry("BkmkType", 0); char minor = config.readNumEntry("Minor", 0); if (CheckVersion(major, bkmktype, minor)) { - config.writeEntry("Major", major); - config.writeEntry("BkmkType", bkmktype); - config.writeEntry("Minor", (int)minor); + config.writeEntry("Major", major); + config.writeEntry("BkmkType", bkmktype); + config.writeEntry("Minor", (int)minor); } -// qDebug("finished update"); +// odebug << "finished update" << oendl; } void QTReaderApp::addtoolbars(Config* config) { config->setGroup("Toolbar"); if (fileBar != NULL) { - if (fileBar != menubar) - { - fileBar->clear(); - } - else - { - m_preferences_action->removeFrom( filebar() ); - m_open_action->removeFrom( filebar() ); - m_close_action->removeFrom( filebar() ); - m_info_action->removeFrom( filebar() ); - m_touch_action->removeFrom( filebar() ); - m_find_action->removeFrom( filebar() ); - } + if (fileBar != menubar) + { + fileBar->clear(); + } + else + { + m_preferences_action->removeFrom( filebar() ); + m_open_action->removeFrom( filebar() ); + m_close_action->removeFrom( filebar() ); + m_info_action->removeFrom( filebar() ); + m_touch_action->removeFrom( filebar() ); + m_find_action->removeFrom( filebar() ); + } } m_preferences_action->addTo( filebar() ); addfilebar(config, "Open", m_open_action); addfilebar(config, "Close", m_close_action); addfilebar(config, "Info", m_info_action); addfilebar(config, "Two/One Touch", m_touch_action); addfilebar(config, "Find", m_find_action); if (navBar != NULL) { - if ((navBar == fileBar) && (fileBar == menubar)) - { - m_scrollButton->removeFrom( navbar() ); - m_start_action->removeFrom( navbar() ); - m_end_action->removeFrom( navbar() ); - m_jump_action->removeFrom( navbar() ); - m_pageline_action->removeFrom( navbar() ); - m_pageup_action->removeFrom( navbar() ); - m_pagedn_action->removeFrom( navbar() ); - m_back_action->removeFrom( navbar() ); - m_home_action->removeFrom( navbar() ); - m_forward_action->removeFrom( navbar() ); - } - else if (navBar != fileBar) - { - navBar->clear(); - } + if ((navBar == fileBar) && (fileBar == menubar)) + { + m_scrollButton->removeFrom( navbar() ); + m_start_action->removeFrom( navbar() ); + m_end_action->removeFrom( navbar() ); + m_jump_action->removeFrom( navbar() ); + m_pageline_action->removeFrom( navbar() ); + m_pageup_action->removeFrom( navbar() ); + m_pagedn_action->removeFrom( navbar() ); + m_back_action->removeFrom( navbar() ); + m_home_action->removeFrom( navbar() ); + m_forward_action->removeFrom( navbar() ); + } + else if (navBar != fileBar) + { + navBar->clear(); + } } addnavbar(config, "Scroll", m_scrollButton); addnavbar(config, "Goto Start", m_start_action); addnavbar(config, "Goto End", m_end_action); addnavbar(config, "Jump", m_jump_action); addnavbar(config, "Page/Line Scroll", m_pageline_action); addnavbar(config, "Page Up", m_pageup_action); addnavbar(config, "Page Down", m_pagedn_action); addnavbar(config, "Back", m_back_action); addnavbar(config, "Home", m_home_action); addnavbar(config, "Forward", m_forward_action); if (viewBar != NULL) { - if ((viewBar == fileBar) && (fileBar == menubar)) - { - m_actFullscreen->removeFrom( filebar() ); - m_zoomin_action->removeFrom( viewbar() ); - m_zoomout_action->removeFrom( viewbar() ); - m_setfont_action->removeFrom( viewbar() ); - m_setenc_action->removeFrom( viewbar() ); - m_setmono_action->removeFrom( viewbar() ); - } - else if (viewBar != fileBar) - { - viewBar->clear(); - } + if ((viewBar == fileBar) && (fileBar == menubar)) + { + m_actFullscreen->removeFrom( filebar() ); + m_zoomin_action->removeFrom( viewbar() ); + m_zoomout_action->removeFrom( viewbar() ); + m_setfont_action->removeFrom( viewbar() ); + m_setenc_action->removeFrom( viewbar() ); + m_setmono_action->removeFrom( viewbar() ); + } + else if (viewBar != fileBar) + { + viewBar->clear(); + } } addviewbar(config, "Fullscreen", m_actFullscreen); addviewbar(config, "Zoom In", m_zoomin_action); addviewbar(config, "Zoom Out", m_zoomout_action); addviewbar(config, "Set Font", m_setfont_action); addviewbar(config, "Encoding Select", m_setenc_action); addviewbar(config, "Ideogram Mode", m_setmono_action); if (markBar != NULL) { - if ((markBar == fileBar) && (fileBar == menubar)) - { - m_mark_action->removeFrom( markbar() ); - m_annotate_action->removeFrom( markbar()); - m_goto_action->removeFrom( markbar() ); - m_delete_action->removeFrom( markbar() ); - m_autogen_action->removeFrom( markbar() ); - m_clear_action->removeFrom( markbar() ); - m_save_action->removeFrom( markbar() ); - m_tidy_action->removeFrom( markbar() ); - m_startBlock_action->removeFrom( markbar() ); - m_endBlock_action->removeFrom( markbar() ); - } - else if (markBar != fileBar) - { - markBar->clear(); - } + if ((markBar == fileBar) && (fileBar == menubar)) + { + m_mark_action->removeFrom( markbar() ); + m_annotate_action->removeFrom( markbar()); + m_goto_action->removeFrom( markbar() ); + m_delete_action->removeFrom( markbar() ); + m_autogen_action->removeFrom( markbar() ); + m_clear_action->removeFrom( markbar() ); + m_save_action->removeFrom( markbar() ); + m_tidy_action->removeFrom( markbar() ); + m_startBlock_action->removeFrom( markbar() ); + m_endBlock_action->removeFrom( markbar() ); + } + else if (markBar != fileBar) + { + markBar->clear(); + } } addmarkbar(config, "Mark", m_mark_action); addmarkbar(config, "Annotate", m_annotate_action); addmarkbar(config, "Goto", m_goto_action); addmarkbar(config, "Delete", m_delete_action); addmarkbar(config, "Autogen", m_autogen_action); addmarkbar(config, "Clear", m_clear_action); addmarkbar(config, "Save", m_save_action); addmarkbar(config, "Tidy", m_tidy_action); addmarkbar(config, "Start Block", m_startBlock_action); addmarkbar(config, "Copy Block", m_endBlock_action); if (checkbar(config, "Annotation indicator")) { - if (m_bkmkAvail == NULL) - { - m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 ); - connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) ); - - m_bkmkAvail->setEnabled(false); - } - QLabel *spacer = new QLabel(markBar, ""); - markbar()->setStretchableWidget(spacer); - m_bkmkAvail->removeFrom( markbar() ); - m_bkmkAvail->addTo( markbar() ); + if (m_bkmkAvail == NULL) + { + m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 ); + connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) ); + + m_bkmkAvail->setEnabled(false); + } + QLabel *spacer = new QLabel(markBar, ""); + markbar()->setStretchableWidget(spacer); + m_bkmkAvail->removeFrom( markbar() ); + m_bkmkAvail->addTo( markbar() ); } else { - if (m_bkmkAvail != NULL) - { - m_bkmkAvail->removeFrom( markbar() ); - delete m_bkmkAvail; - m_bkmkAvail = NULL; - } + if (m_bkmkAvail != NULL) + { + m_bkmkAvail->removeFrom( markbar() ); + delete m_bkmkAvail; + m_bkmkAvail = NULL; + } } } bool QTReaderApp::checkbar(Config* _config, const QString& key) { return _config->readBoolEntry(key, false); } QToolBar* QTReaderApp::filebar() { if (fileBar == NULL) { - switch (m_tbpol) - { - case cesSingle: -// qDebug("Setting filebar to menubar"); - fileBar = menubar; - break; - default: - qDebug("Incorrect toolbar policy set"); - case cesMenuTool: - case cesMultiple: -// qDebug("Creating new file bar"); - fileBar = new QToolBar("File", this, m_tbposition); - break; - } -// fileBar->setHorizontalStretchable( true ); + switch (m_tbpol) + { + case cesSingle: +// odebug << "Setting filebar to menubar" << oendl; + fileBar = menubar; + break; + default: + odebug << "Incorrect toolbar policy set" << oendl; + case cesMenuTool: + case cesMultiple: +// odebug << "Creating new file bar" << oendl; + fileBar = new QToolBar("File", this, m_tbposition); + break; + } +// fileBar->setHorizontalStretchable( true ); } return fileBar; } QToolBar* QTReaderApp::viewbar() { if (viewBar == NULL) { - switch (m_tbpol) - { - case cesMultiple: - viewBar = new QToolBar("View", this, m_tbposition); - break; - default: - qDebug("Incorrect toolbar policy set"); - case cesSingle: - case cesMenuTool: - viewBar = fileBar; - break; - } + switch (m_tbpol) + { + case cesMultiple: + viewBar = new QToolBar("View", this, m_tbposition); + break; + default: + odebug << "Incorrect toolbar policy set" << oendl; + case cesSingle: + case cesMenuTool: + viewBar = fileBar; + break; + } } return viewBar; } QToolBar* QTReaderApp::navbar() { if (navBar == NULL) { - switch (m_tbpol) - { - case cesMultiple: -// qDebug("Creating new nav bar"); - navBar = new QToolBar("Navigation", this, m_tbposition); - break; - default: - qDebug("Incorrect toolbar policy set"); - case cesSingle: - case cesMenuTool: - navBar = fileBar; -// qDebug("Setting navbar to filebar"); - break; - } + switch (m_tbpol) + { + case cesMultiple: +// odebug << "Creating new nav bar" << oendl; + navBar = new QToolBar("Navigation", this, m_tbposition); + break; + default: + odebug << "Incorrect toolbar policy set" << oendl; + case cesSingle: + case cesMenuTool: + navBar = fileBar; +// odebug << "Setting navbar to filebar" << oendl; + break; + } } return navBar; } QToolBar* QTReaderApp::markbar() { if (markBar == NULL) { - switch (m_tbpol) - { - case cesMultiple: - markBar = new QToolBar("Marks", this, m_tbposition); - break; - default: - qDebug("Incorrect toolbar policy set"); - case cesSingle: - case cesMenuTool: - markBar = fileBar; - break; - } + switch (m_tbpol) + { + case cesMultiple: + markBar = new QToolBar("Marks", this, m_tbposition); + break; + default: + odebug << "Incorrect toolbar policy set" << oendl; + case cesSingle: + case cesMenuTool: + markBar = fileBar; + break; + } } return markBar; } void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a) { if (_config->readBoolEntry(key, false)) a->addTo( filebar() ); } void QTReaderApp::addnavbar(Config* _config, const QString& key, QAction* a) { if (_config->readBoolEntry(key, false)) a->addTo( navbar() ); } void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a) { if (_config->readBoolEntry(key, false)) a->addTo( markbar() ); } void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a) { if (_config->readBoolEntry(key, false)) a->addTo( viewbar() ); } void QTReaderApp::suspend() { reader->suspend(); } #ifdef USEMSGS void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) { QString msg = QString::fromUtf8(_msg); -//// qDebug("Received:%s", (const char*)msg); +//// odebug << "Received:" << msg << "" << oendl; QDataStream stream( _data, IO_ReadOnly ); if ( msg == "info(QString)" ) { - QString info; - stream >> info; - QMessageBox::information(this, PROGNAME, info); + QString info; + stream >> info; + QMessageBox::information(this, PROGNAME, info); } else if ( msg == "Update(int)" ) { - int info; - stream >> info; - if (info) - { - reader->bDoUpdates = true; - reader->refresh(); - } - else - { - reader->bDoUpdates = false; - } + int info; + stream >> info; + if (info) + { + reader->bDoUpdates = true; + reader->refresh(); + } + else + { + reader->bDoUpdates = false; + } } else if ( msg == "warn(QString)" ) { - QString info; - stream >> info; - QMessageBox::warning(this, PROGNAME, info); + QString info; + stream >> info; + QMessageBox::warning(this, PROGNAME, info); } else if ( msg == "exit()" ) { - m_dontSave = true; - close(); + m_dontSave = true; + close(); } else if ( msg == "pageDown()" ) { - reader->dopagedn(); + reader->dopagedn(); } else if ( msg == "pageUp()" ) { - reader->dopageup(); + reader->dopageup(); } else if ( msg == "lineDown()" ) { - reader->lineDown(); + reader->lineDown(); } else if ( msg == "lineUp()" ) { - reader->lineUp(); + reader->lineUp(); } else if ( msg == "showText()" ) { - showEditTools(); + showEditTools(); } else if ( msg == "home()" ) { - reader->goHome(); + reader->goHome(); } else if ( msg == "back()" ) { - reader->goBack(); + reader->goBack(); } else if ( msg == "forward()" ) { - reader->goForward(); + reader->goForward(); } else if ( msg == "File/Open(QString)" ) { - QString info; - stream >> info; - openFile( info ); + QString info; + stream >> info; + openFile( info ); } else if ( msg == "File/Info()" ) { - showinfo(); + showinfo(); } else if ( msg == "File/Action(QString)" ) { - QString info; - stream >> info; - m_spaceTarget = ActNameToInt(info); + QString info; + stream >> info; + m_spaceTarget = ActNameToInt(info); } else if ( msg == "Navigation/Scroll(int)" ) { - int info; - stream >> info; - autoScroll(info); + int info; + stream >> info; + autoScroll(info); } else if ( msg == "Navigation/GotoStart()" ) { - gotoStart(); + gotoStart(); } else if ( msg == "Navigation/GotoEnd()" ) { - gotoEnd(); + gotoEnd(); } else if ( msg == "Navigation/Jump(int)" ) { - int info; - stream >> info; - reader->locate(info); + int info; + stream >> info; + reader->locate(info); } else if ( msg == "Navigation/Page/LineScroll(int)" ) { - int info; - stream >> info; - pagemode(info); + int info; + stream >> info; + pagemode(info); } else if ( msg == "Navigation/SetOverlap(int)" ) { - int info; - stream >> info; - reader->m_overlap = info; + int info; + stream >> info; + reader->m_overlap = info; } else if ( msg == "Navigation/SetMargin(int)" ) { - int info; - stream >> info; - do_margin(info); + int info; + stream >> info; + do_margin(info); } else if ( msg == "File/SetDictionary(QString)" ) { - QString info; - stream >> info; - do_settarget(info); + QString info; + stream >> info; + do_settarget(info); } #ifdef _SCROLLPIPE else if ( msg == "File/SetScrollTarget(QString)" ) { - QString info; - stream >> info; - reader->m_pipetarget = info; + QString info; + stream >> info; + reader->m_pipetarget = info; } #endif else if ( msg == "File/Two/OneTouch(int)" ) { - int info; - stream >> info; - setTwoTouch(info); + int info; + stream >> info; + setTwoTouch(info); } else if ( msg == "Target/Annotation(int)" ) { - int info; - stream >> info; - OnAnnotation(info); + int info; + stream >> info; + OnAnnotation(info); } else if ( msg == "Target/Dictionary(int)" ) { - int info; - stream >> info; - OnDictionary(info); + int info; + stream >> info; + OnDictionary(info); } else if ( msg == "Target/Clipboard(int)" ) { - int info; - stream >> info; - OnClipboard(info); + int info; + stream >> info; + OnClipboard(info); } else if ( msg == "File/Find(QString)" ) { - QString info; - stream >> info; - QRegExp arg(info); - size_t pos = reader->pagelocate(); - size_t start = pos; - CDrawBuffer test(&(reader->m_fontControl)); - reader->getline(&test); - while (arg.match(toQString(test.data())) == -1) - { - pos = reader->locate(); - if (!reader->getline(&test)) - { - QMessageBox::information(this, PROGNAME, QString("Can't find\n")+info); - pos = start; - break; - } - } - reader->locate(pos); + QString info; + stream >> info; + QRegExp arg(info); + size_t pos = reader->pagelocate(); + size_t start = pos; + CDrawBuffer test(&(reader->m_fontControl)); + reader->getline(&test); + while (arg.match(toQString(test.data())) == -1) + { + pos = reader->locate(); + if (!reader->getline(&test)) + { + QMessageBox::information(this, PROGNAME, QString("Can't find\n")+info); + pos = start; + break; + } + } + reader->locate(pos); } else if ( msg == "File/Fullscreen(int)" ) { - int info; - stream >> info; - setfullscreen(info); + int info; + stream >> info; + setfullscreen(info); } else if ( msg == "File/Continuous(int)" ) { - int info; - stream >> info; - setcontinuous(info); + int info; + stream >> info; + setcontinuous(info); } else if ( msg == "Markup(QString)" ) { - QString info; - stream >> info; - if (info == "Auto") - { - autofmt(true); - } - if (info == "None") - { - autofmt(false); - textfmt(false); - striphtml(false); - peanut(false); - } - if (info == "Text") - { - textfmt(true); - } - if (info == "HTML") - { - striphtml(true); - } - if (info == "Peanut/PML") - { - peanut(true); - } + QString info; + stream >> info; + if (info == "Auto") + { + autofmt(true); + } + if (info == "None") + { + autofmt(false); + textfmt(false); + striphtml(false); + peanut(false); + } + if (info == "Text") + { + textfmt(true); + } + if (info == "HTML") + { + striphtml(true); + } + if (info == "Peanut/PML") + { + peanut(true); + } } else if ( msg == "Layout/StripCR(int)" ) { - int info; - stream >> info; - stripcr(info); + int info; + stream >> info; + stripcr(info); } else if ( msg == "Layout/Dehyphen(int)" ) { - int info; - stream >> info; - dehyphen(info); + int info; + stream >> info; + dehyphen(info); } else if ( msg == "Layout/Depluck(int)" ) { - int info; - stream >> info; - depluck(info); + int info; + stream >> info; + depluck(info); } else if ( msg == "Layout/Dejpluck(int)" ) { - int info; - stream >> info; - dejpluck(info); + int info; + stream >> info; + dejpluck(info); } else if ( msg == "Layout/SingleSpace(int)" ) { - int info; - stream >> info; - onespace(info); + int info; + stream >> info; + onespace(info); } #ifdef REPALM else if ( msg == "Layout/Repalm(int)" ) { - int info; - stream >> info; - repalm(info); + int info; + stream >> info; + repalm(info); } #endif else if ( msg == "Layout/Unindent(int)" ) { - int info; - stream >> info; - unindent(info); + int info; + stream >> info; + unindent(info); } else if ( msg == "Layout/Re-paragraph(int)" ) { - int info; - stream >> info; - repara(info); + int info; + stream >> info; + repara(info); } else if ( msg == "Layout/DoubleSpace(int)" ) { - int info; - stream >> info; - dblspce(info); + int info; + stream >> info; + dblspce(info); } else if ( msg == "Layout/Indent(int)" ) { - int info; - stream >> info; - reader->bindenter = info; - reader->setfilter(reader->getfilter()); + int info; + stream >> info; + reader->bindenter = info; + reader->setfilter(reader->getfilter()); } else if ( msg == "Layout/Remap(int)" ) { - int info; - stream >> info; - remap(info); + int info; + stream >> info; + remap(info); } else if ( msg == "Layout/Embolden(int)" ) { - int info; - stream >> info; - embolden(info); + int info; + stream >> info; + embolden(info); } else if ( msg == "Format/Ideogram/Word(int)" ) { - int info; - stream >> info; - monospace(info); + int info; + stream >> info; + monospace(info); } else if ( msg == "Format/SetWidth(int)" ) { - int info; - stream >> info; - reader->m_charpc = info; - reader->setfont(); - reader->refresh(); + int info; + stream >> info; + reader->m_charpc = info; + reader->setfont(); + reader->refresh(); } else if ( msg == "Format/SetFont(QString,int)" ) { - QString fontname; - int size; - stream >> fontname; - stream >> size; - setfontHelper(fontname, size); + QString fontname; + int size; + stream >> fontname; + stream >> size; + setfontHelper(fontname, size); } else if ( msg == "Marks/Autogen(QString)" ) { - QString info; - stream >> info; - do_autogen(info); + QString info; + stream >> info; + do_autogen(info); } else if ( msg == "File/StartBlock()" ) { - editMark(); + editMark(); } else if ( msg == "File/CopyBlock()" ) { - editCopy(); + editCopy(); } } #endif ActionTypes QTReaderApp::ActNameToInt(const QString& _enc) { for (int i = 0; i < MAX_ACTIONS; i++) { - if (m_buttonAction[i]->text() == _enc) return (ActionTypes)i; + if (m_buttonAction[i]->text() == _enc) return (ActionTypes)i; } return cesAutoScroll; } void QTReaderApp::setfullscreen(bool sfs) { reader->bDoUpdates = false; m_fullscreen = sfs; showEditTools(); // qApp->processEvents(); reader->bDoUpdates = true; reader->update(); } void QTReaderApp::buttonActionSelected(QAction* _a) { -//// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text())); +//// odebug << "es:" << _a << " : " << (const char *)(_a->text()) << " (" << ActNameToInt(_a->text()) << ")" << oendl; m_spaceTarget = ActNameToInt(_a->text()); } QTReaderApp::~QTReaderApp() { } void QTReaderApp::autoScroll(bool _b) { reader->setautoscroll(_b); setScrollState(reader->m_autoScroll); } void QTReaderApp::zoomin() { reader->zoomin(); } void QTReaderApp::zoomout() { reader->zoomout(); } void QTReaderApp::clearBkmkList() { - delete pBkmklist; - pBkmklist = NULL; - m_fBkmksChanged = false; + delete pBkmklist; + pBkmklist = NULL; + m_fBkmksChanged = false; } void QTReaderApp::fileClose() { CCloseDialog* cd = new CCloseDialog(reader->m_string, false, this); if (cd->exec()) { - if (pOpenlist != NULL) - { - int ind = 0; - Bkmk* p = (*pOpenlist)[ind]; - while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) - { - p = (*pOpenlist)[++ind]; - } - if (p != NULL) pOpenlist->erase(ind); - if (cd->delFile()) - { - unlink((const char*)reader->m_lastfile); - } - if (cd->delMarks()) - { + if (pOpenlist != NULL) + { + int ind = 0; + Bkmk* p = (*pOpenlist)[ind]; + while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) + { + p = (*pOpenlist)[++ind]; + } + if (p != NULL) pOpenlist->erase(ind); + if (cd->delFile()) + { + unlink((const char*)reader->m_lastfile); + } + if (cd->delMarks()) + { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - d.remove(reader->m_string); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + d.remove(reader->m_string); #else /* USEQPE */ - unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); + unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); #endif /* USEQPE */ - } - if (cd->delConfig()) - { + } + if (cd->delConfig()) + { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR "/configs"); - d.remove(reader->m_string); + QDir d = QDir::home(); // "/" + d.cd(APPDIR "/configs"); + d.remove(reader->m_string); #else /* USEQPE */ - unlink((const char *)Global::applicationFileName(APPDIR "/configs",reader->m_string)); + unlink((const char *)Global::applicationFileName(APPDIR "/configs",reader->m_string)); #endif /* USEQPE */ - } - } - - fileOpen2(); + } + } + + fileOpen2(); } delete cd; } void QTReaderApp::updatefileinfo() { if (reader->m_string.isEmpty()) return; if (reader->m_lastfile.isEmpty()) return; tchar* nm = fromQString(reader->m_string); tchar* fl = fromQString(reader->m_lastfile); -// qDebug("Lastfile:%x", fl); +// odebug << "Lastfile:" << fl << "" << oendl; bool notadded = true; if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>; else { - for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) - { - if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0) - { - iter->value(reader->pagelocate()); - unsigned short dlen; - unsigned char* data; - CFiledata fd(iter->anno()); - reader->setSaveData(data, dlen, fd.content(), fd.length()); -// qDebug("Filedata(1):%u, %u", fd.length(), dlen); -// getstate(data, dlen); - iter->setAnno(data, dlen); - notadded = false; - delete [] data; - break; - } - } - } -// qDebug("Added?:%x", notadded); + for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) + { + if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0) + { + iter->value(reader->pagelocate()); + unsigned short dlen; + unsigned char* data; + CFiledata fd(iter->anno()); + reader->setSaveData(data, dlen, fd.content(), fd.length()); +// odebug << "Filedata(1):" << fd.length() << ", " << dlen << "" << oendl; +// getstate(data, dlen); + iter->setAnno(data, dlen); + notadded = false; + delete [] data; + break; + } + } + } +// odebug << "Added?:" << notadded << "" << oendl; if (notadded) { - struct stat fnstat; - stat((const char *)reader->m_lastfile, &fnstat); - CFiledata fd(fnstat.st_mtime, fl); - unsigned short dlen; - unsigned char* data; - reader->setSaveData(data, dlen, fd.content(), fd.length()); - pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate())); -// qDebug("Filedata(2):%u, %u", fd.length(), dlen); - delete [] data; + struct stat fnstat; + stat((const char *)reader->m_lastfile, &fnstat); + CFiledata fd(fnstat.st_mtime, fl); + unsigned short dlen; + unsigned char* data; + reader->setSaveData(data, dlen, fd.content(), fd.length()); + pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate())); +// odebug << "Filedata(2):" << fd.length() << ", " << dlen << "" << oendl; + delete [] data; } delete [] nm; delete [] fl; } void QTReaderApp::fileOpen() { /* menu->hide(); fileBar->hide(); if (regVisible) regBar->hide(); if (searchVisible) searchBar->hide(); */ -// qDebug("fileOpen"); +// odebug << "fileOpen" << oendl; // if (!reader->m_lastfile.isEmpty()) updatefileinfo(); fileOpen2(); } void QTReaderApp::fileOpen2() { if (pBkmklist != NULL) { - if (m_fBkmksChanged) - { - if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) - savebkmks(); - } - delete pBkmklist; - pBkmklist = NULL; - m_fBkmksChanged = false; + if (m_fBkmksChanged) + { + if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) + savebkmks(); + } + delete pBkmklist; + pBkmklist = NULL; + m_fBkmksChanged = false; } reader->disableAutoscroll(); /* editorStack->raiseWidget( fileSelector ); fileSelector->reread(); */ bool usebrowser = true; if (pOpenlist != NULL) { - m_nBkmkAction = cOpenFile; - if (listbkmk(pOpenlist, "Browse")) usebrowser = false; + m_nBkmkAction = cOpenFile; + if (listbkmk(pOpenlist, "Browse")) usebrowser = false; } if (usebrowser) { - QString fn = usefilebrowser(); -// qApp->processEvents(); - if (!fn.isEmpty() && QFileInfo(fn).isFile()) - { - openFile(fn); - } - reader->setFocus(); + QString fn = usefilebrowser(); +// qApp->processEvents(); + if (!fn.isEmpty() && QFileInfo(fn).isFile()) + { + openFile(fn); + } + reader->setFocus(); } // reader->refresh(); -// qDebug("HEIGHT:%d", reader->m_lastheight); +// odebug << "HEIGHT:" << reader->m_lastheight << "" << oendl; } QString QTReaderApp::usefilebrowser() { #ifndef USEQPE QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); return s; #else fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, - 0, -// WStyle_Customize | WStyle_NoBorderEx, - "*", QFileInfo(reader->m_lastfile).dirPath(true)); + 0, +// WStyle_Customize | WStyle_NoBorderEx, + "*", QFileInfo(reader->m_lastfile).dirPath(true)); QString fn; if (fb->exec()) { - fn = fb->getCurrentFile(); + fn = fb->getCurrentFile(); } -// qDebug("Selected %s", (const char*)fn); +// odebug << "Selected " << fn << "" << oendl; delete fb; showEditTools(); return fn; #endif } void QTReaderApp::showgraphic(QImage& pm) { QPixmap pc; pc.convertFromImage(pm); m_graphicwin->setPixmap(pc); editorStack->raiseWidget( m_graphicwin ); m_graphicwin->setFocus(); } void QTReaderApp::showprefs() { CPrefs* prefwin = new CPrefs(!m_bFloatingDialog, this); - prefwin->twotouch(m_twoTouch); + prefwin->twotouch(m_twoTouch); prefwin->propfontchange(m_propogatefontchange); prefwin->StripCR(reader->bstripcr); prefwin->Dehyphen(reader->bdehyphen); prefwin->SingleSpace(reader->bonespace); prefwin->Unindent(reader->bunindent); prefwin->Reparagraph(reader->brepara); prefwin->DoubleSpace(reader->bdblspce); prefwin->Remap(reader->bremap); prefwin->Embolden(reader->bmakebold); prefwin->FullJustify(reader->bfulljust); prefwin->ParaLead(reader->getextraspace()); prefwin->LineLead(reader->getlead()); prefwin->Margin(reader->m_border); prefwin->Indent(reader->bindenter); if (reader->bautofmt) { - prefwin->Markup(0); + prefwin->Markup(0); } else if (reader->btextfmt) { - prefwin->Markup(2); + prefwin->Markup(2); } else if (reader->bstriphtml) { - prefwin->Markup(3); + prefwin->Markup(3); } else if (reader->bpeanut) { - prefwin->Markup(4); + prefwin->Markup(4); } else { - prefwin->Markup(1); + prefwin->Markup(1); } prefwin->Depluck(reader->bdepluck); prefwin->Dejpluck(reader->bdejpluck); prefwin->Continuous(reader->m_continuousDocument); prefwin->dictApplication(m_targetapp); prefwin->dictMessage(m_targetmsg); prefwin->spaceAction(m_spaceTarget); prefwin->escapeAction(m_escapeTarget); prefwin->returnAction(m_returnTarget); prefwin->leftAction(m_leftTarget); prefwin->rightAction(m_rightTarget); prefwin->upAction(m_upTarget); prefwin->downAction(m_downTarget); prefwin->leftScroll(m_leftScroll); prefwin->rightScroll(m_rightScroll); prefwin->upScroll(m_upScroll); prefwin->downScroll(m_downScroll); prefwin->miscannotation(m_doAnnotation); prefwin->miscdictionary(m_doDictionary); prefwin->miscclipboard(m_doClipboard); prefwin->SwapMouse(reader->m_swapmouse); prefwin->Font(reader->m_fontname); prefwin->gfxsize(reader->getBaseSize()); prefwin->pageoverlap(reader->m_overlap); prefwin->ideogram(reader->m_bMonoSpaced); prefwin->encoding(reader->m_encd); prefwin->ideogramwidth(reader->m_charpc); if (prefwin->exec()) { - m_twoTouch = prefwin->twotouch(); - reader->setTwoTouch(m_twoTouch); - m_touch_action->setOn(m_twoTouch); - - reader->bstripcr = prefwin->StripCR(); - reader->bdehyphen = prefwin->Dehyphen(); - reader->bonespace = prefwin->SingleSpace(); - reader->bunindent = prefwin->Unindent(); - reader->brepara = prefwin->Reparagraph(); - reader->bdblspce = prefwin->DoubleSpace(); - reader->bremap = prefwin->Remap(); - reader->bmakebold = prefwin->Embolden(); - reader->bfulljust = prefwin->FullJustify(); - reader->setextraspace(prefwin->ParaLead()); - reader->setlead(prefwin->LineLead()); - reader->m_border = prefwin->Margin(); - reader->bindenter = prefwin->Indent(); - reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false; - switch (prefwin->Markup()) - { - case 0: - reader->bautofmt = true; - break; - case 1: - break; - case 2: - reader->btextfmt = true; - break; - case 3: - reader->bstriphtml = true; - break; - case 4: - reader->bpeanut = true; - break; - default: - qDebug("Format out of range"); - } - reader->bdepluck = prefwin->Depluck(); - reader->bdejpluck = prefwin->Dejpluck(); - reader->setContinuous(prefwin->Continuous()); - - m_spaceTarget = (ActionTypes)prefwin->spaceAction(); - m_escapeTarget = (ActionTypes)prefwin->escapeAction(); - m_returnTarget = (ActionTypes)prefwin->returnAction(); - m_leftTarget = (ActionTypes)prefwin->leftAction(); - m_rightTarget = (ActionTypes)prefwin->rightAction(); - m_upTarget = (ActionTypes)prefwin->upAction(); - m_downTarget = (ActionTypes)prefwin->downAction(); - m_leftScroll = prefwin->leftScroll(); - m_rightScroll = prefwin->rightScroll(); - m_upScroll = prefwin->upScroll(); - m_downScroll = prefwin->downScroll(); - - m_targetapp = prefwin->dictApplication(); - m_targetmsg = prefwin->dictMessage(); - - m_doAnnotation = prefwin->miscannotation(); - m_doDictionary = prefwin->miscdictionary(); - m_doClipboard = prefwin->miscclipboard(); - reader->m_swapmouse = prefwin->SwapMouse(); - reader->setBaseSize(prefwin->gfxsize()); - reader->m_overlap = prefwin->pageoverlap(); - reader->m_bMonoSpaced = prefwin->ideogram(); - m_setmono_action->setOn(reader->m_bMonoSpaced); - reader->m_encd = prefwin->encoding(); - reader->m_charpc = prefwin->ideogramwidth(); - - if ( - reader->m_fontname != prefwin->Font() - || - m_propogatefontchange != prefwin->propfontchange()) - { - m_propogatefontchange = prefwin->propfontchange(); - setfontHelper(prefwin->Font()); - } - delete prefwin; - reader->setfilter(reader->getfilter()); - reader->refresh(); + m_twoTouch = prefwin->twotouch(); + reader->setTwoTouch(m_twoTouch); + m_touch_action->setOn(m_twoTouch); + + reader->bstripcr = prefwin->StripCR(); + reader->bdehyphen = prefwin->Dehyphen(); + reader->bonespace = prefwin->SingleSpace(); + reader->bunindent = prefwin->Unindent(); + reader->brepara = prefwin->Reparagraph(); + reader->bdblspce = prefwin->DoubleSpace(); + reader->bremap = prefwin->Remap(); + reader->bmakebold = prefwin->Embolden(); + reader->bfulljust = prefwin->FullJustify(); + reader->setextraspace(prefwin->ParaLead()); + reader->setlead(prefwin->LineLead()); + reader->m_border = prefwin->Margin(); + reader->bindenter = prefwin->Indent(); + reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false; + switch (prefwin->Markup()) + { + case 0: + reader->bautofmt = true; + break; + case 1: + break; + case 2: + reader->btextfmt = true; + break; + case 3: + reader->bstriphtml = true; + break; + case 4: + reader->bpeanut = true; + break; + default: + odebug << "Format out of range" << oendl; + } + reader->bdepluck = prefwin->Depluck(); + reader->bdejpluck = prefwin->Dejpluck(); + reader->setContinuous(prefwin->Continuous()); + + m_spaceTarget = (ActionTypes)prefwin->spaceAction(); + m_escapeTarget = (ActionTypes)prefwin->escapeAction(); + m_returnTarget = (ActionTypes)prefwin->returnAction(); + m_leftTarget = (ActionTypes)prefwin->leftAction(); + m_rightTarget = (ActionTypes)prefwin->rightAction(); + m_upTarget = (ActionTypes)prefwin->upAction(); + m_downTarget = (ActionTypes)prefwin->downAction(); + m_leftScroll = prefwin->leftScroll(); + m_rightScroll = prefwin->rightScroll(); + m_upScroll = prefwin->upScroll(); + m_downScroll = prefwin->downScroll(); + + m_targetapp = prefwin->dictApplication(); + m_targetmsg = prefwin->dictMessage(); + + m_doAnnotation = prefwin->miscannotation(); + m_doDictionary = prefwin->miscdictionary(); + m_doClipboard = prefwin->miscclipboard(); + reader->m_swapmouse = prefwin->SwapMouse(); + reader->setBaseSize(prefwin->gfxsize()); + reader->m_overlap = prefwin->pageoverlap(); + reader->m_bMonoSpaced = prefwin->ideogram(); + m_setmono_action->setOn(reader->m_bMonoSpaced); + reader->m_encd = prefwin->encoding(); + reader->m_charpc = prefwin->ideogramwidth(); + + if ( + reader->m_fontname != prefwin->Font() + || + m_propogatefontchange != prefwin->propfontchange()) + { + m_propogatefontchange = prefwin->propfontchange(); + setfontHelper(prefwin->Font()); + } + delete prefwin; + reader->setfilter(reader->getfilter()); + reader->refresh(); } else { - delete prefwin; + delete prefwin; } } void QTReaderApp::showtoolbarprefs() { #ifdef USEQPE CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this); #else - QFileInfo fi; + QFileInfo fi; QDir d = QDir::home(); // "/" - if ( !d.cd(APPDIR) ) - { // "/tmp" - qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); - } - fi.setFile(d, INIFILE); + if ( !d.cd(APPDIR) ) + { // "/tmp" + owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); + } + fi.setFile(d, INIFILE); CBarPrefs* prefwin = new CBarPrefs(fi.absFilePath(), !m_bFloatingDialog, this); #endif prefwin->tbpolicy(m_tbpolsave); prefwin->tbposition(m_tbposition-2); prefwin->tbmovable(m_tbmovesave); prefwin->floating(m_bFloatingDialog); if (prefwin->exec()) { - m_bFloatingDialog = prefwin->floating(); - if ( - m_tbpolsave != (ToolbarPolicy)prefwin->tbpolicy() - || - m_tbposition != (ToolBarDock)(prefwin->tbposition()+2) - || - m_tbmovesave != prefwin->tbmovable() - ) - { - QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started"); - } - m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy(); - m_tbposition = (ToolBarDock)(prefwin->tbposition()+2); - m_tbmovesave = prefwin->tbmovable(); - bool isChanged = prefwin->isChanged(); - delete prefwin; + m_bFloatingDialog = prefwin->floating(); + if ( + m_tbpolsave != (ToolbarPolicy)prefwin->tbpolicy() + || + m_tbposition != (ToolBarDock)(prefwin->tbposition()+2) + || + m_tbmovesave != prefwin->tbmovable() + ) + { + QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started"); + } + m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy(); + m_tbposition = (ToolBarDock)(prefwin->tbposition()+2); + m_tbmovesave = prefwin->tbmovable(); + bool isChanged = prefwin->isChanged(); + delete prefwin; #ifdef USEQPE - Config config( APPDIR ); + Config config( APPDIR ); #else - QFileInfo fi; + QFileInfo fi; QDir d = QDir::home(); // "/" - if ( !d.cd(APPDIR) ) - { // "/tmp" - qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); - } - fi.setFile(d, INIFILE); - Config config( fi.absFilePath() ); + if ( !d.cd(APPDIR) ) + { // "/tmp" + owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); + } + fi.setFile(d, INIFILE); + Config config( fi.absFilePath() ); #endif - if (isChanged) addtoolbars(&config); + if (isChanged) addtoolbars(&config); } else { - delete prefwin; + delete prefwin; } } void QTReaderApp::showinfo() { unsigned long fs, ts, pl; if (reader->empty()) { - QMessageBox::information(this, PROGNAME, "No file loaded", 1); + QMessageBox::information(this, PROGNAME, "No file loaded", 1); } else { - reader->sizes(fs,ts); - pl = reader->pagelocate(); - m_infoWin->setFileSize(fs); - m_infoWin->setTextSize(ts); - m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); - m_infoWin->setLocation(pl); - m_infoWin->setRead((100*pl + (ts >> 1))/ts); - editorStack->raiseWidget( m_infoWin ); - m_infoWin->setFocus(); + reader->sizes(fs,ts); + pl = reader->pagelocate(); + m_infoWin->setFileSize(fs); + m_infoWin->setTextSize(ts); + m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); + m_infoWin->setLocation(pl); + m_infoWin->setRead((100*pl + (ts >> 1))/ts); + editorStack->raiseWidget( m_infoWin ); + m_infoWin->setFocus(); } } void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn) { if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; #ifdef _UNICODE CBuffer buff(name.length()+1); int i; for (i = 0; i < name.length(); i++) { - buff[i] = name[i].unicode(); + buff[i] = name[i].unicode(); } buff[i] = 0; CBuffer buff2(text.length()+1); for (i = 0; i < text.length(); i++) { - buff2[i] = text[i].unicode(); + buff2[i] = text[i].unicode(); } buff2[i] = 0; pBkmklist->push_front(Bkmk(buff.data(), buff2.data(), posn)); #else pBkmklist->push_front(Bkmk((const tchar*)text,posn)); #endif m_fBkmksChanged = true; pBkmklist->sort(); } void QTReaderApp::addAnno(const QString& name, const QString& text) { if (m_annoIsEditing) { - if (name.isEmpty()) - { - QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nPlease try again", 1); - } - else - { - addAnno(name, text, m_annoWin->getPosn()); - } - showEditTools(); + if (name.isEmpty()) + { + QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nPlease try again", 1); + } + else + { + addAnno(name, text, m_annoWin->getPosn()); + } + showEditTools(); + } + else + { + if (m_annoWin->edited()) + { + CBuffer buff(text.length()+1); + int i; + for (i = 0; i < text.length(); i++) + { + buff[i] = text[i].unicode(); + } + buff[i] = 0; + m_fBkmksChanged = true; + m_anno->setAnno(buff.data()); + } + bool found = findNextBookmark(m_anno->value()+1); + if (found) + { + m_annoWin->setName(toQString(m_anno->name())); + m_annoWin->setAnno(toQString(m_anno->anno())); } else { - if (m_annoWin->edited()) - { - CBuffer buff(text.length()+1); - int i; - for (i = 0; i < text.length(); i++) - { - buff[i] = text[i].unicode(); - } - buff[i] = 0; - m_fBkmksChanged = true; - m_anno->setAnno(buff.data()); - } - bool found = findNextBookmark(m_anno->value()+1); - if (found) - { - m_annoWin->setName(toQString(m_anno->name())); - m_annoWin->setAnno(toQString(m_anno->anno())); - } - else - { - showEditTools(); - } + showEditTools(); + } } } bool QTReaderApp::findNextBookmark(size_t start) { bool found = false; for (CList<Bkmk>::iterator iter = pBkmklist->begin(); iter != pBkmklist->end(); iter++) { - if (iter->value() >= start) - { - if (iter->value() < reader->locate()) - { - found = true; - m_anno = iter.pContent(); - } - break; - } + if (iter->value() >= start) + { + if (iter->value() < reader->locate()) + { + found = true; + m_anno = iter.pContent(); + } + break; + } } return found; } void QTReaderApp::addanno() { if (reader->empty()) { - QMessageBox::information(this, PROGNAME, "No file loaded", 1); + QMessageBox::information(this, PROGNAME, "No file loaded", 1); } else { - m_annoWin->setName(""); - m_annoWin->setAnno(""); - m_annoWin->setPosn(reader->pagelocate()); - m_annoIsEditing = true; - editorStack->raiseWidget( m_annoWin ); + m_annoWin->setName(""); + m_annoWin->setAnno(""); + m_annoWin->setPosn(reader->pagelocate()); + m_annoIsEditing = true; + editorStack->raiseWidget( m_annoWin ); #ifdef USEQPE - Global::showInputMethod(); + Global::showInputMethod(); #endif - m_annoWin->setFocus(); + m_annoWin->setFocus(); } } void QTReaderApp::infoClose() { showEditTools(); } /* void QTReaderApp::fileRevert() { clear(); fileOpen(); } void QTReaderApp::editCut() { #ifndef QT_NO_CLIPBOARD editor->cut(); #endif } */ void QTReaderApp::editMark() { m_savedpos = reader->pagelocate(); } void QTReaderApp::editCopy() { - QClipboard* cb = QApplication::clipboard(); - QString text; - int ch; - unsigned long currentpos = reader->pagelocate(); - unsigned long endpos = reader->locate(); - if (m_savedpos == 0xffffffff) - { - m_savedpos = currentpos; - } - reader->jumpto(m_savedpos); - while (reader->explocate() < endpos && (ch = reader->getch()) != UEOF) - { - text += ch; - } - cb->setText(text); - reader->locate(currentpos); - m_savedpos = 0xffffffff; + QClipboard* cb = QApplication::clipboard(); + QString text; + int ch; + unsigned long currentpos = reader->pagelocate(); + unsigned long endpos = reader->locate(); + if (m_savedpos == 0xffffffff) + { + m_savedpos = currentpos; + } + reader->jumpto(m_savedpos); + while (reader->explocate() < endpos && (ch = reader->getch()) != UEOF) + { + text += ch; + } + cb->setText(text); + reader->locate(currentpos); + m_savedpos = 0xffffffff; } void QTReaderApp::gotoStart() { reader->locate(reader->buffdoc.startSection()); } void QTReaderApp::gotoEnd() { reader->dopageup(reader->buffdoc.endSection()); } void QTReaderApp::pageup() { reader->NavUp(); } void QTReaderApp::pagedn() { reader->NavDown(); } void QTReaderApp::pagemode(bool _b) { reader->setpagemode(_b); } /* void QTReaderApp::setspacing() { m_nRegAction = cMonoSpace; char lcn[20]; sprintf(lcn, "%lu", reader->m_charpc); regEdit->setText(lcn); do_regedit(); } */ void QTReaderApp::settarget() { m_nRegAction = cSetTarget; QString text = ((m_targetapp.isEmpty()) ? QString("") : m_targetapp) - + "/" - + ((m_targetmsg.isEmpty()) ? QString("") : m_targetmsg); + + "/" + + ((m_targetmsg.isEmpty()) ? QString("") : m_targetmsg); regEdit->setText(text); do_regedit(); } /* void QTReaderApp::do_mono(const QString& lcn) { bool ok; unsigned long ulcn = lcn.toULong(&ok); if (ok) { - reader->m_charpc = ulcn; - reader->setfont(); - reader->refresh(); -// reader->setmono(true); + reader->m_charpc = ulcn; + reader->setfont(); + reader->refresh(); +// reader->setmono(true); } else - QMessageBox::information(this, PROGNAME, "Must be a number"); + QMessageBox::information(this, PROGNAME, "Must be a number"); } */ /* void QTReaderApp::editPaste() { #ifndef QT_NO_CLIPBOARD editor->paste(); #endif } */ void QTReaderApp::editFind() { searchStart = reader->pagelocate(); #ifdef __ISEARCH searchStack = new QStack<searchrecord>; #endif #ifdef USEQPE Global::showInputMethod(); #endif searchBar->show(); searchVisible = TRUE; searchEdit->setFocus(); #ifdef __ISEARCH searchStack->push(new searchrecord("",reader->pagelocate())); #endif } void QTReaderApp::findNext() { -// // qDebug("findNext called\n"); +// // odebug << "findNext called\n" << oendl; #ifdef __ISEARCH QString arg = searchEdit->text(); #else QRegExp arg = searchEdit->text(); #endif CDrawBuffer test(&(reader->m_fontControl)); size_t start = reader->pagelocate(); reader->jumpto(start); reader->getline(&test); dosearch(start, test, arg); } void QTReaderApp::findClose() { searchVisible = FALSE; searchEdit->setText(""); #ifdef USEQPE Global::hideInputMethod(); #endif searchBar->hide(); #ifdef __ISEARCH // searchStack = new QStack<searchrecord>; while (!searchStack->isEmpty()) { @@ -2228,990 +2229,990 @@ bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg) unsigned long fs, ts; reader->sizes(fs,ts); size_t pos = reader->locate(); pbar->setGeometry(searchBar->x(),searchBar->y(),searchBar->width(), searchBar->height()); pbar->show(); pbar->raise(); pbar->reset(); int offset; int lastpc = (100*pos)/ts; pbar->setProgress(lastpc); // qApp->processEvents(); if (reader->buffdoc.getpara(test) >= 0) { reader->setFocus(); #ifdef __ISEARCH while (strstr(test.data(),(const tchar*)arg) == NULL) #else #ifdef _UNICODE while ((offset = arg.match(toQString(test.data()))) == -1) #else while (arg.match(test.data()) == -1) #endif #endif { - pos = reader->locate(); - int pc = (100*pos)/ts; - if (pc != lastpc) - { - pbar->setProgress(pc); - qApp->processEvents(); - reader->setFocus(); - lastpc = pc; - } - - if (reader->buffdoc.getpara(test) < 0) - { - if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) - pos = searchStart; - else - pos = start; - findClose(); - pbar->hide(); - reader->locate(pos); - return false; - } + pos = reader->locate(); + int pc = (100*pos)/ts; + if (pc != lastpc) + { + pbar->setProgress(pc); + qApp->processEvents(); + reader->setFocus(); + lastpc = pc; } -// qDebug("Found it at %u:%u", pos, offset); + + if (reader->buffdoc.getpara(test) < 0) + { + if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) + pos = searchStart; + else + pos = start; + findClose(); + pbar->hide(); + reader->locate(pos); + return false; + } + } +// odebug << "Found it at " << pos << ":" << offset << "" << oendl; pbar->hide(); -// qDebug("Hid"); +// odebug << "Hid" << oendl; reader->locate(pos+offset); -// qDebug("Loacted"); -// qDebug("page up"); +// odebug << "Loacted" << oendl; +// odebug << "page up" << oendl; ret = true; } else { - if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) - pos = searchStart; - else - pos = start; - ret = false; - findClose(); + if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) + pos = searchStart; + else + pos = start; + ret = false; + findClose(); } return ret; } #ifdef __ISEARCH void QTReaderApp::search(const QString & arg) { searchrecord* ss = searchStack->top(); CBuffer test; size_t start = reader->pagelocate(); bool haspopped = false; while (arg.left(ss->s.length()) != ss->s) { haspopped = true; start = ss->pos; // reader->locate(start); searchStack->pop(); delete ss; } if (haspopped) reader->locate(start); /* if (arg.length() < ss->len) { start = ss->pos; reader->locate(start); searchStack->pop(); delete ss; } */ else { start = reader->pagelocate(); reader->jumpto(start); searchStack->push(new searchrecord(arg,start)); } dosearch(start, test, arg); } #else void QTReaderApp::search() { findNext(); } #endif void QTReaderApp::openFile( const QString &f ) { -// qDebug("File:%s", (const char*)f); +// odebug << "File:" << f << "" << oendl; // openFile(DocLnk(f)); //} // //void QTReaderApp::openFile( const DocLnk &f ) //{ clear(); QFileInfo fm(f); if ( fm.exists() ) { // QMessageBox::information(0, "Progress", "Calling fileNew()"); #ifdef USEQPE - if (fm.extension( FALSE ) == "desktop") - { - DocLnk d(f); - QFileInfo fnew(d.file()); - fm = fnew; - if (!fm.exists()) return; - } + if (fm.extension( FALSE ) == "desktop") + { + DocLnk d(f); + QFileInfo fnew(d.file()); + fm = fnew; + if (!fm.exists()) return; + } #endif clear(); reader->setText(fm.baseName(), fm.absFilePath()); m_loadedconfig = readconfig(reader->m_string, false); showEditTools(); readbkmks(); m_savedpos = 0xffffffff; } else { QMessageBox::information(this, PROGNAME, "File does not exist"); reader->m_lastfile = QString::null; } - + } /* void QTReaderApp::resizeEvent(QResizeEvent* e) { if (m_fullscreen) { - showNormal(); - showFullScreen(); + showNormal(); + showFullScreen(); } } */ void QTReaderApp::handlekey(QKeyEvent* e) { -// qDebug("Keypress event"); +// odebug << "Keypress event" << oendl; timeb now; ftime(&now); unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; if (etime < m_debounce) { - return; + return; } m_lastkeytime = now; switch(e->key()) { - case Key_Escape: -// qDebug("escape event"); - if (m_disableesckey) - { - m_disableesckey = false; - } - else - { - m_bcloseDisabled = true; - if (m_fullscreen) - { - m_actFullscreen->setOn(false); - e->accept(); - } - else - { -// qDebug("escape action"); - doAction(m_escapeTarget, e); - } - } - break; - case Key_Space: - { - doAction(m_spaceTarget, e); - } - break; - case Key_Return: - { - doAction(m_returnTarget, e); - } - break; - case Key_Left: - { - if (reader->m_autoScroll && m_leftScroll) - { - reader->reduceScroll(); - } - else - { - doAction(m_leftTarget, e); - } - } - break; - case Key_Right: - { - if (reader->m_autoScroll && m_rightScroll) - { - reader->increaseScroll(); - } - else - { - doAction(m_rightTarget, e); - } - } - break; - case Key_Up: - { - if (reader->m_autoScroll && m_upScroll) - { - reader->increaseScroll(); - } - else - { - doAction(m_upTarget, e); - } - } - break; - case Key_Down: - { - if (reader->m_autoScroll && m_downScroll) - { - reader->reduceScroll(); - } - else - { - doAction(m_downTarget, e); - } - } - break; - default: - { - e->ignore(); - } - + case Key_Escape: +// odebug << "escape event" << oendl; + if (m_disableesckey) + { + m_disableesckey = false; + } + else + { + m_bcloseDisabled = true; + if (m_fullscreen) + { + m_actFullscreen->setOn(false); + e->accept(); + } + else + { +// odebug << "escape action" << oendl; + doAction(m_escapeTarget, e); + } + } + break; + case Key_Space: + { + doAction(m_spaceTarget, e); + } + break; + case Key_Return: + { + doAction(m_returnTarget, e); + } + break; + case Key_Left: + { + if (reader->m_autoScroll && m_leftScroll) + { + reader->reduceScroll(); + } + else + { + doAction(m_leftTarget, e); + } + } + break; + case Key_Right: + { + if (reader->m_autoScroll && m_rightScroll) + { + reader->increaseScroll(); + } + else + { + doAction(m_rightTarget, e); + } + } + break; + case Key_Up: + { + if (reader->m_autoScroll && m_upScroll) + { + reader->increaseScroll(); + } + else + { + doAction(m_upTarget, e); + } + } + break; + case Key_Down: + { + if (reader->m_autoScroll && m_downScroll) + { + reader->reduceScroll(); + } + else + { + doAction(m_downTarget, e); + } + } + break; + default: + { + e->ignore(); + } + /* - QString msg("Key press was:"); - QString key; - msg += key.setNum(e->key()); - QMessageBox::information(this, PROGNAME, msg); + QString msg("Key press was:"); + QString key; + msg += key.setNum(e->key()); + QMessageBox::information(this, PROGNAME, msg); */ } } void QTReaderApp::showEditTools() { // if ( !doc ) -// close(); +// close(); if (m_fullscreen) { - if (menubar != NULL) menubar->hide(); - if (fileBar != NULL) fileBar->hide(); - if (viewBar != NULL) viewBar->hide(); - if (navBar != NULL) navBar->hide(); - if (markBar != NULL) markBar->hide(); - searchBar->hide(); - regBar->hide(); + if (menubar != NULL) menubar->hide(); + if (fileBar != NULL) fileBar->hide(); + if (viewBar != NULL) viewBar->hide(); + if (navBar != NULL) navBar->hide(); + if (markBar != NULL) markBar->hide(); + searchBar->hide(); + regBar->hide(); #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif - m_fontBar->hide(); -// showNormal(); - showFullScreen(); + m_fontBar->hide(); +// showNormal(); + showFullScreen(); } else { -// qDebug("him"); +// odebug << "him" << oendl; #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif -// qDebug("eb"); - menubar->show(); - if (fileBar != NULL) fileBar->show(); - if (viewBar != NULL) viewBar->show(); - if (navBar != NULL) navBar->show(); - if (markBar != NULL) markBar->show(); - mb->show(); - if ( searchVisible ) - { +// odebug << "eb" << oendl; + menubar->show(); + if (fileBar != NULL) fileBar->show(); + if (viewBar != NULL) viewBar->show(); + if (navBar != NULL) navBar->show(); + if (markBar != NULL) markBar->show(); + mb->show(); + if ( searchVisible ) + { #ifdef USEQPE - Global::showInputMethod(); + Global::showInputMethod(); #endif - searchBar->show(); - } - if ( regVisible ) - { + searchBar->show(); + } + if ( regVisible ) + { #ifdef USEQPE - Global::showInputMethod(); + Global::showInputMethod(); #endif - regBar->show(); - } - if (m_fontVisible) m_fontBar->show(); -// qDebug("sn"); - showNormal(); -// qDebug("sm"); + regBar->show(); + } + if (m_fontVisible) m_fontBar->show(); +// odebug << "sn" << oendl; + showNormal(); +// odebug << "sm" << oendl; #ifdef USEQPE - showMaximized(); + showMaximized(); #endif -// setCentralWidget(reader); +// setCentralWidget(reader); } -// qDebug("uc"); +// odebug << "uc" << oendl; updateCaption(); -// qDebug("rw"); +// odebug << "rw" << oendl; editorStack->raiseWidget( reader ); -// qDebug("sf"); +// odebug << "sf" << oendl; reader->setFocus(); reader->refresh(); } /* void QTReaderApp::save() { if ( !doc ) - return; + return; if ( !editor->edited() ) - return; + return; QString rt = editor->text(); QString pt = rt; if ( doc->name().isEmpty() ) { - unsigned ispace = pt.find( ' ' ); - unsigned ienter = pt.find( '\n' ); - int i = (ispace < ienter) ? ispace : ienter; - QString docname; - if ( i == -1 ) { - if ( pt.isEmpty() ) - docname = "Empty Text"; - else - docname = pt; - } else { - docname = pt.left( i ); - } - doc->setName(docname); + unsigned ispace = pt.find( ' ' ); + unsigned ienter = pt.find( '\n' ); + int i = (ispace < ienter) ? ispace : ienter; + QString docname; + if ( i == -1 ) { + if ( pt.isEmpty() ) + docname = "Empty Text"; + else + docname = pt; + } else { + docname = pt.left( i ); + } + doc->setName(docname); } FileManager fm; fm.saveFile( *doc, rt ); } */ void QTReaderApp::clear() { // if (doc != 0) // { // QMessageBox::information(this, PROGNAME, "Deleting doc", 1); -// delete doc; +// delete doc; // QMessageBox::information(this, PROGNAME, "Deleted doc", 1); -// doc = 0; +// doc = 0; // } reader->clear(); } void QTReaderApp::updateCaption() { // if ( !doc ) -// setCaption( tr("QTReader") ); +// setCaption( tr("QTReader") ); // else { -// QString s = doc->name(); -// if ( s.isEmpty() ) -// s = tr( "Unnamed" ); - setCaption( reader->m_string + " - " + tr("Reader") ); +// QString s = doc->name(); +// if ( s.isEmpty() ) +// s = tr( "Unnamed" ); + setCaption( reader->m_string + " - " + tr("Reader") ); // } } void QTReaderApp::setDocument(const QString& fileref) { bFromDocView = TRUE; //QMessageBox::information(0, "setDocument", fileref); openFile(fileref); // showEditTools(); } void QTReaderApp::closeEvent( QCloseEvent *e ) { -// qDebug("Close event"); +// odebug << "Close event" << oendl; if (m_fullscreen) { - m_fullscreen = false; - showEditTools(); - e->accept(); + m_fullscreen = false; + showEditTools(); + e->accept(); } else if (m_dontSave) { - e->accept(); + e->accept(); } else { - if (editorStack->visibleWidget() == reader) - { - if ((m_escapeTarget != cesNone) && m_bcloseDisabled) - { -// qDebug("Close disabled"); - m_bcloseDisabled = false; - e->ignore(); - } - else - { - if (m_fontVisible) - { - m_fontBar->hide(); - m_fontVisible = false; - } - if (regVisible) - { - regBar->hide(); + if (editorStack->visibleWidget() == reader) + { + if ((m_escapeTarget != cesNone) && m_bcloseDisabled) + { +// odebug << "Close disabled" << oendl; + m_bcloseDisabled = false; + e->ignore(); + } + else + { + if (m_fontVisible) + { + m_fontBar->hide(); + m_fontVisible = false; + } + if (regVisible) + { + regBar->hide(); #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif - regVisible = false; - return; - } - if (searchVisible) - { - searchBar->hide(); + regVisible = false; + return; + } + if (searchVisible) + { + searchBar->hide(); #ifdef USEQPE - Global::hideInputMethod(); + Global::hideInputMethod(); #endif - searchVisible = false; - return; - } - if (m_fBkmksChanged && pBkmklist != NULL) - { - if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) - savebkmks(); - delete pBkmklist; - pBkmklist = NULL; - m_fBkmksChanged = false; - } - bFromDocView = FALSE; - updatefileinfo(); - saveprefs(); - e->accept(); - } - } - else - { - showEditTools(); - m_disableesckey = true; - } + searchVisible = false; + return; + } + if (m_fBkmksChanged && pBkmklist != NULL) + { + if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) + savebkmks(); + delete pBkmklist; + pBkmklist = NULL; + m_fBkmksChanged = false; + } + bFromDocView = FALSE; + updatefileinfo(); + saveprefs(); + e->accept(); + } + } + else + { + showEditTools(); + m_disableesckey = true; + } } } void QTReaderApp::do_gotomark() { m_nBkmkAction = cGotoBkmk; if (!listbkmk(pBkmklist)) - QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); + QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); } void QTReaderApp::do_delmark() { m_nBkmkAction = cDelBkmk; if (!listbkmk(pBkmklist)) - QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); + QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); } bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab) { bkmkselector->clear(); if (_lab.isEmpty()) - bkmkselector->setText("Cancel"); + bkmkselector->setText("Cancel"); else - bkmkselector->setText(_lab); + bkmkselector->setText(_lab); int cnt = 0; if (plist != NULL) { - for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) - { + for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) + { #ifdef _UNICODE -// qDebug("Item:%s", (const char*)toQString(i->name())); - bkmkselector->insertItem(toQString(i->name())); +// odebug << "Item:" << toQString(i->name()) << "" << oendl; + bkmkselector->insertItem(toQString(i->name())); #else - bkmkselector->insertItem(i->name()); + bkmkselector->insertItem(i->name()); #endif - cnt++; - } + cnt++; + } } if (cnt > 0) { - hidetoolbars(); + hidetoolbars(); editorStack->raiseWidget( bkmkselector ); - return true; + return true; } else - return false; + return false; } void QTReaderApp::do_autogen() { m_nRegAction = cAutoGen; regEdit->setText(m_autogenstr); do_regedit(); } void QTReaderApp::do_regedit() { // fileBar->hide(); reader->bDoUpdates = false; -// qDebug("Showing regbar"); +// odebug << "Showing regbar" << oendl; regBar->show(); -// qDebug("Showing kbd"); +// odebug << "Showing kbd" << oendl; #ifdef USEQPE Global::showInputMethod(); #endif regVisible = true; regEdit->setFocus(); // qApp->processEvents(); reader->bDoUpdates = true; reader->update(); } bool QTReaderApp::openfrombkmk(Bkmk* bk) { QString fn = toQString( - CFiledata(bk->anno()).name() - ); -// qDebug("fileinfo"); + CFiledata(bk->anno()).name() + ); +// odebug << "fileinfo" << oendl; if (!fn.isEmpty() && QFileInfo(fn).isFile()) { -// qDebug("Opening"); - openFile(fn); - struct stat fnstat; - stat((const char *)reader->m_lastfile, &fnstat); - - if (CFiledata(bk->anno()).date() - != fnstat.st_mtime) - { - CFiledata fd(bk->anno()); - fd.setdate(fnstat.st_mtime); - bk->value(0); - } - else - { - unsigned short svlen = bk->filedatalen(); - unsigned char* svdata = bk->filedata(); - reader->putSaveData(svdata, svlen); -// setstate(svdata, svlen); - if (svlen != 0) - { - QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); - } -// qDebug("updating"); -// showEditTools(); - reader->locate(bk->value()); - } - return true; +// odebug << "Opening" << oendl; + openFile(fn); + struct stat fnstat; + stat((const char *)reader->m_lastfile, &fnstat); + + if (CFiledata(bk->anno()).date() + != fnstat.st_mtime) + { + CFiledata fd(bk->anno()); + fd.setdate(fnstat.st_mtime); + bk->value(0); } else { - return false; + unsigned short svlen = bk->filedatalen(); + unsigned char* svdata = bk->filedata(); + reader->putSaveData(svdata, svlen); +// setstate(svdata, svlen); + if (svlen != 0) + { + QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); + } +// odebug << "updating" << oendl; +// showEditTools(); + reader->locate(bk->value()); + } + return true; + } + else + { + return false; } } void QTReaderApp::gotobkmk(int ind) { showEditTools(); switch (m_nBkmkAction) { - case cOpenFile: - { -// qApp->processEvents(); - if (!openfrombkmk((*pOpenlist)[ind])) - { - pOpenlist->erase(ind); - QMessageBox::information(this, PROGNAME, "Can't find file"); - } - } - break; - case cGotoBkmk: - reader->locate((*pBkmklist)[ind]->value()); - break; - case cDelBkmk: -//// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name()); - pBkmklist->erase(ind); - m_fBkmksChanged = true; -// pBkmklist->sort(); - break; - case cRmBkmkFile: - { + case cOpenFile: + { +// qApp->processEvents(); + if (!openfrombkmk((*pOpenlist)[ind])) + { + pOpenlist->erase(ind); + QMessageBox::information(this, PROGNAME, "Can't find file"); + } + } + break; + case cGotoBkmk: + reader->locate((*pBkmklist)[ind]->value()); + break; + case cDelBkmk: +//// odebug << "Deleting:" << (*pBkmklist)[ind]->name() << "\n" << oendl; + pBkmklist->erase(ind); + m_fBkmksChanged = true; +// pBkmklist->sort(); + break; + case cRmBkmkFile: + { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - d.remove(bkmkselector->text(ind)); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + d.remove(bkmkselector->text(ind)); #else /* USEQPE */ - unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind))); + unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind))); #endif /* USEQPE */ - } - break; - case cLdConfig: - readconfig(bkmkselector->text(ind), false); - break; - case cRmConfig: - { + } + break; + case cLdConfig: + readconfig(bkmkselector->text(ind), false); + break; + case cRmConfig: + { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR "/configs"); - d.remove(bkmkselector->text(ind)); + QDir d = QDir::home(); // "/" + d.cd(APPDIR "/configs"); + d.remove(bkmkselector->text(ind)); #else /* USEQPE */ - unlink((const char *)Global::applicationFileName(APPDIR "/configs",bkmkselector->text(ind))); + unlink((const char *)Global::applicationFileName(APPDIR "/configs",bkmkselector->text(ind))); #endif /* USEQPE */ - } - break; - case cExportLinks: - { + } + break; + case cExportLinks: + { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR "/urls"); - QFileInfo fi(d, bkmkselector->text(ind)); - if (fi.exists()) - { - QString outfile( QFileDialog::getSaveFileName( QString::null, QString::null, this ) ); - if (!outfile.isEmpty()) - { - FILE* fout = fopen((const char *)outfile, "w"); - if (fout != NULL) - { - FILE* fin = fopen((const char *)fi.absFilePath(), "r"); - if (fin != NULL) - { - fprintf(fout, "<html><body>\n"); - int ch = 0; - while ((ch = fgetc(fin)) != EOF) - { - fputc(ch, fout); - } - fclose(fin); - fprintf(fout, "</html></body>\n"); - d.remove(bkmkselector->text(ind)); - } - fclose(fout); - } - else - QMessageBox::information(this, PROGNAME, "Couldn't open output"); - } - } + QDir d = QDir::home(); // "/" + d.cd(APPDIR "/urls"); + QFileInfo fi(d, bkmkselector->text(ind)); + if (fi.exists()) + { + QString outfile( QFileDialog::getSaveFileName( QString::null, QString::null, this ) ); + if (!outfile.isEmpty()) + { + FILE* fout = fopen((const char *)outfile, "w"); + if (fout != NULL) + { + FILE* fin = fopen((const char *)fi.absFilePath(), "r"); + if (fin != NULL) + { + fprintf(fout, "<html><body>\n"); + int ch = 0; + while ((ch = fgetc(fin)) != EOF) + { + fputc(ch, fout); + } + fclose(fin); + fprintf(fout, "</html></body>\n"); + d.remove(bkmkselector->text(ind)); + } + fclose(fout); + } + else + QMessageBox::information(this, PROGNAME, "Couldn't open output"); + } + } #else /* USEQPE */ - FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); - if (fin != NULL) - { - bool allok = false; - fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null); - if (fb->exec()) - { - QString outfile = fb->getCurrentFile(); - FILE* fout = fopen((const char *)outfile, "w"); - if (fout != NULL) - { - fprintf(fout, "<html><body>\n"); - int ch = 0; - while ((ch = fgetc(fin)) != EOF) - { - fputc(ch, fout); - } - fprintf(fout, "</html></body>\n"); - fclose(fout); - allok = true; - } - else - QMessageBox::information(this, PROGNAME, "Couldn't open output"); - } - delete fb; - fclose(fin); - if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); - } - else - { - QMessageBox::information(this, PROGNAME, "Couldn't open input"); - } + FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); + if (fin != NULL) + { + bool allok = false; + fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null); + if (fb->exec()) + { + QString outfile = fb->getCurrentFile(); + FILE* fout = fopen((const char *)outfile, "w"); + if (fout != NULL) + { + fprintf(fout, "<html><body>\n"); + int ch = 0; + while ((ch = fgetc(fin)) != EOF) + { + fputc(ch, fout); + } + fprintf(fout, "</html></body>\n"); + fclose(fout); + allok = true; + } + else + QMessageBox::information(this, PROGNAME, "Couldn't open output"); + } + delete fb; + fclose(fin); + if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); + } + else + { + QMessageBox::information(this, PROGNAME, "Couldn't open input"); + } /* - CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE ); - int ret = f->exec(); - qDebug("Return:%d", ret); - DocLnk* doc = f->getDoc(); - if (doc != NULL) - { - FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); - QString rt; - rt = "<html><body>\n"; - int ch = 0; - while ((ch = fgetc(fin)) != EOF) - { - rt += (char)ch; - } - fclose(fin); - rt += "</html></body>\n"; - if ( doc->name().isEmpty() ) - { - doc->setName(bkmkselector->text(ind)); - } - FileManager fm; - fm.saveFile( *doc, rt ); - qDebug("YES"); - } - else - { - qDebug("NO"); - } - delete f; + CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE ); + int ret = f->exec(); + odebug << "Return:" << ret << "" << oendl; + DocLnk* doc = f->getDoc(); + if (doc != NULL) + { + FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); + QString rt; + rt = "<html><body>\n"; + int ch = 0; + while ((ch = fgetc(fin)) != EOF) + { + rt += (char)ch; + } + fclose(fin); + rt += "</html></body>\n"; + if ( doc->name().isEmpty() ) + { + doc->setName(bkmkselector->text(ind)); + } + FileManager fm; + fm.saveFile( *doc, rt ); + odebug << "YES" << oendl; + } + else + { + odebug << "NO" << oendl; + } + delete f; */ #endif /* USEQPE */ - } - break; + } + break; } } void QTReaderApp::cancelbkmk() { if (m_nBkmkAction == cOpenFile) { - QString fn = usefilebrowser(); - if (!fn.isEmpty() && QFileInfo(fn).isFile()) openFile(fn); + QString fn = usefilebrowser(); + if (!fn.isEmpty() && QFileInfo(fn).isFile()) openFile(fn); } showEditTools(); } void QTReaderApp::jump() { m_nRegAction = cJump; char lcn[20]; sprintf(lcn, "%lu", reader->pagelocate()); regEdit->setText(lcn); do_regedit(); } void QTReaderApp::do_jump(const QString& lcn) { bool ok; unsigned long ulcn = lcn.toULong(&ok); if (ok) - reader->locate(ulcn); + reader->locate(ulcn); else - QMessageBox::information(this, PROGNAME, "Must be a number"); + QMessageBox::information(this, PROGNAME, "Must be a number"); } void QTReaderApp::do_regaction() { reader->bDoUpdates = false; regBar->hide(); #ifdef USEQPE Global::hideInputMethod(); #endif regVisible = false; switch(m_nRegAction) { case cAutoGen: - do_autogen(regEdit->text()); - break; + do_autogen(regEdit->text()); + break; case cAddBkmk: - do_addbkmk(regEdit->text()); - break; + do_addbkmk(regEdit->text()); + break; case cJump: - do_jump(regEdit->text()); - break; + do_jump(regEdit->text()); + break; /* case cMonoSpace: - do_mono(regEdit->text()); - break; + do_mono(regEdit->text()); + break; */ case cSetTarget: - do_settarget(regEdit->text()); - break; + do_settarget(regEdit->text()); + break; #ifdef _SCROLLPIPE case cSetPipeTarget: - do_setpipetarget(regEdit->text()); - break; + do_setpipetarget(regEdit->text()); + break; #endif case cSetConfigName: -// qDebug("Saving config"); - do_saveconfig(regEdit->text(), false); - break; +// odebug << "Saving config" << oendl; + do_saveconfig(regEdit->text(), false); + break; } // reader->restore(); // fileBar->show(); reader->setFocus(); // qApp->processEvents(); reader->bDoUpdates = true; reader->update(); } void QTReaderApp::do_settarget(const QString& _txt) { int ind = _txt.find('/'); if (ind == -1) { - m_targetapp = ""; - m_targetmsg = ""; - QMessageBox::information(this, PROGNAME, "Format is\nappname/messagename"); + m_targetapp = ""; + m_targetmsg = ""; + QMessageBox::information(this, PROGNAME, "Format is\nappname/messagename"); } else { - m_targetapp = _txt.left(ind); - m_targetmsg = _txt.right(_txt.length()-ind-1); + m_targetapp = _txt.left(ind); + m_targetmsg = _txt.right(_txt.length()-ind-1); } } void QTReaderApp::chooseencoding() { m_fontSelector->clear(); m_fontSelector->insertItem("Ascii"); m_fontSelector->insertItem("UTF-8"); m_fontSelector->insertItem("UCS-2(BE)"); m_fontSelector->insertItem("USC-2(LE)"); m_fontSelector->insertItem("Palm"); for (unicodetable::iterator iter = unicodetable::begin(); iter != unicodetable::end(); iter++) { - m_fontSelector->insertItem(iter->mime); + m_fontSelector->insertItem(iter->mime); } // delete the FontDatabase!!! m_fontSelector->setCurrentItem (reader->m_encd); m_fontAction = cChooseEncoding; m_fontBar->show(); m_fontVisible = true; } void QTReaderApp::setfont() { m_fontSelector->clear(); { #ifdef USEQPE - FontDatabase f; + FontDatabase f; #else - QFontDatabase f; + QFontDatabase f; #endif - QStringList flist = f.families(); - m_fontSelector->insertStringList(flist); + QStringList flist = f.families(); + m_fontSelector->insertStringList(flist); } // delete the FontDatabase!!! for (int i = 1; i <= m_fontSelector->count(); i++) { - if (m_fontSelector->text(i) == reader->m_fontname) - { - m_fontSelector->setCurrentItem(i); - break; - } + if (m_fontSelector->text(i) == reader->m_fontname) + { + m_fontSelector->setCurrentItem(i); + break; + } } m_fontAction = cChooseFont; m_fontBar->show(); m_fontVisible = true; } void QTReaderApp::setfontHelper(const QString& lcn, int size) { if (size == 0) size = reader->m_fontControl.currentsize(); if (m_propogatefontchange) { - QFont f(lcn, 10); - bkmkselector->setFont( f ); - regEdit->setFont( f ); - searchEdit->setFont( f ); - m_annoWin->setFont( f ); + QFont f(lcn, 10); + bkmkselector->setFont( f ); + regEdit->setFont( f ); + searchEdit->setFont( f ); + m_annoWin->setFont( f ); } reader->m_fontname = lcn; if (!reader->ChangeFont(size)) { - reader->ChangeFont(size); + reader->ChangeFont(size); } } void QTReaderApp::do_setencoding(int i) { -// qDebug("setencoding:%d", i); +// odebug << "setencoding:" << i << "" << oendl; if (m_fontAction == cChooseEncoding) { - reader->setencoding(i); + reader->setencoding(i); } reader->refresh(); m_fontBar->hide(); m_fontVisible = false; -// qDebug("showedit"); +// odebug << "showedit" << oendl; if (reader->isVisible()) showEditTools(); -// qDebug("showeditdone"); +// odebug << "showeditdone" << oendl; } void QTReaderApp::do_setfont(const QString& lcn) { if (m_fontAction == cChooseFont) { - setfontHelper(lcn); + setfontHelper(lcn); } reader->refresh(); m_fontBar->hide(); m_fontVisible = false; -// qDebug("showedit"); +// odebug << "showedit" << oendl; //if (reader->isVisible()) showEditTools(); -// qDebug("showeditdone"); +// odebug << "showeditdone" << oendl; } void QTReaderApp::do_autogen(const QString& regText) { unsigned long fs, ts; reader->sizes(fs,ts); -// // qDebug("Reg:%s\n", (const tchar*)(regEdit->text())); +// // odebug << "Reg:" << (const tchar*)(regEdit->text()) << "\n" << oendl; m_autogenstr = regText; QRegExp re(regText); CBuffer buff; if (pBkmklist != NULL) delete pBkmklist; pBkmklist = new CList<Bkmk>; m_fBkmksChanged = true; pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height()); pbar->show(); pbar->raise(); pbar->reset(); reader->update(); qApp->processEvents(); reader->setFocus(); reader->jumpto(0); int lastpc = 0; int i = 0; while (i >= 0) { unsigned int lcn = reader->locate(); int pc = (100*lcn)/ts; if (pc != lastpc) { pbar->setProgress(pc); - qApp->processEvents(); - if (reader->locate() != lcn) reader->jumpto(lcn); - reader->setFocus(); + qApp->processEvents(); + if (reader->locate() != lcn) reader->jumpto(lcn); + reader->setFocus(); lastpc = pc; } i = reader->buffdoc.getpara(buff); #ifdef _UNICODE if (re.match(toQString(buff.data())) != -1) #else if (re.match(buff.data()) != -1) #endif - pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn)); + pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn)); } pBkmklist->sort(); pbar->setProgress(100); qApp->processEvents(); pbar->hide(); reader->refresh(); } void QTReaderApp::saveprefs() { -// qDebug("saveprefs"); +// odebug << "saveprefs" << oendl; // reader->saveprefs("uqtreader"); // if (!m_loadedconfig) - do_saveconfig( APPDIR, true ); + do_saveconfig( APPDIR, true ); -/* +/* Config config( APPDIR ); config.setGroup( "View" ); - + reader->m_lastposn = reader->pagelocate(); - + config.writeEntry("FloatDialogs", m_bFloatingDialog); config.writeEntry( "StripCr", reader->bstripcr ); config.writeEntry( "AutoFmt", reader->bautofmt ); config.writeEntry( "TextFmt", reader->btextfmt ); config.writeEntry( "StripHtml", reader->bstriphtml ); config.writeEntry( "Dehyphen", reader->bdehyphen ); config.writeEntry( "Depluck", reader->bdepluck ); config.writeEntry( "Dejpluck", reader->bdejpluck ); config.writeEntry( "OneSpace", reader->bonespace ); config.writeEntry( "Unindent", reader->bunindent ); config.writeEntry( "Repara", reader->brepara ); config.writeEntry( "DoubleSpace", reader->bdblspce ); config.writeEntry( "Indent", reader->bindenter ); config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); config.writeEntry( "ScrollDelay", reader->m_delay); config.writeEntry( "LastFile", reader->m_lastfile ); config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); config.writeEntry( "PageMode", reader->m_bpagemode ); config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); config.writeEntry( "SwapMouse", reader->m_swapmouse); config.writeEntry( "Fontname", reader->m_fontname ); config.writeEntry( "Encoding", reader->m_encd ); config.writeEntry( "CharSpacing", reader->m_charpc ); config.writeEntry( "Overlap", (int)(reader->m_overlap) ); @@ -3240,537 +3241,537 @@ void QTReaderApp::saveprefs() #ifdef REPALM config.writeEntry( "Repalm", reader->brepalm ); #endif config.writeEntry( "Remap", reader->bremap ); config.writeEntry( "Peanut", reader->bpeanut ); config.writeEntry( "MakeBold", reader->bmakebold ); config.writeEntry( "Continuous", reader->m_continuousDocument ); config.writeEntry( "FullJust", reader->bfulljust ); config.writeEntry( "ExtraSpace", reader->getextraspace() ); config.writeEntry( "ExtraLead", reader->getlead() ); config.writeEntry( "Basesize", (int)reader->getBaseSize()); config.writeEntry( "RequestorFontChange", m_propogatefontchange); config.setGroup( "Toolbar" ); config.writeEntry("Movable", m_tbmovesave); config.writeEntry("Policy", m_tbpolsave); config.writeEntry("Position", m_tbposition); */ savefilelist(); } /* void QTReaderApp::oldFile() { -// qDebug("oldFile called"); +// odebug << "oldFile called" << oendl; reader->setText(true); -// qDebug("settext called"); +// odebug << "settext called" << oendl; showEditTools(); -// qDebug("showedit called"); +// odebug << "showedit called" << oendl; } */ /* void info_cb(Fl_Widget* o, void* _data) { if (infowin == NULL) { - - infowin = new Fl_Window(160,240); - filename = new Fl_Output(45,5,110,14,"Filename"); - filesize = new Fl_Output(45,25,110,14,"Filesize"); - textsize = new Fl_Output(45,45,110,14,"Textsize"); - comprat = new CBar(45,65,110,14,"Ratio %"); - posn = new Fl_Output(45,85,110,14,"Location"); - frcn = new CBar(45,105,110,14,"% Read"); - about = new Fl_Multiline_Output(5,125,150,90); - about->value("TWReader - $Name$\n\nA file reader program for the Agenda\n\nReads text, PalmDoc and ppms format files"); - Fl_Button *jump_accept = new Fl_Button(62,220,35,14,"Okay"); - infowin->set_modal(); + + infowin = new Fl_Window(160,240); + filename = new Fl_Output(45,5,110,14,"Filename"); + filesize = new Fl_Output(45,25,110,14,"Filesize"); + textsize = new Fl_Output(45,45,110,14,"Textsize"); + comprat = new CBar(45,65,110,14,"Ratio %"); + posn = new Fl_Output(45,85,110,14,"Location"); + frcn = new CBar(45,105,110,14,"% Read"); + about = new Fl_Multiline_Output(5,125,150,90); + about->value("TWReader - $Name$\n\nA file reader program for the Agenda\n\nReads text, PalmDoc and ppms format files"); + Fl_Button *jump_accept = new Fl_Button(62,220,35,14,"Okay"); + infowin->set_modal(); } if (((reader_ui *)_data)->g_filename[0] != '\0') { - unsigned long fs,ts; - tchar sz[20]; - ((reader_ui *)_data)->input->sizes(fs,ts); - unsigned long pl = ((reader_ui *)_data)->input->locate(); + unsigned long fs,ts; + tchar sz[20]; + ((reader_ui *)_data)->input->sizes(fs,ts); + unsigned long pl = ((reader_ui *)_data)->input->locate(); - filename->value(((reader_ui *)_data)->g_filename); + filename->value(((reader_ui *)_data)->g_filename); - sprintf(sz,"%u",fs); - filesize->value(sz); + sprintf(sz,"%u",fs); + filesize->value(sz); - sprintf(sz,"%u",ts); - textsize->value(sz); + sprintf(sz,"%u",ts); + textsize->value(sz); - comprat->value(100-(100*fs + (ts >> 1))/ts); + comprat->value(100-(100*fs + (ts >> 1))/ts); - sprintf(sz,"%u",pl); - posn->value(sz); + sprintf(sz,"%u",pl); + posn->value(sz); - frcn->value((100*pl + (ts >> 1))/ts); + frcn->value((100*pl + (ts >> 1))/ts); } infowin->show(); } */ void QTReaderApp::savebkmks() { if (pBkmklist != NULL) { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - QFileInfo fi(d, reader->m_string); - BkmkFile bf((const char *)fi.absFilePath(), true); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + QFileInfo fi(d, reader->m_string); + BkmkFile bf((const char *)fi.absFilePath(), true); #else /* USEQPE */ - BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true); + BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true); #endif /* USEQPE */ - bf.write(*pBkmklist); + bf.write(*pBkmklist); } - m_fBkmksChanged = false; + m_fBkmksChanged = false; } void QTReaderApp::readfilelist() { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - QFileInfo fi(d, ".openfiles"); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + QFileInfo fi(d, ".openfiles"); BkmkFile bf((const char *)fi.absFilePath()); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles")); #endif /* USEQPE */ -// qDebug("Reading open files"); +// odebug << "Reading open files" << oendl; pOpenlist = bf.readall(); -// if (pOpenlist != NULL) qDebug("...with success"); -// else qDebug("...without success!"); +// if (pOpenlist != NULL) odebug << "...with success" << oendl; +// else odebug << "...without success!" << oendl; } void QTReaderApp::savefilelist() { if (pOpenlist != NULL) { #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - QFileInfo fi(d, ".openfiles"); - BkmkFile bf((const char *)fi.absFilePath(), true); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + QFileInfo fi(d, ".openfiles"); + BkmkFile bf((const char *)fi.absFilePath(), true); #else /* USEQPE */ - BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true); + BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true); #endif /* USEQPE */ -// qDebug("Writing open files"); - bf.write(*pOpenlist); +// odebug << "Writing open files" << oendl; + bf.write(*pOpenlist); } } void QTReaderApp::readbkmks() { if (pBkmklist != NULL) { - delete pBkmklist; + delete pBkmklist; } struct stat fnstat; struct stat bkstat; #ifndef USEQPE - QDir d = QDir::home(); // "/" - d.cd(APPDIR); - QFileInfo fi(d, reader->m_string); + QDir d = QDir::home(); // "/" + d.cd(APPDIR); + QFileInfo fi(d, reader->m_string); #endif /* ! USEQPE */ if ( - stat((const char *)reader->m_lastfile, &fnstat) == 0 - && + stat((const char *)reader->m_lastfile, &fnstat) == 0 + && #ifndef USEQPE - stat((const char *)fi.absFilePath(), &bkstat) == 0 + stat((const char *)fi.absFilePath(), &bkstat) == 0 #else /* USEQPE */ - stat((const char *)Global::applicationFileName(APPDIR,reader->m_string), &bkstat) == 0 + stat((const char *)Global::applicationFileName(APPDIR,reader->m_string), &bkstat) == 0 #endif /* USEQPE */ - ) + ) + { + if (bkstat.st_mtime < fnstat.st_mtime) { - if (bkstat.st_mtime < fnstat.st_mtime) - { #ifndef USEQPE - unlink((const char *)fi.absFilePath()); + unlink((const char *)fi.absFilePath()); #else /* USEQPE */ - unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); + unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); #endif /* USEQPE */ - } + } } #ifndef USEQPE BkmkFile bf((const char *)fi.absFilePath()); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string)); #endif /* USEQPE */ pBkmklist = bf.readall(); m_fBkmksChanged = bf.upgraded(); if (pBkmklist == NULL) { - pBkmklist = reader->getbkmklist(); + pBkmklist = reader->getbkmklist(); } if (pBkmklist != NULL) - pBkmklist->sort(); + pBkmklist->sort(); } void QTReaderApp::addbkmk() { m_nRegAction = cAddBkmk; regEdit->setText(reader->firstword()); do_regedit(); } void QTReaderApp::do_addbkmk(const QString& text) { - if (text.isEmpty()) - { - QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nSelect add again", 1); - } - else - { - if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; + if (text.isEmpty()) + { + QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nSelect add again", 1); + } + else + { + if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; #ifdef _UNICODE - CBuffer buff; - int i = 0; - for (i = 0; i < text.length(); i++) - { - buff[i] = text[i].unicode(); - } - buff[i] = 0; - pBkmklist->push_front(Bkmk(buff.data(), NULL, reader->pagelocate())); + CBuffer buff; + int i = 0; + for (i = 0; i < text.length(); i++) + { + buff[i] = text[i].unicode(); + } + buff[i] = 0; + pBkmklist->push_front(Bkmk(buff.data(), NULL, reader->pagelocate())); #else - pBkmklist->push_front(Bkmk((const tchar*)text, reader->pagelocate())); + pBkmklist->push_front(Bkmk((const tchar*)text, reader->pagelocate())); #endif - m_fBkmksChanged = true; - pBkmklist->sort(); - } + m_fBkmksChanged = true; + pBkmklist->sort(); + } } void QTReaderApp::OnRedraw() { if ((pBkmklist != NULL) && (m_bkmkAvail != NULL)) { - bool found = findNextBookmark(reader->pagelocate()); - m_bkmkAvail->setEnabled(found); + bool found = findNextBookmark(reader->pagelocate()); + m_bkmkAvail->setEnabled(found); } } void QTReaderApp::showAnnotation() { m_annoWin->setName(toQString(m_anno->name())); m_annoWin->setAnno(toQString(m_anno->anno())); m_annoIsEditing = false; #ifdef USEQPE Global::showInputMethod(); #endif editorStack->raiseWidget( m_annoWin ); m_annoWin->setFocus(); } void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line) { -//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd); +//// odebug << "OnWordSelected(" << posn << "):" << wrd << "" << oendl; if (m_doClipboard) { - QClipboard* cb = QApplication::clipboard(); - cb->setText(wrd); + QClipboard* cb = QApplication::clipboard(); + cb->setText(wrd); #ifdef USEQPE - if (wrd.length() > 10) - { - Global::statusMessage(wrd.left(8) + ".."); - } - else - { - Global::statusMessage(wrd); - } + if (wrd.length() > 10) + { + Global::statusMessage(wrd.left(8) + ".."); + } + else + { + Global::statusMessage(wrd); + } #endif } if (m_doAnnotation) { -// addAnno(wrd, "Need to be able to edit this", posn); - m_annoWin->setName(line); - m_annoWin->setAnno(""); - m_annoWin->setPosn(posn); - m_annoIsEditing = true; +// addAnno(wrd, "Need to be able to edit this", posn); + m_annoWin->setName(line); + m_annoWin->setAnno(""); + m_annoWin->setPosn(posn); + m_annoIsEditing = true; #ifdef USEQPE - Global::showInputMethod(); + Global::showInputMethod(); #endif - editorStack->raiseWidget( m_annoWin ); + editorStack->raiseWidget( m_annoWin ); } #ifdef USEQPE if (m_doDictionary) { - if (!m_targetapp.isEmpty() && !m_targetmsg.isEmpty()) - { - QCopEnvelope e(("QPE/Application/"+m_targetapp).utf8(), (m_targetmsg+"(QString)").utf8()); - e << wrd; - } + if (!m_targetapp.isEmpty() && !m_targetmsg.isEmpty()) + { + QCopEnvelope e(("QPE/Application/"+m_targetapp).utf8(), (m_targetmsg+"(QString)").utf8()); + e << wrd; + } } #endif } void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e) { if (a == 0) { - e->ignore(); + e->ignore(); } else { - e->accept(); -// qDebug("Accepted"); - switch (a) - { - case cesOpenFile: - { - fileOpen(); - } - break; - case cesAutoScroll: - { - reader->setautoscroll(!reader->m_autoScroll); - setScrollState(reader->m_autoScroll); - } - break; - case cesActionMark: - { - addbkmk(); - } - break; - case cesFullScreen: - { - m_actFullscreen->setOn(!m_fullscreen); - } - break; - case cesActionAnno: - { - addanno(); - } - break; - case cesZoomIn: - zoomin(); - break; - case cesZoomOut: - zoomout(); - break; - case cesBack: - reader->goBack(); - break; - case cesForward: - reader->goForward(); - break; - case cesHome: - reader->goHome(); - break; - case cesPageUp: - reader->dopageup(); - break; - case cesPageDown: - reader->dopagedn(); - break; - case cesLineUp: - reader->lineUp(); - break; - case cesLineDown: - reader->lineDown(); - break; - case cesStartDoc: - gotoStart(); - break; - case cesEndDoc: - gotoEnd(); - break; - default: - qDebug("Unknown ActionType:%u", a); - break; - } + e->accept(); +// odebug << "Accepted" << oendl; + switch (a) + { + case cesOpenFile: + { + fileOpen(); + } + break; + case cesAutoScroll: + { + reader->setautoscroll(!reader->m_autoScroll); + setScrollState(reader->m_autoScroll); + } + break; + case cesActionMark: + { + addbkmk(); + } + break; + case cesFullScreen: + { + m_actFullscreen->setOn(!m_fullscreen); + } + break; + case cesActionAnno: + { + addanno(); + } + break; + case cesZoomIn: + zoomin(); + break; + case cesZoomOut: + zoomout(); + break; + case cesBack: + reader->goBack(); + break; + case cesForward: + reader->goForward(); + break; + case cesHome: + reader->goHome(); + break; + case cesPageUp: + reader->dopageup(); + break; + case cesPageDown: + reader->dopagedn(); + break; + case cesLineUp: + reader->lineUp(); + break; + case cesLineDown: + reader->lineDown(); + break; + case cesStartDoc: + gotoStart(); + break; + case cesEndDoc: + gotoEnd(); + break; + default: + odebug << "Unknown ActionType:" << a << "" << oendl; + break; + } } } void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); } -void QTReaderApp::restoreFocus() { reader->setFocus(); } +void QTReaderApp::restoreFocus() { reader->setFocus(); } void QTReaderApp::SaveConfig() { m_nRegAction = cSetConfigName; regEdit->setText(reader->m_string); do_regedit(); } void QTReaderApp::do_saveconfig(const QString& _txt, bool full) { -// qDebug("do_saveconfig:%s", (const char*)_txt); +// odebug << "do_saveconfig:" << _txt << "" << oendl; #ifdef USEQPE QString configname; Config::Domain dom; if (full) { - configname = _txt; - dom = Config::User; + configname = _txt; + dom = Config::User; } else { - configname = Global::applicationFileName(APPDIR "/configs", _txt); - dom = Config::File; + configname = Global::applicationFileName(APPDIR "/configs", _txt); + dom = Config::File; } Config config(configname, dom); config.setGroup( "View" ); #else - QFileInfo fi; - if (full) - { -// qDebug("full:%s", (const char*)_txt); - QDir d = QDir::home(); // "/" - if ( !d.cd(_txt) ) - { // "/tmp" - qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); - d = QDir::home(); - d.mkdir(_txt); - d.cd(_txt); - } - fi.setFile(d, INIFILE); - } - else - { - QDir d = QDir::home(); // "/" - if ( !d.cd(APPDIR) ) - { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); - } - if ( !d.cd("configs") ) - { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); - d = QDir::home(); - d.cd(APPDIR); - d.mkdir("configs"); - d.cd("configs"); - } - fi.setFile(d, _txt); - } -// qDebug("Path:%s", (const char*)fi.absFilePath()); - Config config(fi.absFilePath()); + QFileInfo fi; + if (full) + { +// odebug << "full:" << _txt << "" << oendl; + QDir d = QDir::home(); // "/" + if ( !d.cd(_txt) ) + { // "/tmp" + owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl; + d = QDir::home(); + d.mkdir(_txt); + d.cd(_txt); + } + fi.setFile(d, INIFILE); + } + else + { + QDir d = QDir::home(); // "/" + if ( !d.cd(APPDIR) ) + { // "/tmp" + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); + } + if ( !d.cd("configs") ) + { // "/tmp" + owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl; + d = QDir::home(); + d.cd(APPDIR); + d.mkdir("configs"); + d.cd("configs"); + } + fi.setFile(d, _txt); + } +// odebug << "Path:" << fi.absFilePath() << "" << oendl; + Config config(fi.absFilePath()); #endif config.writeEntry( "StripCr", reader->bstripcr ); config.writeEntry( "AutoFmt", reader->bautofmt ); config.writeEntry( "TextFmt", reader->btextfmt ); config.writeEntry( "StripHtml", reader->bstriphtml ); config.writeEntry( "Dehyphen", reader->bdehyphen ); config.writeEntry( "Depluck", reader->bdepluck ); config.writeEntry( "Dejpluck", reader->bdejpluck ); config.writeEntry( "OneSpace", reader->bonespace ); config.writeEntry( "Unindent", reader->bunindent ); config.writeEntry( "Repara", reader->brepara ); config.writeEntry( "DoubleSpace", reader->bdblspce ); config.writeEntry( "Indent", reader->bindenter ); config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); config.writeEntry( "ScrollDelay", reader->m_delay); if (full) { - config.writeEntry("Debounce", m_debounce); - config.writeEntry("FloatDialogs", m_bFloatingDialog); - reader->m_lastposn = reader->pagelocate(); - config.writeEntry( "LastFile", reader->m_lastfile ); - config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); + config.writeEntry("Debounce", m_debounce); + config.writeEntry("FloatDialogs", m_bFloatingDialog); + reader->m_lastposn = reader->pagelocate(); + config.writeEntry( "LastFile", reader->m_lastfile ); + config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); } config.writeEntry( "PageMode", reader->m_bpagemode ); config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); config.writeEntry( "SwapMouse", reader->m_swapmouse); config.writeEntry( "Fontname", reader->m_fontname ); config.writeEntry( "Encoding", reader->m_encd ); config.writeEntry( "CharSpacing", reader->m_charpc ); config.writeEntry( "Overlap", (int)(reader->m_overlap) ); config.writeEntry( "Margin", (int)reader->m_border ); config.writeEntry( "TargetApp", m_targetapp ); config.writeEntry( "TargetMsg", m_targetmsg ); #ifdef _SCROLLPIPE config.writeEntry( "PipeTarget", reader->m_pipetarget ); config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); #endif config.writeEntry( "TwoTouch", m_twoTouch ); config.writeEntry( "Annotation", m_doAnnotation); config.writeEntry( "Dictionary", m_doDictionary); config.writeEntry( "Clipboard", m_doClipboard); config.writeEntry( "SpaceTarget", m_spaceTarget); config.writeEntry( "EscapeTarget", m_escapeTarget); config.writeEntry( "ReturnTarget", m_returnTarget); config.writeEntry( "LeftTarget", m_leftTarget); config.writeEntry( "RightTarget", m_rightTarget); config.writeEntry( "UpTarget", m_upTarget); config.writeEntry( "DownTarget", m_downTarget); config.writeEntry("LeftScroll", m_leftScroll); config.writeEntry("RightScroll", m_rightScroll); config.writeEntry("UpScroll", m_upScroll); config.writeEntry("DownScroll", m_downScroll); #ifdef REPALM config.writeEntry( "Repalm", reader->brepalm ); #endif config.writeEntry( "Remap", reader->bremap ); config.writeEntry( "Peanut", reader->bpeanut ); config.writeEntry( "MakeBold", reader->bmakebold ); config.writeEntry( "Continuous", reader->m_continuousDocument ); config.writeEntry( "FullJust", reader->bfulljust ); config.writeEntry( "ExtraSpace", reader->getextraspace() ); config.writeEntry( "ExtraLead", reader->getlead() ); config.writeEntry( "Basesize", (int)reader->getBaseSize()); config.writeEntry( "RequestorFontChange", m_propogatefontchange); if (full) { - config.setGroup( "Toolbar" ); - config.writeEntry("Movable", m_tbmovesave); - config.writeEntry("Policy", m_tbpolsave); - config.writeEntry("Position", m_tbposition); + config.setGroup( "Toolbar" ); + config.writeEntry("Movable", m_tbmovesave); + config.writeEntry("Policy", m_tbpolsave); + config.writeEntry("Position", m_tbposition); #ifndef USEQPE - config.setGroup( "Geometry" ); - config.writeEntry( "x", x() ); - config.writeEntry( "y", y() ); - config.writeEntry( "width", width() ); - config.writeEntry( "height", height() ); + config.setGroup( "Geometry" ); + config.writeEntry( "x", x() ); + config.writeEntry( "y", y() ); + config.writeEntry( "width", width() ); + config.writeEntry( "height", height() ); #endif } } /* void QTReaderApp::setstate(unsigned char* _sd, unsigned short _sdlen) { unsigned short sdlen; memcpy(&sdlen, _sd, sizeof(sdlen)); sdlen -= sizeof(sdlen); _sd += sizeof(sdlen); statedata* sd; char* data; if (sdlen < sizeof(statedata)+1) { - sdlen = sizeof(statedata)+1; + sdlen = sizeof(statedata)+1; } data = new char[sdlen]; sd = (statedata*)data; memcpy(sd, _sd, sdlen); data[sdlen] = 0; reader->setstate(*sd); delete [] data; } void QTReaderApp::getstate(unsigned char*& data, unsigned short& len) { unsigned char* olddata = data; unsigned short oldlen = len; len = oldlen+sizeof(unsigned short)+sizeof(statedata)+reader->m_fontname.length(); data = new unsigned char[len]; memcpy(data, olddata, oldlen); delete [] olddata; memcpy(data+oldlen, &len, sizeof(len)); statedata* sd = (statedata*)(data+oldlen+sizeof(unsigned short)); sd->bstripcr = reader->bstripcr; sd->btextfmt = reader->btextfmt; sd->bautofmt = reader->bautofmt; sd->bstriphtml = reader->bstriphtml; @@ -3780,111 +3781,111 @@ void QTReaderApp::getstate(unsigned char*& data, unsigned short& len) sd->bdejpluck = reader->bdejpluck; sd->bonespace = reader->bonespace; sd->bunindent = reader->bunindent; sd->brepara = reader->brepara; sd->bdblspce = reader->bdblspce; sd->m_bpagemode = reader->m_bpagemode; sd->m_bMonoSpaced = reader->m_bMonoSpaced; sd->bremap = reader->bremap; sd->bmakebold = reader->bmakebold; sd->Continuous = reader->m_continuousDocument; #ifdef REPALM sd->brepalm = reader->brepalm; #endif sd->bindenter = reader->bindenter; sd->m_textsize = reader->m_textsize; //reader->m_fontControl.currentsize() sd->m_encd = reader->m_encd; sd->m_charpc = reader->m_charpc; strcpy(sd->m_fontname, reader->m_fontname.latin1()); } */ #ifdef _SCRIPT void QTReaderApp::RunScript() { fileBrowser* fb = new fileBrowser(this,"OpieReader",!m_bFloatingDialog, - 0, -// WStyle_Customize | WStyle_NoBorderEx, - "*", Global::applicationFileName(APPDIR "/scripts", "")); + 0, +// WStyle_Customize | WStyle_NoBorderEx, + "*", Global::applicationFileName(APPDIR "/scripts", "")); QString fn; if (fb->exec()) { - fn = fb->fileList[0]; + fn = fb->fileList[0]; } delete fb; if ( !fn.isEmpty() && fork() == 0 ) { - execlp((const char *)fn,(const char *)fn,NULL); + execlp((const char *)fn,(const char *)fn,NULL); } } void QTReaderApp::SaveScript(const char* sname) { FILE* f = fopen(sname,"w"); if (f != NULL) { #ifdef OPIE - fprintf(f, "#!/bin/sh\nmsg() {\n\tqcop QPE/Application/reader \"$1\" \"$2\" \"$3\"\n}\n"); + fprintf(f, "#!/bin/sh\nmsg() {\n\tqcop QPE/Application/reader \"$1\" \"$2\" \"$3\"\n}\n"); #else - fprintf(f, "#!/bin/bash\nmsg() {\n\tqcop QPE/Application/uqtreader \"$1\" \"$2\" \"$3\"\n}\n"); + fprintf(f, "#!/bin/bash\nmsg() {\n\tqcop QPE/Application/uqtreader \"$1\" \"$2\" \"$3\"\n}\n"); #endif - fprintf(f, "msg \"Update(int)\" 0\n"); - fprintf(f, "msg \"Layout/StripCR(int)\" %d\n", (reader->bstripcr) ? 1:0); - if (reader->btextfmt) fprintf(f, "msg \"Markup(QString)\" \"Text\"\n"); - else if (reader->bautofmt) fprintf(f, "msg \"Markup(QString)\" \"Auto\"\n"); - else if (reader->bstriphtml) fprintf(f, "msg \"Markup(QString)\" \"HTML\"\n"); - else if (reader->bpeanut) fprintf(f, "msg \"Markup(QString)\" \"Peanut/PML\"\n"); - else fprintf(f, "msg \"Markup(QString)\" \"None\"\n"); - fprintf(f, "msg \"Layout/Dehyphen(int)\" %d\n", (reader->bdehyphen) ? 1:0); - fprintf(f, "msg \"Layout/Depluck(int)\" %d\n", (reader->bdepluck) ? 1:0); - fprintf(f, "msg \"Layout/Dejpluck(int)\" %d\n", (reader->bdejpluck) ? 1:0); - fprintf(f, "msg \"Layout/SingleSpace(int)\" %d\n", (reader->bonespace) ? 1:0); - fprintf(f, "msg \"Layout/Unindent(int)\" %d\n", (reader->bunindent) ? 1:0); - fprintf(f, "msg \"Layout/Re-paragraph(int)\" %d\n", (reader->brepara) ? 1:0); - fprintf(f, "msg \"Layout/DoubleSpace(int)\" %d\n", (reader->bdblspce) ? 1:0); - fprintf(f, "msg \"Layout/Indent(int)\" %d\n", reader->bindenter); - fprintf(f, "msg \"Format/SetFont(QString,int)\" \"%s\" %d\n", (const char*)reader->m_fontname, reader->m_textsize); - fprintf(f, "msg \"Navigation/Page/LineScroll(int)\" %d\n", (reader->m_bpagemode) ? 1:0); - fprintf(f, "msg \"Format/Ideogram/Word(int)\" %d\n", (reader->m_bMonoSpaced) ? 1:0); - fprintf(f, "msg \"Format/Encoding(QString)\" \"%s\"\n", (const char*)m_EncodingAction[reader->m_encd]->text()); - fprintf(f, "msg \"Format/SetWidth(int)\" %d\n", reader->m_charpc); - fprintf(f, "msg \"Navigation/SetOverlap(int)\" %d\n", reader->m_overlap); - fprintf(f, "msg \"Layout/Remap(int)\" %d\n", (reader->bremap) ? 1:0); - fprintf(f, "msg \"Layout/Embolden(int)\" %d\n", (reader->bmakebold) ? 1:0); - fprintf(f, "msg \"File/Continuous(int)\" %d\n", (reader->m_continuousDocument) ? 1:0); - fprintf(f, "msg \"File/SetDictionary(QString)\" \"%s/%s\"\n", (const char *)m_targetapp, (const char *)m_targetmsg); + fprintf(f, "msg \"Update(int)\" 0\n"); + fprintf(f, "msg \"Layout/StripCR(int)\" %d\n", (reader->bstripcr) ? 1:0); + if (reader->btextfmt) fprintf(f, "msg \"Markup(QString)\" \"Text\"\n"); + else if (reader->bautofmt) fprintf(f, "msg \"Markup(QString)\" \"Auto\"\n"); + else if (reader->bstriphtml) fprintf(f, "msg \"Markup(QString)\" \"HTML\"\n"); + else if (reader->bpeanut) fprintf(f, "msg \"Markup(QString)\" \"Peanut/PML\"\n"); + else fprintf(f, "msg \"Markup(QString)\" \"None\"\n"); + fprintf(f, "msg \"Layout/Dehyphen(int)\" %d\n", (reader->bdehyphen) ? 1:0); + fprintf(f, "msg \"Layout/Depluck(int)\" %d\n", (reader->bdepluck) ? 1:0); + fprintf(f, "msg \"Layout/Dejpluck(int)\" %d\n", (reader->bdejpluck) ? 1:0); + fprintf(f, "msg \"Layout/SingleSpace(int)\" %d\n", (reader->bonespace) ? 1:0); + fprintf(f, "msg \"Layout/Unindent(int)\" %d\n", (reader->bunindent) ? 1:0); + fprintf(f, "msg \"Layout/Re-paragraph(int)\" %d\n", (reader->brepara) ? 1:0); + fprintf(f, "msg \"Layout/DoubleSpace(int)\" %d\n", (reader->bdblspce) ? 1:0); + fprintf(f, "msg \"Layout/Indent(int)\" %d\n", reader->bindenter); + fprintf(f, "msg \"Format/SetFont(QString,int)\" \"%s\" %d\n", (const char*)reader->m_fontname, reader->m_textsize); + fprintf(f, "msg \"Navigation/Page/LineScroll(int)\" %d\n", (reader->m_bpagemode) ? 1:0); + fprintf(f, "msg \"Format/Ideogram/Word(int)\" %d\n", (reader->m_bMonoSpaced) ? 1:0); + fprintf(f, "msg \"Format/Encoding(QString)\" \"%s\"\n", (const char*)m_EncodingAction[reader->m_encd]->text()); + fprintf(f, "msg \"Format/SetWidth(int)\" %d\n", reader->m_charpc); + fprintf(f, "msg \"Navigation/SetOverlap(int)\" %d\n", reader->m_overlap); + fprintf(f, "msg \"Layout/Remap(int)\" %d\n", (reader->bremap) ? 1:0); + fprintf(f, "msg \"Layout/Embolden(int)\" %d\n", (reader->bmakebold) ? 1:0); + fprintf(f, "msg \"File/Continuous(int)\" %d\n", (reader->m_continuousDocument) ? 1:0); + fprintf(f, "msg \"File/SetDictionary(QString)\" \"%s/%s\"\n", (const char *)m_targetapp, (const char *)m_targetmsg); #ifdef _SCROLLPIPE - fprintf(f, "msg \"File/SetScrollTarget(QString)\" \"%s\"\n", (const char *)reader->m_pipetarget); + fprintf(f, "msg \"File/SetScrollTarget(QString)\" \"%s\"\n", (const char *)reader->m_pipetarget); #endif - fprintf(f, "msg \"File/Two/OneTouch(int)\" %d\n", (m_twoTouch) ? 1:0); - fprintf(f, "msg \"Target/Annotation(int)\" %d\n", (m_doAnnotation) ? 1:0); - fprintf(f, "msg \"Target/Dictionary(int)\" %d\n", (m_doDictionary) ? 1:0); - fprintf(f, "msg \"Target/Clipboard(int)\" %d\n", (m_doClipboard) ? 1:0); - fprintf(f, "msg \"File/Action(QString)\" \"%s\"\n", (const char *)m_buttonAction[m_spaceTarget]->text()); - fprintf(f, "msg \"Update(int)\" 1\n"); - fprintf(f, "msg \"info(QString)\" \"All Done\"\n"); - fclose(f); - chmod(sname, S_IXUSR | S_IXGRP | S_IXOTH); + fprintf(f, "msg \"File/Two/OneTouch(int)\" %d\n", (m_twoTouch) ? 1:0); + fprintf(f, "msg \"Target/Annotation(int)\" %d\n", (m_doAnnotation) ? 1:0); + fprintf(f, "msg \"Target/Dictionary(int)\" %d\n", (m_doDictionary) ? 1:0); + fprintf(f, "msg \"Target/Clipboard(int)\" %d\n", (m_doClipboard) ? 1:0); + fprintf(f, "msg \"File/Action(QString)\" \"%s\"\n", (const char *)m_buttonAction[m_spaceTarget]->text()); + fprintf(f, "msg \"Update(int)\" 1\n"); + fprintf(f, "msg \"info(QString)\" \"All Done\"\n"); + fclose(f); + chmod(sname, S_IXUSR | S_IXGRP | S_IXOTH); } } void QTReaderApp::SaveConfig() { m_nRegAction = cSetConfigName; regEdit->setText(""); do_regedit(); } void QTReaderApp::do_saveconfig(const QString& _txt) { SaveScript(Global::applicationFileName(APPDIR "/scripts", _txt)); } #endif #ifdef _SCROLLPIPE void QTReaderApp::setpipetarget() { m_nRegAction = cSetPipeTarget; QString text = (reader->m_pipetarget.isEmpty()) ? QString("") : reader->m_pipetarget; regEdit->setText(text); do_regedit(); } @@ -3892,330 +3893,330 @@ void QTReaderApp::setpipetarget() void QTReaderApp::do_setpipetarget(const QString& _txt) { reader->m_pipetarget = _txt; } void QTReaderApp::setpause(bool sfs) { reader->m_pauseAfterEachPara = sfs; } #endif void QTReaderApp::monospace(bool _b) { reader->setmono(_b); } bool QTReaderApp::readconfig(const QString& _txt, bool full=false) { #ifdef USEQPE QString configname; Config::Domain dom; if (full) { - configname = _txt; - dom = Config::User; + configname = _txt; + dom = Config::User; } else { - configname = Global::applicationFileName(APPDIR "/configs", _txt); - QFileInfo fm(configname); - if ( !fm.exists() ) return false; - dom = Config::File; + configname = Global::applicationFileName(APPDIR "/configs", _txt); + QFileInfo fm(configname); + if ( !fm.exists() ) return false; + dom = Config::File; } Config config(configname, dom); config.setGroup( "View" ); #else - QFileInfo fi; - if (full) - { - QDir d = QDir::home(); // "/" - if ( !d.cd(_txt) ) - { // "/tmp" - qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); - d = QDir::home(); - d.mkdir(_txt); - d.cd(_txt); - } - fi.setFile(d, INIFILE); - } - else - { - QDir d = QDir::home(); // "/" - if ( !d.cd(APPDIR) ) - { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); - } - if ( !d.cd("configs") ) - { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); - d = QDir::home(); - d.mkdir("configs"); - d.cd("configs"); - } - fi.setFile(d, _txt); - } + QFileInfo fi; + if (full) + { + QDir d = QDir::home(); // "/" + if ( !d.cd(_txt) ) + { // "/tmp" + owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl; + d = QDir::home(); + d.mkdir(_txt); + d.cd(_txt); + } + fi.setFile(d, INIFILE); + } + else + { + QDir d = QDir::home(); // "/" + if ( !d.cd(APPDIR) ) + { // "/tmp" + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); + } + if ( !d.cd("configs") ) + { // "/tmp" + owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl; + d = QDir::home(); + d.mkdir("configs"); + d.cd("configs"); + } + fi.setFile(d, _txt); + } #ifdef _WINDOWS - struct stat fnstat; + struct stat fnstat; if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows #else - if (!fi.exists()) return false; + if (!fi.exists()) return false; #endif - Config config(fi.absFilePath()); + Config config(fi.absFilePath()); #endif if (full) { - config.setGroup("Toolbar"); - m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); - m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); - m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); + config.setGroup("Toolbar"); + m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); + m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); + m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); } config.setGroup( "View" ); m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); reader->bstripcr = config.readBoolEntry( "StripCr", true ); reader->bfulljust = config.readBoolEntry( "FullJust", false ); reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); reader->setlead(config.readNumEntry( "ExtraLead", 0 )); reader->btextfmt = config.readBoolEntry( "TextFmt", false ); reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); reader->bpeanut = config.readBoolEntry( "Peanut", false ); reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); reader->bdepluck = config.readBoolEntry( "Depluck", false ); reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); reader->bonespace = config.readBoolEntry( "OneSpace", false ); reader->bunindent = config.readBoolEntry( "Unindent", false ); reader->brepara = config.readBoolEntry( "Repara", false ); reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); reader->bindenter = config.readNumEntry( "Indent", 0 ); reader->m_textsize = config.readNumEntry( "FontSize", 12 ); reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); if (full) { - reader->m_lastfile = config.readEntry( "LastFile", QString::null ); - reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); + reader->m_lastfile = config.readEntry( "LastFile", QString::null ); + reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); } reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); reader->m_encd = config.readNumEntry( "Encoding", 0 ); reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); reader->m_overlap = config.readNumEntry( "Overlap", 0 ); reader->m_border = config.readNumEntry( "Margin", 6 ); #ifdef REPALM reader->brepalm = config.readBoolEntry( "Repalm", true ); #endif reader->bremap = config.readBoolEntry( "Remap", true ); reader->bmakebold = config.readBoolEntry( "MakeBold", false ); reader->setContinuous(config.readBoolEntry( "Continuous", true )); m_targetapp = config.readEntry( "TargetApp", QString::null ); m_targetmsg = config.readEntry( "TargetMsg", QString::null ); #ifdef _SCROLLPIPE reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); #endif m_twoTouch = config.readBoolEntry( "TwoTouch", false); m_doAnnotation = config.readBoolEntry( "Annotation", false); m_doDictionary = config.readBoolEntry( "Dictionary", false); m_doClipboard = config.readBoolEntry( "Clipboard", false); m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); m_leftScroll = config.readBoolEntry("LeftScroll", false); m_rightScroll = config.readBoolEntry("RightScroll", false); m_upScroll = config.readBoolEntry("UpScroll", true); m_downScroll = config.readBoolEntry("DownScroll", true); m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); reader->setTwoTouch(m_twoTouch); m_touch_action->setOn(m_twoTouch); m_setmono_action->setOn(reader->m_bMonoSpaced); setfontHelper(reader->m_fontname); if (full) { - addtoolbars(&config); + addtoolbars(&config); } reader->setfilter(reader->getfilter()); reader->refresh(); return true; } bool QTReaderApp::PopulateConfig(const char* tgtdir) { bkmkselector->clear(); bkmkselector->setText("Cancel"); #ifndef USEQPE int cnt = 0; QDir d = QDir::home(); // "/" if ( !d.cd(APPDIR) ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); } if ( !d.cd(tgtdir) ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir ); - d = QDir::home(); - d.mkdir(tgtdir); - d.cd(tgtdir); + owarn << "Cannot find the \"~/" APPDIR "/" << tgtdir << "\" directory" << oendl; + d = QDir::home(); + d.mkdir(tgtdir); + d.cd(tgtdir); } d.setFilter( QDir::Files | QDir::NoSymLinks ); // d.setSorting( QDir::Size | QDir::Reversed ); const QFileInfoList *list = d.entryInfoList(); QFileInfoListIterator it( *list ); // create list iterator QFileInfo *fi; // pointer for traversing while ( (fi=it.current()) ) { // for each file... - - bkmkselector->insertItem(fi->fileName()); - cnt++; - - //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); - ++it; // goto next list element - } - + + bkmkselector->insertItem(fi->fileName()); + cnt++; + + //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl; + ++it; // goto next list element + } + #else /* USEQPE */ int cnt = 0; DIR *d; char* finaldir; finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1]; strcpy(finaldir, APPDIR); strcat(finaldir, "/"); strcat(finaldir, tgtdir); d = opendir((const char *)Global::applicationFileName(finaldir,"")); while(1) { - struct dirent* de; - struct stat buf; - de = readdir(d); - if (de == NULL) break; + struct dirent* de; + struct stat buf; + de = readdir(d); + if (de == NULL) break; - if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) - { - bkmkselector->insertItem(de->d_name); - cnt++; - } + if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) + { + bkmkselector->insertItem(de->d_name); + cnt++; + } } delete [] finaldir; closedir(d); #endif return (cnt > 0); } void QTReaderApp::LoadConfig() { if (PopulateConfig("configs")) { editorStack->raiseWidget( bkmkselector ); hidetoolbars(); - m_nBkmkAction = cLdConfig; + m_nBkmkAction = cLdConfig; } else QMessageBox::information(this, PROGNAME, "No config files"); } void QTReaderApp::TidyConfig() { if (PopulateConfig("configs")) { editorStack->raiseWidget( bkmkselector ); hidetoolbars(); - m_nBkmkAction = cRmConfig; + m_nBkmkAction = cRmConfig; } else QMessageBox::information(this, PROGNAME, "No config files"); } void QTReaderApp::ExportLinks() { if (PopulateConfig("urls")) { editorStack->raiseWidget( bkmkselector ); hidetoolbars(); - m_nBkmkAction = cExportLinks; + m_nBkmkAction = cExportLinks; } else QMessageBox::information(this, PROGNAME, "No url files"); } void QTReaderApp::OnURLSelected(const QString& href) { CURLDialog* urld = new CURLDialog(href, false, this); urld->clipboard(m_url_clipboard); urld->localfile(m_url_localfile); urld->globalfile(m_url_globalfile); if (urld->exec()) { - m_url_clipboard = urld->clipboard(); - m_url_localfile = urld->localfile(); - m_url_globalfile = urld->globalfile(); - if (m_url_clipboard) - { - QClipboard* cb = QApplication::clipboard(); - cb->setText(href); - qDebug("<a href=\"%s\">%s</a>", (const char*)href, (const char*)href); - } - if (m_url_localfile) - { - writeUrl(reader->m_string, href); - } - if (m_url_globalfile) - { - writeUrl("GlobalURLFile", href); - } + m_url_clipboard = urld->clipboard(); + m_url_localfile = urld->localfile(); + m_url_globalfile = urld->globalfile(); + if (m_url_clipboard) + { + QClipboard* cb = QApplication::clipboard(); + cb->setText(href); + odebug << "<a href=\"" << href << "\">" << href << "</a>" << oendl; + } + if (m_url_localfile) + { + writeUrl(reader->m_string, href); + } + if (m_url_globalfile) + { + writeUrl("GlobalURLFile", href); + } } delete urld; } void QTReaderApp::writeUrl(const QString& file, const QString& href) { QString filename; #ifdef USEQPE filename = Global::applicationFileName(APPDIR "/urls", file); #else QFileInfo fi; QDir d = QDir::home(); // "/" if ( !d.cd(APPDIR) ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); - d = QDir::home(); - d.mkdir(APPDIR); - d.cd(APPDIR); + owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; + d = QDir::home(); + d.mkdir(APPDIR); + d.cd(APPDIR); } if ( !d.cd("urls") ) { // "/tmp" - qWarning( "Cannot find the \"~/" APPDIR "/urls\" directory" ); - d = QDir::home(); - d.cd(APPDIR); - d.mkdir("urls"); - d.cd("urls"); + owarn << "Cannot find the \"~/" APPDIR "/urls\" directory" << oendl; + d = QDir::home(); + d.cd(APPDIR); + d.mkdir("urls"); + d.cd("urls"); } fi.setFile(d, file); filename = fi.absFilePath(); #endif FILE* fout = fopen(filename, "a"); if (fout != NULL) { - fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href); - fclose(fout); + fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href); + fclose(fout); } else { - QMessageBox::warning(this, PROGNAME, "Problem with writing URL"); + QMessageBox::warning(this, PROGNAME, "Problem with writing URL"); } } 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,33 +1,33 @@ #include <qimage.h> #include "StyleConsts.h" GraphicLink::~GraphicLink() { delete graphic; } pmstore::~pmstore() { -//// qDebug("Deleting image"); +//// odebug << "Deleting image" << oendl; delete graphic; } CStyle::~CStyle() { if (graphic != NULL) { if (--(graphic->count) == 0) { delete graphic; } } } CStyle::CStyle(const CStyle& rhs) : graphic(NULL) { *this = rhs; } CStyle& CStyle::operator=(const CStyle& rhs) { if (rhs.graphic != NULL) { (rhs.graphic->count)++; 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 @@ -111,94 +111,94 @@ fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, boo currentDir.setPath(QDir::currentDirPath()); chdir(QDir::currentDirPath().latin1()); } populateList(); if (modal) QPEApplication::showDialog( this ); } void fileBrowser::resizeEvent(QResizeEvent* e) { ListView->setColumnWidth(1,(ListView->width())/4); ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1)); } fileBrowser::~fileBrowser() { } void fileBrowser::populateList() { ListView->clear(); -////qDebug(currentDir.canonicalPath()); +////odebug << currentDir.canonicalPath() << oendl; // currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks ); currentDir.setFilter( filterspec ); currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentDir.setMatchAllDirs(TRUE); currentDir.setNameFilter(filterStr); // currentDir.setNameFilter("*.txt;*.etx"); QString fileL, fileS; const QFileInfoList *list = currentDir.entryInfoList(); QFileInfoListIterator it(*list); QFileInfo *fi; while ( (fi=it.current()) ) { if (fi->fileName() != ".") { fileS.sprintf( "%10li", fi->size() ); fileL.sprintf( "%s",fi->fileName().data() ); if( fi->isDir() ) { fileL+="/"; } else { -//// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); +//// odebug << "Not a dir: "+currentDir.canonicalPath()+fileL << oendl; } new QListViewItem( ListView,fileL,fileS ); } ++it; } ListView->setSorting( 2, FALSE); dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); ListView->setFocus(); } void fileBrowser::upDir() { -//// qDebug(currentDir.canonicalPath()); +//// odebug << currentDir.canonicalPath() << oendl; } void fileBrowser::listClicked(QListViewItem *selectedItem) { if (selectedItem == NULL) return; QString strItem=selectedItem->text(0); -//// qDebug("%s", (const char*)strItem); +//// odebug << "" << strItem << "" << oendl; QString strSize=selectedItem->text(1); strSize.stripWhiteSpace(); bool ok; QFileInfo fi(strItem); while (fi.isSymLink()) fi.setFile(fi.readLink()); if (fi.isDir()) { strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); if(QDir(strItem).exists()) { currentDir.cd(strItem, TRUE); populateList(); } } else { QListViewItem *selectedItem = ListView->selectedItem(); if (selectedItem == NULL) { 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 @@ -1,26 +1,26 @@ -CONFIG = qt warn_on -HEADERS = Aportis.h \ +CONFIG = qt warn_on +HEADERS = Aportis.h \ Bkmks.h \ BuffDoc.h \ CAnnoEdit.h \ CBuffer.h \ CDrawBuffer.h \ CEncoding.h \ CEncoding_tables.h \ CExpander.h \ CFilter.h \ CloseDialog.h \ Filedata.h \ FixedFont.h \ FontControl.h \ GraphicWin.h \ Markups.h \ Navigation.h \ Palm2QImage.h \ Prefs.h \ QFloatBar.h \ QTReader.h \ QTReaderApp.h \ QtrListView.h \ Queue.h \ StateData.h \ @@ -28,65 +28,65 @@ HEADERS = Aportis.h \ ToolbarPrefs.h \ URLDialog.h \ ZText.h \ arith.h \ cbkmkselector.h \ config.h \ fileBrowser.h \ infowin.h \ linktype.h \ my_list.h \ names.h \ opie.h \ pdb.h \ plucker_base.h \ plucker.h \ ppm.h \ ppm_expander.h \ usenef.h \ useqpe.h \ ustring.h \ utypes.h \ version.h \ ztxt.h -SOURCES = Aportis.cpp \ +SOURCES = Aportis.cpp \ Bkmks.cpp \ BuffDoc.cpp \ CBuffer.cpp \ CDrawBuffer.cpp \ CEncoding.cpp \ CEncoding_tables.cpp \ CFilter.cpp \ CloseDialog.cpp \ FontControl.cpp \ Navigation.cpp \ Palm2QImage.cpp \ Prefs.cpp \ QTReader.cpp \ QTReaderApp.cpp \ QtrListView.cpp \ StyleConsts.cpp \ ToolbarPrefs.cpp \ URLDialog.cpp \ arith_d.cpp \ fileBrowser.cpp \ infowin.cpp \ main.cpp \ pdb.cpp \ plucker.cpp \ plucker_base.cpp \ ppm.cpp \ ppm_expander.cpp \ version.cpp \ ztxt.cpp DESTDIR = $(OPIEDIR)/bin TARGET = reader -INCLUDEPATH += $(OPIEDIR)/include -DEPENDPATH += $(OPIEDIR)/include -LIBS += -lqpe +INCLUDEPATH += $(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe -lopiecore2 include ( $(OPIEDIR)/include.pro ) 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 @@ -36,83 +36,83 @@ void CPlucker::GetHeader(UInt16& uid, UInt16& nParagraphs, UInt32& size, UInt8& CPlucker_dataRecord thishdr; fread(&thishdr, 1, HeaderSize(), fin); uid = ntohs(thishdr.uid); nParagraphs = ntohs(thishdr.nParagraphs); size = ntohs(thishdr.size); type = thishdr.type; reserved = thishdr.reserved; } CPlucker::CPlucker() { /*printf("constructing:%x\n",fin);*/ } bool CPlucker::CorrectDecoder() { return (memcmp(&head.type, "DataPlkr", 8) == 0); } int CPlucker::bgetch() { int ch = EOF; if (bufferpos >= buffercontent) { if (!m_continuous) return EOF; if (bufferrec >= ntohs(head.recordList.numRecords) - 1) return EOF; -//// qDebug("Passing through %u", currentpos); +//// odebug << "Passing through " << currentpos << "" << oendl; if (!expand(bufferrec+1)) return EOF; mystyle.unset(); if (m_ParaOffsets[m_nextParaIndex] == 0) { while (m_ParaOffsets[m_nextParaIndex+1] == 0) { -// qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); +// odebug << "Skipping extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl; m_nextParaIndex++; } } mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); -// qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); +// odebug << "Using extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl; ch = 10; EOPPhase = 4; } else if (bufferpos == m_nextPara) { while (bufferpos == m_nextPara) { UInt16 attr = m_ParaAttrs[m_nextParaIndex]; m_nextParaIndex++; -// qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); +// odebug << "Skipping extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl; if (m_nextParaIndex == m_nParas) { m_nextPara = -1; } else { m_nextPara += m_ParaOffsets[m_nextParaIndex]; } } mystyle.unset(); mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); -// qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); +// odebug << "Using extraspace:" << m_ParaAttrs[m_nextParaIndex]&7 << "" << oendl; if (m_lastBreak == locate()) { currentpos++; ch = expandedtextbuffer[bufferpos++]; } else { ch = 10; } } else { currentpos++; ch = expandedtextbuffer[bufferpos++]; } return ch; } tchar CPlucker::getch(bool fast) { mystyle.clearPicture(); if (EOPPhase > 0) { 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,479 +1,487 @@ + + #include "useqpe.h" -#include <stdio.h> -#include <string.h> +#include "plucker_base.h" +#include "Aportis.h" +#include "Palm2QImage.h" + +/* OPIE */ +#include <opie2/odebug.h> #ifdef USEQPE #include <qpe/qcopenvelope_qws.h> -#endif /* USEQPE */ -#ifdef LOCALPICTURES -#include <qscrollview.h> -#endif -#ifdef USEQPE #include <qpe/global.h> #endif /* USEQPE */ + #ifndef USEQPE #include <qapplication.h> #else /* USEQPE */ #include <qpe/qpeapplication.h> #endif /* USEQPE */ -#include "plucker_base.h" -#include "Aportis.h" -#include "Palm2QImage.h" +/* QT */ +#ifdef LOCALPICTURES +#include <qscrollview.h> +#endif + +/* STD */ +#include <stdio.h> +#include <string.h> + CPlucker_base::CPlucker_base() : #ifdef LOCALPICTURES m_viewer(NULL), m_picture(NULL), #endif expandedtextbuffer(NULL), compressedtextbuffer(NULL) //, urls(NULL) { /*printf("constructing:%x\n",fin);*/ } void CPlucker_base::Expand(UInt32 reclen, UInt8 type, UInt8* buffer, UInt32 buffersize) { if (type%2 == 0) { - fread(buffer, reclen, sizeof(char), fin); + fread(buffer, reclen, sizeof(char), fin); } else { - UInt8* readbuffer = NULL; - if (reclen > compressedbuffersize) - { - readbuffer = new UInt8[reclen]; - } - else - { - readbuffer = compressedtextbuffer; - } - if (readbuffer != NULL) - { - fread(readbuffer, reclen, sizeof(char), fin); - switch (ntohs(hdr0.version)) - { - case 2: - UnZip(readbuffer, reclen, buffer, buffersize); - break; - case 1: - UnDoc(readbuffer, reclen, buffer, buffersize); - break; - } - if (reclen > compressedbuffersize) - { - delete [] readbuffer; - } - } + UInt8* readbuffer = NULL; + if (reclen > compressedbuffersize) + { + readbuffer = new UInt8[reclen]; + } + else + { + readbuffer = compressedtextbuffer; + } + if (readbuffer != NULL) + { + fread(readbuffer, reclen, sizeof(char), fin); + switch (ntohs(hdr0.version)) + { + case 2: + UnZip(readbuffer, reclen, buffer, buffersize); + break; + case 1: + UnDoc(readbuffer, reclen, buffer, buffersize); + break; + } + if (reclen > compressedbuffersize) + { + delete [] readbuffer; + } + } } } void CPlucker_base::sizes(unsigned long& _file, unsigned long& _text) { _file = file_length; if (textlength == 0) { - for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) - { - gotorecordnumber(recptr); - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size; - UInt8 thishdr_type, thishdr_reserved; - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type < 2) textlength += thishdr_size; - } + for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) + { + gotorecordnumber(recptr); + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size; + UInt8 thishdr_type, thishdr_reserved; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_type < 2) textlength += thishdr_size; + } } _text = textlength; //ntohl(hdr0.size); } char* CPlucker_base::geturl(UInt16 tgt) { char * pRet = NULL; gotorecordnumber(0); fread(&hdr0, 1, 6, fin); unsigned int nrecs = ntohs(hdr0.nRecords); - //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); + //odebug << "Version " << ntohs(hdr0.version) << ", no. recs " << nrecs << "" << oendl; UInt16 urlid = 0; bool urlsfound = false; char* urls = NULL; size_t urlsize = 0; for (unsigned int i = 0; i < nrecs; i++) { - UInt16 id, name; - fread(&name, 1, sizeof(name), fin); - fread(&id, 1, sizeof(id), fin); - //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); - if (ntohs(name) == 2) - { - urlsfound = true; - urlid = id; - //qDebug("Found url index:%d", ntohs(urlid)); - } -// //qDebug("%x", id); + UInt16 id, name; + fread(&name, 1, sizeof(name), fin); + fread(&id, 1, sizeof(id), fin); + //odebug << "N:" << ntohs(name) << ", I:" << ntohs(id) << "" << oendl; + if (ntohs(name) == 2) + { + urlsfound = true; + urlid = id; + //odebug << "Found url index:" << ntohs(urlid) << "" << oendl; + } +// //odebug << "" << id << "" << oendl; } if (urlsfound) { - unsigned short recptr = finduid(ntohs(urlid)); - if (recptr != 0) - { - gotorecordnumber(recptr); - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size; - UInt8 thishdr_type, thishdr_reserved; - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - UInt16 urlctr = 0; - while (1) - { - UInt16 tctr; - fread(&tctr, 1, sizeof(tctr), fin); - fread(&urlid, 1, sizeof(urlid), fin); - tctr = ntohs(tctr); - //qDebug("tgt:%u urlctr:%u tctr:%u", tgt, urlctr, tctr); - if (tctr >= tgt) - { - break; - } - urlctr = tctr; - } - //qDebug("urls are in %d", ntohs(urlid)); - recptr = finduid(ntohs(urlid)); - if (recptr != 0) - { - UInt32 reclen = recordlength(recptr) - HeaderSize(); - gotorecordnumber(recptr); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - //qDebug("Found urls:%x",thishdr_type); - urlsize = thishdr_size; - urls = new char[urlsize]; - Expand(reclen, thishdr_type, (UInt8*)urls, urlsize); - char* ptr = urls; - int rn = urlctr+1; - while (ptr - urls < urlsize) - { - if (rn == tgt) - { - //qDebug("URL:%s", ptr); - int len = strlen(ptr)+1; - pRet = new char[len]; - memcpy(pRet, ptr, len); - break; - } - ptr += strlen(ptr)+1; - rn++; - } - delete [] urls; - } - } + unsigned short recptr = finduid(ntohs(urlid)); + if (recptr != 0) + { + gotorecordnumber(recptr); + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size; + UInt8 thishdr_type, thishdr_reserved; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + UInt16 urlctr = 0; + while (1) + { + UInt16 tctr; + fread(&tctr, 1, sizeof(tctr), fin); + fread(&urlid, 1, sizeof(urlid), fin); + tctr = ntohs(tctr); + //odebug << "tgt:" << tgt << " urlctr:" << urlctr << " tctr:" << tctr << "" << oendl; + if (tctr >= tgt) + { + break; + } + urlctr = tctr; + } + //odebug << "urls are in " << ntohs(urlid) << "" << oendl; + recptr = finduid(ntohs(urlid)); + if (recptr != 0) + { + UInt32 reclen = recordlength(recptr) - HeaderSize(); + gotorecordnumber(recptr); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + //odebug << "Found urls:" << thishdr_type << "" << oendl; + urlsize = thishdr_size; + urls = new char[urlsize]; + Expand(reclen, thishdr_type, (UInt8*)urls, urlsize); + char* ptr = urls; + int rn = urlctr+1; + while (ptr - urls < urlsize) + { + if (rn == tgt) + { + //odebug << "URL:" << ptr << "" << oendl; + int len = strlen(ptr)+1; + pRet = new char[len]; + memcpy(pRet, ptr, len); + break; + } + ptr += strlen(ptr)+1; + rn++; + } + delete [] urls; + } + } } else { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("No external links\nin this pluck") - ); + QMessageBox::information(NULL, + QString(PROGNAME), + QString("No external links\nin this pluck") + ); } return pRet; } CPlucker_base::~CPlucker_base() { if (expandedtextbuffer != NULL) delete [] expandedtextbuffer; if (compressedtextbuffer != NULL) delete [] compressedtextbuffer; #ifdef LOCALPICTURES if (m_viewer != NULL) delete m_viewer; #endif } int CPlucker_base::getch() { return getch(false); } void CPlucker_base::getch(tchar& ch, CStyle& sty) { ch = getch(false); sty = mystyle; } unsigned int CPlucker_base::locate() { return currentpos; /* UInt16 thisrec = 1; unsigned long locpos = 0; gotorecordnumber(thisrec); UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; while (thisrec < bufferrec) { GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type < 2) locpos += thishdr_size; - thisrec++; - gotorecordnumber(thisrec); + if (thishdr_type < 2) locpos += thishdr_size; + thisrec++; + gotorecordnumber(thisrec); } return locpos+bufferpos; */ } void CPlucker_base::locate(unsigned int n) { // clock_t start = clock(); UInt32 textlength = currentpos - bufferpos; UInt16 recptr = bufferrec; if (n < textlength/2) { - textlength = 0; - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size = buffercontent; - UInt8 thishdr_type, thishdr_reserved; - for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) - { - gotorecordnumber(recptr); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type < 2) - { - textlength += thishdr_size; - if (textlength > n) - { - textlength -= thishdr_size; - break; - } - } - } + textlength = 0; + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size = buffercontent; + UInt8 thishdr_type, thishdr_reserved; + for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) + { + gotorecordnumber(recptr); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_type < 2) + { + textlength += thishdr_size; + if (textlength > n) + { + textlength -= thishdr_size; + break; + } + } + } } else if (n < textlength) { - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size; - UInt8 thishdr_type, thishdr_reserved; - while (n < textlength && recptr > 1) - { - recptr--; - gotorecordnumber(recptr); - //qDebug("recptr:%u", recptr); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type < 2) - { - textlength -= thishdr_size; - } - } + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size; + UInt8 thishdr_type, thishdr_reserved; + while (n < textlength && recptr > 1) + { + recptr--; + gotorecordnumber(recptr); + //odebug << "recptr:" << recptr << "" << oendl; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_type < 2) + { + textlength -= thishdr_size; + } + } } else { - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size = buffercontent; - UInt8 thishdr_type, thishdr_reserved; - while (n > textlength + thishdr_size && recptr < ntohs(head.recordList.numRecords)-1) - { - textlength += thishdr_size; - recptr++; - gotorecordnumber(recptr); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (!(thishdr_type < 2)) - { - thishdr_size = 0; - } - } - } -// qDebug("Time(1): %u", clock()-start); + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size = buffercontent; + UInt8 thishdr_type, thishdr_reserved; + while (n > textlength + thishdr_size && recptr < ntohs(head.recordList.numRecords)-1) + { + textlength += thishdr_size; + recptr++; + gotorecordnumber(recptr); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (!(thishdr_type < 2)) + { + thishdr_size = 0; + } + } + } +// odebug << "Time(1): " << clock()-start << "" << oendl; /* expand(recptr); mystyle.unset(); bufferpos = n-textlength; currentpos = n; while (bufferpos >= m_nextPara && m_nextPara >= 0) { - UInt16 attr = m_ParaAttrs[m_nextParaIndex]; - m_nextParaIndex++; - if (m_nextParaIndex == m_nParas) - { - m_nextPara = -1; - } - else - { - m_nextPara += m_ParaOffsets[m_nextParaIndex]; - } + UInt16 attr = m_ParaAttrs[m_nextParaIndex]; + m_nextParaIndex++; + if (m_nextParaIndex == m_nParas) + { + m_nextPara = -1; + } + else + { + m_nextPara += m_ParaOffsets[m_nextParaIndex]; + } } return; */ // start = clock(); UInt16 thisrec = 0; unsigned long locpos = 0; unsigned long bs = 0; UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; do { - thisrec++; - locpos += bs; - gotorecordnumber(thisrec); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type < 2) - { - bs = thishdr_size; - } - else - { - bs = 0; - } + thisrec++; + locpos += bs; + gotorecordnumber(thisrec); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_type < 2) + { + bs = thishdr_size; + } + else + { + bs = 0; + } } while (locpos + bs <= n); -// qDebug("Time(2): %u", clock()-start); +// odebug << "Time(2): " << clock()-start << "" << oendl; if (recptr != thisrec) { - qDebug("Disaster:recptr:%u thisrec:%u", recptr, thisrec); - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size = buffercontent; - UInt8 thishdr_type, thishdr_reserved; - for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) - { - gotorecordnumber(recptr); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); -// 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); - } -// QApplication::exit ( 100 ); + odebug << "Disaster:recptr:" << recptr << " thisrec:" << thisrec << "" << oendl; + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size = buffercontent; + UInt8 thishdr_type, thishdr_reserved; + for (recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) + { + gotorecordnumber(recptr); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); +// odebug << "UID:" << thishdr_uid << " Paras:" << thishdr_nParagraphs << " Size:" << thishdr_size << " Type:" << (unsigned int)thishdr_type << " Reserved:" << (unsigned int)thishdr_reserved << "" << oendl; + } +// QApplication::exit ( 100 ); } currentpos = locpos; expand(thisrec); while (currentpos < n && bufferpos < buffercontent) getch_base(true); /* // This is faster but the alignment attribute doesn't get set 8^( bufferpos = n-locpos; currentpos = n; while (bufferpos >= m_nextPara && m_nextPara >= 0) { - UInt16 attr = m_ParaAttrs[m_nextParaIndex]; - m_nextParaIndex++; - if (m_nextParaIndex == m_nParas) - { - m_nextPara = -1; - } - else - { - m_nextPara += m_ParaOffsets[m_nextParaIndex]; - } + UInt16 attr = m_ParaAttrs[m_nextParaIndex]; + m_nextParaIndex++; + if (m_nextParaIndex == m_nParas) + { + m_nextPara = -1; + } + else + { + m_nextPara += m_ParaOffsets[m_nextParaIndex]; + } } */ } bool CPlucker_base::expand(int thisrec) { mystyle.unset(); size_t reclen = recordlength(thisrec); gotorecordnumber(thisrec); UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; while (1) { - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - //qDebug("This (%d) type is %d, uid is %u", thisrec, thishdr_type, thishdr_uid); - if (thishdr_type < 2) break; - //qDebug("Skipping paragraph of type %d", thishdr_type); - if (++thisrec >= ntohs(head.recordList.numRecords) - 1) return false; - reclen = recordlength(thisrec); - gotorecordnumber(thisrec); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + //odebug << "This (" << thisrec << ") type is " << thishdr_type << ", uid is " << thishdr_uid << "" << oendl; + if (thishdr_type < 2) break; + //odebug << "Skipping paragraph of type " << thishdr_type << "" << oendl; + if (++thisrec >= ntohs(head.recordList.numRecords) - 1) return false; + reclen = recordlength(thisrec); + gotorecordnumber(thisrec); } m_nParas = thishdr_nParagraphs; m_bufferisreserved = (thishdr_reserved != 0); - //qDebug("It has %u paragraphs and is %u bytes", thishdr_nParagraphs, thishdr_size); + //odebug << "It has " << thishdr_nParagraphs << " paragraphs and is " << thishdr_size << " bytes" << oendl; uid = thishdr_uid; // gotorecordnumber(thisrec); // fread(expandedtextbuffer,1,10,fin); for (int i = 0; i < m_nParas; i++) { - UInt16 ubytes, attrs; - fread(&ubytes, 1, sizeof(ubytes), fin); - fread(&attrs, 1, sizeof(attrs), fin); - m_ParaOffsets[i] = ntohs(ubytes); - m_ParaAttrs[i] = ntohs(attrs); -// //qDebug("Bytes %u, Attr %x", ntohs(ubytes), ntohs(attrs)); + UInt16 ubytes, attrs; + fread(&ubytes, 1, sizeof(ubytes), fin); + fread(&attrs, 1, sizeof(attrs), fin); + m_ParaOffsets[i] = ntohs(ubytes); + m_ParaAttrs[i] = ntohs(attrs); +// //odebug << "Bytes " << ntohs(ubytes) << ", Attr " << ntohs(attrs) << "" << oendl; } if (m_nParas > 0) { - m_nextPara = m_ParaOffsets[0]; - //qDebug("First offset = %u", m_nextPara); - m_nextParaIndex = 0; + m_nextPara = m_ParaOffsets[0]; + //odebug << "First offset = " << m_nextPara << "" << oendl; + m_nextParaIndex = 0; } else { - m_nextPara = -1; + m_nextPara = -1; } reclen -= HeaderSize()+4*m_nParas; buffercontent = thishdr_size; if (thishdr_size > buffersize) { - delete [] expandedtextbuffer; - buffersize = thishdr_size; - expandedtextbuffer = new UInt8[buffersize]; + delete [] expandedtextbuffer; + buffersize = thishdr_size; + expandedtextbuffer = new UInt8[buffersize]; } Expand(reclen, thishdr_type, expandedtextbuffer, buffercontent); bufferpos = 0; bufferrec = thisrec; - //qDebug("BC:%u, HS:%u", buffercontent, thishdr_size); + //odebug << "BC:" << buffercontent << ", HS:" << thishdr_size << "" << oendl; return true; } void CPlucker_base::UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) { z_stream zstream; memset(&zstream,sizeof(zstream),0); zstream.next_in = compressedbuffer; zstream.next_out = tgtbuffer; zstream.avail_out = bsize; zstream.avail_in = reclen; int keylen = 0; zstream.zalloc = Z_NULL; zstream.zfree = Z_NULL; zstream.opaque = Z_NULL; - + // printf("Initialising\n"); - + inflateInit(&zstream); int err = 0; do { if ( zstream.avail_in == 0 && 0 < keylen ) { zstream.next_in = compressedbuffer + keylen; zstream.avail_in = reclen - keylen; keylen = 0; } zstream.next_out = tgtbuffer; zstream.avail_out = bsize; err = inflate( &zstream, Z_SYNC_FLUSH ); -// //qDebug("err:%d - %u", err, zstream.avail_in); +// //odebug << "err:" << err << " - " << zstream.avail_in << "" << oendl; } while ( err == Z_OK ); inflateEnd(&zstream); } void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) { // UInt16 headerSize; UInt16 docSize; UInt16 i; UInt16 j; UInt16 k; UInt8 *inBuf = compressedbuffer; UInt8 *outBuf = tgtbuffer; // headerSize = sizeof( Header ) + record->paragraphs * sizeof( Paragraph ); docSize = reclen; j = 0; k = 0; while ( j < docSize ) { i = 0; @@ -506,730 +514,730 @@ void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuff outBuf[ i ] = outBuf[ i - m ]; i++; } while ( 0 < n-- ); } } k += bsize; } } void CPlucker_base::home() { currentpos = 0; expand(1); } CList<Bkmk>* CPlucker_base::getbkmklist() { /* UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; for (int i = 1; i < ntohs(head.recordList.numRecords); i++) { - gotorecordnumber(i); - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_type == 8) - { - UInt16 n; - fread(&n, 1, sizeof(n), fin); - n = ntohs(n); - //qDebug("Found %u bookmarks", n); - } - //qDebug("Found:%d, %u", i , thishdr_type); + gotorecordnumber(i); + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_type == 8) + { + UInt16 n; + fread(&n, 1, sizeof(n), fin); + n = ntohs(n); + //odebug << "Found " << n << " bookmarks" << oendl; + } + //odebug << "Found:" << i << ", " << thishdr_type << "" << oendl; } */ return NULL; } QImage* CPlucker_base::expandimg(UInt16 tgt, bool border) { QImage* qimage = getimg(tgt); QImage* ret; if (qimage == NULL) return NULL; if (border) { - QPixmap* image = new QPixmap(0,0); - image->convertFromImage(*qimage); - delete qimage; - QPixmap* pret = new QPixmap(image->width()+4, image->height()+4); - pret->fill(Qt::red); - bitBlt(pret, 2, 2, image, 0, 0, -1, -1);//, Qt::RasterOp::CopyROP); - delete image; - ret = new QImage(pret->convertToImage()); + QPixmap* image = new QPixmap(0,0); + image->convertFromImage(*qimage); + delete qimage; + QPixmap* pret = new QPixmap(image->width()+4, image->height()+4); + pret->fill(Qt::red); + bitBlt(pret, 2, 2, image, 0, 0, -1, -1);//, Qt::RasterOp::CopyROP); + delete image; + ret = new QImage(pret->convertToImage()); } else { - ret = qimage; + ret = qimage; } return ret; } #ifdef _BUFFERPICS #include <qmap.h> #endif QImage* CPlucker_base::getPicture(unsigned long tgt) { #ifdef _BUFFERPICS static QMap<unsigned long, QPixmap> pix; QMap<unsigned long, QPixmap>::Iterator t = pix.find(tgt); if (t == pix.end()) { - pix[tgt] = *expandimg(tgt); - return &pix[tgt]; + pix[tgt] = *expandimg(tgt); + return &pix[tgt]; } else - return &(t.data()); + return &(t.data()); #else return expandimg(tgt >> 16); #endif } #ifdef LOCALPICTURES #include <unistd.h> #include <qpe/global.h> void CPlucker_base::showimg(UInt16 tgt) { - //qDebug("Crassssssh!"); + //odebug << "Crassssssh!" << oendl; QPixmap* qimage = expandimg(tgt); m_picture->setFixedSize(qimage->size()); m_picture->setBackgroundPixmap(*qimage); delete qimage; m_viewer->show(); /* char tmp[] = "uqtreader.XXXXXX"; QImage* qimage = getimg(tgt); QPixmap* image = new QPixmap(0,0); -// //qDebug("New image"); +// //odebug << "New image" << oendl; image->convertFromImage(*qimage); delete qimage; char tmpfile[sizeof(tmp)+1]; strcpy(tmpfile,tmp); int f = mkstemp(tmpfile); close(f); - //qDebug("TMPFILE:%s", tmpfile); + //odebug << "TMPFILE:" << tmpfile << "" << oendl; if (image->save(tmpfile,"PNG")) { - QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)"); - e << QString(tmpfile); + QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)"); + e << QString(tmpfile); } Global::statusMessage("Opening image"); sleep(5); delete image; unlink(tmpfile); */ } #endif unsigned short CPlucker_base::finduid(unsigned short urlid) { -// //qDebug("Finding %u", urlid); +// //odebug << "Finding " << urlid << "" << oendl; unsigned short jmin = 1, jmax = ntohs(head.recordList.numRecords); unsigned short jmid = (jmin+jmax) >> 1; while (jmax - jmin > 1) { - gotorecordnumber(jmid); - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size; - UInt8 thishdr_type, thishdr_reserved; - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - unsigned short luid = thishdr_uid; -// //qDebug("%u %u %u : %u", jmin, jmid, jmax, urlid); - if (luid == urlid) - { - return jmid; - } - if (luid < urlid) - { - jmin = jmid; - } - else - { - jmax = jmid; - } - jmid = (jmin+jmax) >> 1; + gotorecordnumber(jmid); + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size; + UInt8 thishdr_type, thishdr_reserved; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + unsigned short luid = thishdr_uid; +// //odebug << "" << jmin << " " << jmid << " " << jmax << " : " << urlid << "" << oendl; + if (luid == urlid) + { + return jmid; + } + if (luid < urlid) + { + jmin = jmid; + } + else + { + jmax = jmid; + } + jmid = (jmin+jmax) >> 1; } gotorecordnumber(jmin); UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); unsigned short luid = thishdr_uid; - //qDebug("jmin at end:%u,%u", jmin, luid); + //odebug << "jmin at end:" << jmin << "," << luid << "" << oendl; if (luid == urlid) { - return jmin; + return jmin; } gotorecordnumber(jmax); GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); luid = thishdr_uid; - //qDebug("jmax at end:%u,%u", jmax, luid); + //odebug << "jmax at end:" << jmax << "," << luid << "" << oendl; if (luid == urlid) { - return jmax; + return jmax; } - //qDebug("Couldn't find %u", urlid); + //odebug << "Couldn't find " << urlid << "" << oendl; return 0; // Not found! } void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen) { unsigned short sz = 0; for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) { - sz++; + sz++; } size_t newlen = srclen+sizeof(sz)+sz*sizeof(unsigned long); unsigned char* newdata = new unsigned char[newlen]; unsigned char* pdata = newdata; memcpy(newdata, src, srclen); newdata += srclen; memcpy(newdata, &sz, sizeof(sz)); newdata += sizeof(sz); #ifdef _WINDOWS for (it = visited.begin(); it != visited.end(); it++) #else for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) #endif { - unsigned long t = *it; -// qDebug("[%u]", t); - memcpy(newdata, &t, sizeof(t)); - newdata += sizeof(t); + unsigned long t = *it; +// odebug << "[" << t << "]" << oendl; + memcpy(newdata, &t, sizeof(t)); + newdata += sizeof(t); } m_nav.setSaveData(data, len, pdata, newlen); delete [] pdata; } void CPlucker_base::putSaveData(unsigned char*& src, unsigned short& srclen) { unsigned short sz; if (srclen >= sizeof(sz)) { - memcpy(&sz, src, sizeof(sz)); - src += sizeof(sz); - srclen -= sizeof(sz); + memcpy(&sz, src, sizeof(sz)); + src += sizeof(sz); + srclen -= sizeof(sz); } for (int i = 0; i < sz; i++) { - unsigned long t; - if (srclen >= sizeof(t)) - { - memcpy(&t, src, sizeof(t)); -// qDebug("[%u]", t); - visited.push_front(t); - src += sizeof(t); - srclen -= sizeof(t); - } - else - { - QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself"); - break; - } + unsigned long t; + if (srclen >= sizeof(t)) + { + memcpy(&t, src, sizeof(t)); +// odebug << "[" << t << "]" << oendl; + visited.push_front(t); + src += sizeof(t); + srclen -= sizeof(t); + } + else + { + QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself"); + break; + } } m_nav.putSaveData(src, srclen); } int CPlucker_base::OpenFile(const char *src) { m_lastBreak = 0; if (!Cpdb::openfile(src)) { - return -1; + return -1; } if (!CorrectDecoder()) return -1; gotorecordnumber(0); fread(&hdr0, 1, 6, fin); setbuffersize(); compressedtextbuffer = new UInt8[compressedbuffersize]; expandedtextbuffer = new UInt8[buffersize]; - //qDebug("Total number of records:%u", ntohs(head.recordList.numRecords)); - + //odebug << "Total number of records:" << ntohs(head.recordList.numRecords) << "" << oendl; + unsigned int nrecs = ntohs(hdr0.nRecords); - //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); + //odebug << "Version " << ntohs(hdr0.version) << ", no. recs " << nrecs << "" << oendl; UInt16 homerecid = 1; for (unsigned int i = 0; i < nrecs; i++) { - UInt16 id, name; - fread(&name, 1, sizeof(name), fin); - fread(&id, 1, sizeof(id), fin); - //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); - if (ntohs(name) == 0) homerecid = ntohs(id); + UInt16 id, name; + fread(&name, 1, sizeof(name), fin); + fread(&id, 1, sizeof(id), fin); + //odebug << "N:" << ntohs(name) << ", I:" << ntohs(id) << "" << oendl; + if (ntohs(name) == 0) homerecid = ntohs(id); } textlength = 0; for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) { - gotorecordnumber(recptr); - UInt16 thishdr_uid, thishdr_nParagraphs; - UInt32 thishdr_size; - UInt8 thishdr_type, thishdr_reserved; - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (thishdr_uid == homerecid) - { - m_homepos = textlength; - break; - } - if (thishdr_type < 2) textlength += thishdr_size; + gotorecordnumber(recptr); + UInt16 thishdr_uid, thishdr_nParagraphs; + UInt32 thishdr_size; + UInt8 thishdr_type, thishdr_reserved; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (thishdr_uid == homerecid) + { + m_homepos = textlength; + break; + } + if (thishdr_type < 2) textlength += thishdr_size; } textlength = 0; home(); #ifdef LOCALPICTURES if (m_viewer == NULL) { - m_viewer = new QScrollView(NULL); - m_picture = new QWidget(m_viewer->viewport()); - m_viewer->addChild(m_picture); + m_viewer = new QScrollView(NULL); + m_picture = new QWidget(m_viewer->viewport()); + m_viewer->addChild(m_picture); } #endif return 0; } QImage* CPlucker_base::getimg(UInt16 tgt) { size_t reclen; UInt16 thisrec = finduid(tgt); reclen = recordlength(thisrec); gotorecordnumber(thisrec); UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); reclen -= HeaderSize(); UInt32 imgsize = thishdr_size; UInt8* imgbuffer = new UInt8[imgsize]; - + Expand(reclen, thishdr_type, imgbuffer, imgsize); return imagefromdata(imgbuffer, imgsize); } linkType CPlucker_base::hyperlink(unsigned int n, QString& wrd) { visited.push_front(n); UInt16 tuid = (n >> 16); n &= 0xffff; -// //qDebug("Hyper:<%u,%u>", tuid, n); +// //odebug << "Hyper:<" << tuid << "," << n << ">" << oendl; UInt16 thisrec = 1; currentpos = 0; gotorecordnumber(thisrec); UInt16 thishdr_uid, thishdr_nParagraphs; UInt32 thishdr_size; UInt8 thishdr_type, thishdr_reserved; while (1) { - GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); - if (tuid == thishdr_uid) break; - if (thishdr_type < 2) currentpos += thishdr_size; -// //qDebug("hyper-cp:%u", currentpos); - thisrec++; - if (thisrec >= ntohs(head.recordList.numRecords)) - { - char *turl = geturl(tuid); - if (turl == NULL) - { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("Couldn't find link") - ); - } - else - { - wrd = turl; + GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); + if (tuid == thishdr_uid) break; + if (thishdr_type < 2) currentpos += thishdr_size; +// //odebug << "hyper-cp:" << currentpos << "" << oendl; + thisrec++; + if (thisrec >= ntohs(head.recordList.numRecords)) + { + char *turl = geturl(tuid); + if (turl == NULL) + { + QMessageBox::information(NULL, + QString(PROGNAME), + QString("Couldn't find link") + ); + } + else + { + wrd = turl; #ifdef USEQPE - if (wrd.length() > 10) - { - Global::statusMessage(wrd.left(8) + ".."); - } - else - { - Global::statusMessage(wrd); - } + if (wrd.length() > 10) + { + Global::statusMessage(wrd.left(8) + ".."); + } + else + { + Global::statusMessage(wrd); + } #else #endif /* USEQPE */ - //qDebug("Link:%s", (const char*)wrd); -// setlink(fn, wrd); - delete [] turl; - } - return eNone; - } - gotorecordnumber(thisrec); + //odebug << "Link:" << wrd << "" << oendl; +// setlink(fn, wrd); + delete [] turl; + } + return eNone; + } + gotorecordnumber(thisrec); } if (thishdr_type > 1) { - if (thishdr_type == 4) - { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("Mailto links\nnot yet supported (2)")); - } - else - { - if (thishdr_type > 3) - { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("External links\nnot yet supported (2)") - ); - return eNone; - } - else - { + if (thishdr_type == 4) + { + QMessageBox::information(NULL, + QString(PROGNAME), + QString("Mailto links\nnot yet supported (2)")); + } + else + { + if (thishdr_type > 3) + { + QMessageBox::information(NULL, + QString(PROGNAME), + QString("External links\nnot yet supported (2)") + ); + return eNone; + } + else + { #ifdef LOCALPICTURES - showimg(tuid); + showimg(tuid); #else - return ePicture; + return ePicture; #endif - } - } - return eNone; + } + } + return eNone; } /* if (thishdr_type == 2 || thishdr_type == 3) { - expandimg(thisrec); + expandimg(thisrec); } */ else { - expand(thisrec); - if (n != 0) - { - if (n >= m_nParas) - { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("Error in link\nPara # too big") - ); - return eNone; - } - unsigned int noff = 0; - for (unsigned int i = 0; i < n; i++) noff += m_ParaOffsets[i]; - n = noff; - } - if (n > thishdr_size) - { - QMessageBox::information(NULL, - QString(PROGNAME), - QString("Error in link\nOffset too big") - ); - return eNone; - } - //qDebug("Hyper:<%u,%u>", tuid, n); - while (bufferpos < n && bufferpos < buffercontent) getch_base(true); + expand(thisrec); + if (n != 0) + { + if (n >= m_nParas) + { + QMessageBox::information(NULL, + QString(PROGNAME), + QString("Error in link\nPara # too big") + ); + return eNone; + } + unsigned int noff = 0; + for (unsigned int i = 0; i < n; i++) noff += m_ParaOffsets[i]; + n = noff; + } + if (n > thishdr_size) + { + QMessageBox::information(NULL, + QString(PROGNAME), + QString("Error in link\nOffset too big") + ); + return eNone; + } + //odebug << "Hyper:<" << tuid << "," << n << ">" << oendl; + while (bufferpos < n && bufferpos < buffercontent) getch_base(true); /* // This is faster but the alignment doesn't get set - mystyle.unset(); - bufferpos = n; - currentpos += n; - while (bufferpos >= m_nextPara && m_nextPara >= 0) - { - UInt16 attr = m_ParaAttrs[m_nextParaIndex]; - m_nextParaIndex++; - if (m_nextParaIndex == m_nParas) - { - m_nextPara = -1; - } - else - { - m_nextPara += m_ParaOffsets[m_nextParaIndex]; - } - } + mystyle.unset(); + bufferpos = n; + currentpos += n; + while (bufferpos >= m_nextPara && m_nextPara >= 0) + { + UInt16 attr = m_ParaAttrs[m_nextParaIndex]; + m_nextParaIndex++; + if (m_nextParaIndex == m_nParas) + { + m_nextPara = -1; + } + else + { + m_nextPara += m_ParaOffsets[m_nextParaIndex]; + } + } */ } return eLink; } tchar CPlucker_base::getch_base(bool fast) { int ch = bgetch(); while (ch == 0) { - ch = bgetch(); -// //qDebug("Function:%x", ch); - switch (ch) - { - case 0x38: -// //qDebug("Break:%u", locate()); - if (m_lastBreak == locate()) - { - ch = bgetch(); - } - else - { - ch = 10; - } - m_lastBreak = locate(); - break; - case 0x0a: - case 0x0c: - { - unsigned long ln = 0; - int skip = ch & 7; - for (int i = 0; i < 2; i++) - { - int ch = bgetch(); - ln = (ln << 8) + ch; -// //qDebug("ch:%d, ln:%u", ch, ln); - } - if (skip == 2) - { - ln <<= 16; - } - else - { - for (int i = 0; i < 2; i++) - { - int ch = bgetch(); - ln = (ln << 8) + ch; -// //qDebug("ch:%d, ln:%u", ch, ln); - } - } -// //qDebug("ln:%u", ln); - mystyle.setLink(true); - mystyle.setData(ln); -// mystyle.setColour(255, 0, 0); - bool hasseen = false; - for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) - { - if (*it == ln) - { - hasseen = true; - break; - } - } - if (hasseen) - { - mystyle.setStrikethru(); - } - else - { - mystyle.setUnderline(); - } - ch = bgetch(); - } - break; - case 0x08: - ch = bgetch(); -// mystyle.setColour(0, 0, 0); - mystyle.unsetUnderline(); - mystyle.unsetStrikethru(); - mystyle.setLink(false); - mystyle.setData(0); - break; - case 0x40: - mystyle.setItalic(); - ch = bgetch(); - break; - case 0x48: - mystyle.unsetItalic(); - ch = bgetch(); - break; - case 0x11: - { - ch = bgetch(); -// //qDebug("Font:%d",ch); - mystyle.setVOffset(0); - mystyle.unsetMono(); - mystyle.unsetBold(); - mystyle.setFontSize(0); - switch (ch) - { - case 0: - break; - case 1: - mystyle.setBold(); - mystyle.setFontSize(3); - break; - case 2: - mystyle.setBold(); - mystyle.setFontSize(2); - break; - case 3: - mystyle.setBold(); - mystyle.setFontSize(1); - break; - case 4: - mystyle.setBold(); - break; - case 5: - mystyle.setBold(); - break; - case 6: - mystyle.setBold(); - break; - case 7: - mystyle.setBold(); - break; - case 8: // should be fixed width - //qDebug("Trying fixed width"); - mystyle.setMono(); - break; - case 9: - mystyle.setFontSize(-1); - break; - case 10: - mystyle.setFontSize(-2); - mystyle.setVOffset(1); - break; - case 11: - mystyle.setFontSize(-2); - mystyle.setVOffset(-1); - break; - default: - qDebug("Unrecognised font"); - break; - } - ch = bgetch(); - } - break; - case 0x29: - ch = bgetch(); - switch (ch) - { - case 0: - mystyle.setLeftJustify(); -// //qDebug("left"); - break; - case 1: - mystyle.setRightJustify(); -// //qDebug("right"); - break; - case 2: - mystyle.setCentreJustify(); -// //qDebug("centre"); - break; - case 3: - mystyle.setFullJustify(); -// //qDebug("full"); - break; - - } - ch = bgetch(); - break; - case 0x53: - { - int r = bgetch(); - int g = bgetch(); - int b = bgetch(); - mystyle.setColour(r,g,b); - ch = bgetch(); - } - break; - case 0x1a: - case 0x5c: - { - bool hasalternate = (ch == 0x5c); - UInt16 ir = bgetch(); - ir = (ir << 8) + bgetch(); - if (hasalternate) - { - //qDebug("Alternate image:%x", ir); - UInt16 ir2 = bgetch(); - ir2 = (ir2 << 8) + bgetch(); - if (!fast) mystyle.setPicture(true, expandimg(ir2, true), true, ir << 16); + ch = bgetch(); +// //odebug << "Function:" << ch << "" << oendl; + switch (ch) + { + case 0x38: +// //odebug << "Break:" << locate() << "" << oendl; + if (m_lastBreak == locate()) + { + ch = bgetch(); + } + else + { + ch = 10; + } + m_lastBreak = locate(); + break; + case 0x0a: + case 0x0c: + { + unsigned long ln = 0; + int skip = ch & 7; + for (int i = 0; i < 2; i++) + { + int ch = bgetch(); + ln = (ln << 8) + ch; +// //odebug << "ch:" << ch << ", ln:" << ln << "" << oendl; + } + if (skip == 2) + { + ln <<= 16; + } + else + { + for (int i = 0; i < 2; i++) + { + int ch = bgetch(); + ln = (ln << 8) + ch; +// //odebug << "ch:" << ch << ", ln:" << ln << "" << oendl; + } + } +// //odebug << "ln:" << ln << "" << oendl; + mystyle.setLink(true); + mystyle.setData(ln); +// mystyle.setColour(255, 0, 0); + bool hasseen = false; + for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) + { + if (*it == ln) + { + hasseen = true; + break; + } + } + if (hasseen) + { + mystyle.setStrikethru(); + } + else + { + mystyle.setUnderline(); + } + ch = bgetch(); + } + break; + case 0x08: + ch = bgetch(); +// mystyle.setColour(0, 0, 0); + mystyle.unsetUnderline(); + mystyle.unsetStrikethru(); + mystyle.setLink(false); + mystyle.setData(0); + break; + case 0x40: + mystyle.setItalic(); + ch = bgetch(); + break; + case 0x48: + mystyle.unsetItalic(); + ch = bgetch(); + break; + case 0x11: + { + ch = bgetch(); +// //odebug << "Font:" << ch << "" << oendl; + mystyle.setVOffset(0); + mystyle.unsetMono(); + mystyle.unsetBold(); + mystyle.setFontSize(0); + switch (ch) + { + case 0: + break; + case 1: + mystyle.setBold(); + mystyle.setFontSize(3); + break; + case 2: + mystyle.setBold(); + mystyle.setFontSize(2); + break; + case 3: + mystyle.setBold(); + mystyle.setFontSize(1); + break; + case 4: + mystyle.setBold(); + break; + case 5: + mystyle.setBold(); + break; + case 6: + mystyle.setBold(); + break; + case 7: + mystyle.setBold(); + break; + case 8: // should be fixed width + //odebug << "Trying fixed width" << oendl; + mystyle.setMono(); + break; + case 9: + mystyle.setFontSize(-1); + break; + case 10: + mystyle.setFontSize(-2); + mystyle.setVOffset(1); + break; + case 11: + mystyle.setFontSize(-2); + mystyle.setVOffset(-1); + break; + default: + odebug << "Unrecognised font" << oendl; + break; + } + ch = bgetch(); + } + break; + case 0x29: + ch = bgetch(); + switch (ch) + { + case 0: + mystyle.setLeftJustify(); +// //odebug << "left" << oendl; + break; + case 1: + mystyle.setRightJustify(); +// //odebug << "right" << oendl; + break; + case 2: + mystyle.setCentreJustify(); +// //odebug << "centre" << oendl; + break; + case 3: + mystyle.setFullJustify(); +// //odebug << "full" << oendl; + break; + + } + ch = bgetch(); + break; + case 0x53: + { + int r = bgetch(); + int g = bgetch(); + int b = bgetch(); + mystyle.setColour(r,g,b); + ch = bgetch(); + } + break; + case 0x1a: + case 0x5c: + { + bool hasalternate = (ch == 0x5c); + UInt16 ir = bgetch(); + ir = (ir << 8) + bgetch(); + if (hasalternate) + { + //odebug << "Alternate image:" << ir << "" << oendl; + UInt16 ir2 = bgetch(); + ir2 = (ir2 << 8) + bgetch(); + if (!fast) mystyle.setPicture(true, expandimg(ir2, true), true, ir << 16); #ifdef LOCALPICTURES - UInt32 ln = ir; - ln <<= 16; - mystyle.setLink(true); - mystyle.setData(ln); + UInt32 ln = ir; + ln <<= 16; + mystyle.setLink(true); + mystyle.setData(ln); #endif - } - else - { - if (!fast) mystyle.setPicture(true, expandimg(ir)); - } -// if (mystyle.getLink()) qDebug("Picture link!"); - ch = '#'; - } -// ch = bgetch(); - break; - case 0x33: - { - UInt8 h = bgetch(); - UInt8 wc = bgetch(); - UInt8 pc = bgetch(); - UInt16 w = wc; -// //qDebug("h,w,pc [%u, %u, %u]", h, w, pc); - if (w == 0) - { - w = (m_scrWidth*(unsigned long)pc)/100; - } - if (w == 0) w = m_scrWidth; - mystyle.setPicture(false, hRule(w,h,mystyle.Red(),mystyle.Green(),mystyle.Blue())); -// if (mystyle.getLink()) //qDebug("hRule link!"); - ch = '#'; - } - break; - case 0x60: - mystyle.setUnderline(); - ch = bgetch(); - break; - case 0x68: - mystyle.unsetUnderline(); - ch = bgetch(); - break; - case 0x22: - ch = bgetch(); - mystyle.setLeftMargin(ch); -// //qDebug("Left margin:%d", ch); - ch = bgetch(); - mystyle.setRightMargin(ch); -// //qDebug("Right margin:%d", ch); - ch = bgetch(); - break; - case 0x70: - mystyle.setStrikethru(); - ch = bgetch(); - break; - case 0x78: - mystyle.unsetStrikethru(); - ch = bgetch(); - break; - case 0x83: - { - int tlen = bgetch(); - ch = bgetch(); - ch <<= 8; - ch |= (tchar)bgetch(); - for (int i = 0; i < tlen; i++) bgetch(); - //qDebug("Function 83"); - } - break; - case 0x85: - default: - qDebug("Function:%x NOT IMPLEMENTED", ch); - { - int skip = ch & 7; - for (int i = 0; i < skip; i++) - { - ch = bgetch(); - //qDebug("Arg %d, %d", i, ch); - } - ch = bgetch(); - } - } + } + else + { + if (!fast) mystyle.setPicture(true, expandimg(ir)); + } +// if (mystyle.getLink()) odebug << "Picture link!" << oendl; + ch = '#'; + } +// ch = bgetch(); + break; + case 0x33: + { + UInt8 h = bgetch(); + UInt8 wc = bgetch(); + UInt8 pc = bgetch(); + UInt16 w = wc; +// //odebug << "h,w,pc [" << h << ", " << w << ", " << pc << "]" << oendl; + if (w == 0) + { + w = (m_scrWidth*(unsigned long)pc)/100; + } + if (w == 0) w = m_scrWidth; + mystyle.setPicture(false, hRule(w,h,mystyle.Red(),mystyle.Green(),mystyle.Blue())); +// if (mystyle.getLink()) //odebug << "hRule link!" << oendl; + ch = '#'; + } + break; + case 0x60: + mystyle.setUnderline(); + ch = bgetch(); + break; + case 0x68: + mystyle.unsetUnderline(); + ch = bgetch(); + break; + case 0x22: + ch = bgetch(); + mystyle.setLeftMargin(ch); +// //odebug << "Left margin:" << ch << "" << oendl; + ch = bgetch(); + mystyle.setRightMargin(ch); +// //odebug << "Right margin:" << ch << "" << oendl; + ch = bgetch(); + break; + case 0x70: + mystyle.setStrikethru(); + ch = bgetch(); + break; + case 0x78: + mystyle.unsetStrikethru(); + ch = bgetch(); + break; + case 0x83: + { + int tlen = bgetch(); + ch = bgetch(); + ch <<= 8; + ch |= (tchar)bgetch(); + for (int i = 0; i < tlen; i++) bgetch(); + //odebug << "Function 83" << oendl; + } + break; + case 0x85: + default: + odebug << "Function:" << ch << " NOT IMPLEMENTED" << oendl; + { + int skip = ch & 7; + for (int i = 0; i < skip; i++) + { + ch = bgetch(); + //odebug << "Arg " << i << ", " << ch << "" << oendl; + } + ch = bgetch(); + } + } } if (m_lastIsBreak && !mystyle.isMono()) { - while (ch == ' ') - { - ch = getch(false); - } + while (ch == ' ') + { + ch = getch(false); + } } m_lastIsBreak = (ch == 10); return (ch == EOF) ? UEOF : ch; } |