-rw-r--r-- | noncore/apps/opie-reader/QTReaderApp.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp index 6753698..8ef0674 100644 --- a/noncore/apps/opie-reader/QTReaderApp.cpp +++ b/noncore/apps/opie-reader/QTReaderApp.cpp @@ -1625,3073 +1625,3078 @@ void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) { int info; stream >> info; onespace(info); } else if ( msg == "Layout/Repalm(int)" ) { int info; stream >> info; repalm(info); } else if ( msg == "Layout/Unindent(int)" ) { int info; stream >> info; unindent(info); } else if ( msg == "Layout/Re-paragraph(int)" ) { int info; stream >> info; repara(info); } else if ( msg == "Layout/DoubleSpace(int)" ) { int info; stream >> info; dblspce(info); } else if ( msg == "Layout/Indent(int)" ) { int info; stream >> info; reader->bindenter = info; reader->setfilter(reader->getfilter()); } else if ( msg == "Layout/Remap(int)" ) { int info; stream >> info; remap(info); } else if ( msg == "Layout/Embolden(int)" ) { int info; stream >> info; embolden(info); } else if ( msg == "Format/Ideogram/Word(int)" ) { int info; stream >> info; monospace(info); } else if ( msg == "Format/SetWidth(int)" ) { 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); } else if ( msg == "Marks/Autogen(QString)" ) { QString info; stream >> info; do_autogen(info); } else if ( msg == "File/StartBlock()" ) { editMark(); } else if ( msg == "File/CopyBlock()" ) { 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; } return cesAutoScroll; } void QTReaderApp::setinverted(bool sfs) { reader->setInverse(sfs); reader->setfilter(reader->getfilter()); reader->refresh(); } void QTReaderApp::setrotated(bool sfs) { reader->setrotated(sfs); if (sfs) { m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::BottomToTop : QBoxLayout::TopToBottom ); if (m_scrollbar != NULL) { scrollbar->disconnect(); m_scrollbar->setOrientation(Qt::Horizontal); connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineUp()) ); connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineDown()) ); connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopageup()) ); connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopagedn()) ); connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) ); } // reader->repaint(0, reader->m_left_border, reader->width(), reader->height()-2*reader->m_border); } else { m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::RightToLeft : QBoxLayout::LeftToRight ); if (m_scrollbar != NULL) { scrollbar->disconnect(); m_scrollbar->setOrientation(Qt::Vertical); connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineDown()) ); connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineUp()) ); connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopagedn()) ); connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopageup()) ); connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) ); } // reader->repaint(reader->m_border, 0, reader->width()-2*reader->m_border, reader->height()); } reader->refresh(); } void QTReaderApp::setgrab(bool sfs) { #ifdef USEQPE m_grabkeyboard = sfs; if (m_grabkeyboard) { ((QPEApplication*)qApp)->grabKeyboard(); } else { ((QPEApplication*)qApp)->ungrabKeyboard(); } #endif } 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())); m_spaceTarget = ActNameToInt(_a->text()); } */ QTReaderApp::~QTReaderApp() { } void QTReaderApp::autoScroll(bool _b) { reader->setautoscroll(_b); setScrollState(reader->m_autoScroll); } void QTReaderApp::zoomin() { reader->zoomin(); QFont f(reader->m_fontname, reader->m_fontControl.getsize(0)); m_prog->setFont( f ); } void QTReaderApp::zoomout() { reader->zoomout(); QFont f(reader->m_fontname, reader->m_fontControl.getsize(0)); m_prog->setFont( f ); } void QTReaderApp::clearBkmkList() { delete pBkmklist; reader->pBkmklist = pBkmklist = NULL; m_fBkmksChanged = false; reader->refresh(true); } 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()) { #ifndef USEQPE QDir d = QDir::home(); // "/" d.cd(APPDIR); d.remove(reader->m_string); #else /* USEQPE */ unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); #endif /* USEQPE */ } if (cd->delConfig()) { #ifndef USEQPE 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)); #endif /* USEQPE */ } } 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); 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); 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; } delete [] nm; delete [] fl; } void QTReaderApp::fileOpen() { /* menu->hide(); fileBar->hide(); if (regVisible) regBar->hide(); if (searchVisible) searchBar->hide(); */ // qDebug("fileOpen"); // 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; reader->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", true)) usebrowser = false; } if (usebrowser) { QString fn = usefilebrowser(); // qApp->processEvents(); if (!fn.isEmpty() && QFileInfo(fn).isFile()) { openFile(fn); } reader->setFocus(); } // reader->refresh(); // qDebug("HEIGHT:%d", reader->m_lastheight); } QString QTReaderApp::usefilebrowser() { #ifndef USEQPE QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); return s; #else QString fn; #if defined(OPIE) && defined(OPIEFILEDIALOG) QMap<QString, QStringList> mimeTypes; QStringList etypes; etypes << "etext/*"; mimeTypes.insert( tr("eText"), etypes ); QStringList types; types << "text/*"; mimeTypes.insert( tr("Text"), types ); mimeTypes.insert( tr("All"), "*/*" ); fn = OFileDialog::getOpenFileName(OFileSelector::EXTENDED_ALL, QFileInfo(reader->m_lastfile).dirPath(true), QString::null, mimeTypes, 0, "OpieReader"); #else fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, 0, // WStyle_Customize | WStyle_NoBorderEx, "*", QFileInfo(reader->m_lastfile).dirPath(true)); if (fb->exec()) { fn = fb->getCurrentFile(); } // qDebug("Selected %s", (const char*)fn); delete fb; #endif showEditTools(); return fn; #endif } void QTReaderApp::showgraphic(QImage& pm) { m_graphicwin->setImage(pm); editorStack->raiseWidget( m_graphicwin ); hidetoolbars(); m_graphicwin->setFocus(); } void QTReaderApp::showbuttonprefs() { editorStack->raiseWidget( m_buttonprefs ); hidetoolbars(); m_buttonprefs->setFocus(); m_kmapchanged = true; } void QTReaderApp::showprefs() { CPrefs* prefwin = new CPrefs(reader->width(), !m_bFloatingDialog, this); // prefwin->Debounce(m_debounce); prefwin->bgtype(m_bgtype); prefwin->repalm(reader->brepalm); prefwin->UnderlineLink(reader->bunderlineLink); prefwin->kern(reader->bkern); prefwin->hyphenate(reader->hyphenate); // prefwin->customhyphen(reader->buffdoc.getCustomHyphen()); prefwin->scrolltype(reader->m_scrolltype); prefwin->scrollstep(reader->m_scrollstep); prefwin->scrollcolor(m_scrollcolor); prefwin->minibarcol(m_scrollbarcolor); prefwin->foreground(m_foreground); prefwin->background(m_background); prefwin->twotouch(m_twoTouch); prefwin->propfontchange(m_propogatefontchange); prefwin->StripCR(reader->bstripcr); prefwin->InlineTables(!reader->bNoInlineTables); 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->Inverse(reader->bInverse); // prefwin->Negative(reader->bNegative); prefwin->FixGraphics(reader->m_fontControl.FixGraphics()); prefwin->ParaLead(reader->getextraspace()); prefwin->LineLead(reader->getlead()); prefwin->TopMargin(reader->m_abstopmargin); prefwin->BottomMargin(reader->m_absbottommargin); prefwin->LeftMargin(reader->m_absleft_border); prefwin->RightMargin(reader->m_absright_border); prefwin->Indent(reader->bindenter); if (reader->bautofmt) { prefwin->Markup(0); } else if (reader->btextfmt) { prefwin->Markup(2); } else if (reader->bstriphtml) { prefwin->Markup(3); } else if (reader->bpeanut) { prefwin->Markup(4); } else { prefwin->Markup(1); } prefwin->Depluck(reader->bdepluck); prefwin->Dejpluck(reader->bdejpluck); prefwin->Continuous(reader->m_continuousDocument); prefwin->DoubleBuffer(reader->m_doubleBuffered); prefwin->dictApplication(m_targetapp); prefwin->dictMessage(m_targetmsg); /* 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->miscoutput(m_doOutput); 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); prefwin->outcodec(reader->m_outputName); if (prefwin->exec()) { // m_debounce = prefwin->Debounce(); reader->brepalm = prefwin->repalm(); reader->bunderlineLink = prefwin->UnderlineLink(); reader->bkern = prefwin->kern(); reader->hyphenate = prefwin->hyphenate(); // reader->buffdoc.setCustomHyphen(prefwin->customhyphen()); reader->m_scrolltype = prefwin->scrolltype(); reader->m_scrollstep = prefwin->scrollstep(); m_scrollcolor = prefwin->scrollcolor(); setscrollcolour(); m_scrollbarcolor = prefwin->minibarcol(); setscrollbarcolour(); m_foreground = prefwin->foreground(); reader->setForeground(getcolour(m_foreground)); m_background = prefwin->background(); reader->setBackground(getcolour(m_background)); m_twoTouch = prefwin->twotouch(); reader->setTwoTouch(m_twoTouch); m_touch_action->setOn(m_twoTouch); reader->bstripcr = prefwin->StripCR(); reader->bNoInlineTables = !prefwin->InlineTables(); 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(); // if (reader->bInverse != prefwin->Inverse()) reader->setInverse(prefwin->Inverse()); // if (reader->bNegative != prefwin->Negative()) reader->setNegative(); reader->m_fontControl.FixGraphics(prefwin->FixGraphics()); reader->setextraspace(prefwin->ParaLead()); reader->setlead(prefwin->LineLead()); reader->m_abstopmargin = prefwin->TopMargin(); reader->m_absbottommargin = prefwin->BottomMargin(); reader->m_absleft_border = prefwin->LeftMargin(); reader->m_absright_border = prefwin->RightMargin(); 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()); reader->setDoubleBuffer(prefwin->DoubleBuffer()); /* 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(); m_doOutput = prefwin->miscoutput(); 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()); } if (m_bgtype != (bground)prefwin->bgtype()) { m_bgtype = (bground)prefwin->bgtype(); setBackgroundBitmap(); } qDebug("OutCodec:%s", (const char*)prefwin->outcodec()); if (reader->m_outputName != prefwin->outcodec()) { if (reader->m_output != NULL) { QMessageBox::warning(this, PROGNAME, "Change of output codec\nrequires a restart"); } reader->m_outputName = prefwin->outcodec(); } delete prefwin; reader->setfilter(reader->getfilter()); reader->refresh(); } else { delete prefwin; } } void QTReaderApp::showtoolbarprefs() { #ifdef USEQPE CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this); #else 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); 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); prefwin->qtscroll(m_qtscroll); prefwin->localscroll(m_localscroll); if (prefwin->exec()) { m_bFloatingDialog = prefwin->floating(); if ( m_tbpolsave != (ToolbarPolicy)prefwin->tbpolicy() || m_tbposition != (ToolBarDock)(prefwin->tbposition()+2) || m_tbmovesave != prefwin->tbmovable() || m_qtscroll != prefwin->qtscroll() // || // m_localscrollbar != prefwin->scrollonleft() ) { 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(); reader->m_scrollpos = m_localscroll = prefwin->localscroll(); if (m_qtscroll != prefwin->qtscroll()) { m_qtscroll = prefwin->qtscroll(); setrotated(reader->m_rotated); } if (m_scrollbar == NULL || m_scrollbar->isHidden()) { reader->m_scrollpos = m_localscroll; } else { reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0; } bool isChanged = prefwin->isChanged(); delete prefwin; #ifdef USEQPE Config config( APPDIR ); #else 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() ); #endif if (isChanged) addtoolbars(&config); } else { delete prefwin; } } void QTReaderApp::showinfo() { unsigned long ds, fs, ts, pl, dl; if (reader->empty()) { QMessageBox::information(this, PROGNAME, "No file loaded", 1); } else { reader->sizes(fs,ts); ds = reader->buffdoc.endSection() - reader->buffdoc.startSection(); pl = reader->pagelocate(); dl = pl - reader->buffdoc.startSection(); m_infoWin->setFileSize(fs); m_infoWin->setTextSize(ts); if (fs > UINT_MAX/100) { unsigned long t1 = (ts+50)/100; m_infoWin->setRatio(100-(fs + (t1 >> 1))/t1); } else { m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); } m_infoWin->setLocation(pl); if (pl > UINT_MAX/100) { unsigned long t1 = (ts+50)/100; m_infoWin->setRead((pl + (t1 >> 1))/t1); } else { m_infoWin->setRead((100*pl + (ts >> 1))/ts); } m_infoWin->setDocSize(ds); m_infoWin->setDocLocation(dl); if (dl > UINT_MAX/100) { unsigned long d1 = (ds+50)/100; m_infoWin->setDocRead((dl + (d1 >> 1))/d1); } else { m_infoWin->setDocRead((100*dl + (ds >> 1))/ds); } m_infoWin->setZoom(reader->m_fontControl.currentsize()*10); m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about()); editorStack->raiseWidget( m_infoWin ); hidetoolbars(); m_infoWin->setFocus(); } } void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn, size_t posn2) { if (pBkmklist == NULL) reader->pBkmklist = 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] = 0; CBuffer buff2(text.length()+1); for (i = 0; i < text.length(); i++) { buff2[i] = text[i].unicode(); } buff2[i] = 0; Bkmk b(buff.data(), buff2.data(), posn, posn2); QColor c = m_annoWin->getColor(); int red,green,blue; c.rgb(&red, &green, &blue); b.red(red); b.green(green); b.blue(blue); pBkmklist->push_front(b); #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(), m_annoWin->getPosn2()); } 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()); } QColor c = m_annoWin->getColor(); int red,green,blue; c.rgb(&red, &green, &blue); m_anno->red(red); m_anno->green(green); m_anno->blue(blue); bool found = findNextBookmark(m_anno->value()+1); if (found) { m_annoWin->setName(toQString(m_anno->name())); m_annoWin->setAnno(toQString(m_anno->anno())); m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue())); } else { 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; } } return found; } void QTReaderApp::addanno() { if (reader->empty()) { 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 ); hidetoolbars(); #ifdef USEQPE Global::showInputMethod(); #endif m_annoWin->setFocus(); } } void QTReaderApp::infoClose() { m_debounce = m_buttonprefs->Debounce(); if (m_kmapchanged) { m_kmapchanged = false; #ifndef USEQPE QDir d = QDir::home(); // "/" d.cd(APPDIR); QFileInfo fi(d, ".keymap"); FILE* f = fopen((const char *)fi.absFilePath(), "w"); #else /* USEQPE */ FILE* f = fopen((const char *)Global::applicationFileName(APPDIR,".keymap"), "w"); #endif /* USEQPE */ if (f != NULL) { uint cnt = KEYMAPVERSION; fwrite(&cnt, sizeof(cnt), 1, f); cnt = kmap.count(); fwrite(&cnt, sizeof(cnt), 1, f); for (QMap<orKey,int>::Iterator i = kmap.begin(); i != kmap.end(); i++) { orKey key = i.key(); int data = i.data(); fwrite(&key, sizeof(key), 1, f); fwrite(&data, sizeof(data), 1, f); qDebug("Saved %s as %u", (const char*)key.text(), data); } fclose(f); } } 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; } 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); 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); } else 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"); #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()) { delete searchStack->pop(); } delete searchStack; #endif reader->setFocus(); } void QTReaderApp::regClose() { regVisible = FALSE; regEdit->setText(""); regBar->hide(); #ifdef USEQPE Global::hideInputMethod(); #endif reader->setFocus(); } #ifdef __ISEARCH bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QString& arg) #else bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg) #endif { bool ret = true; 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; } } // qDebug("Found it at %u:%u", pos, offset); pbar->hide(); // qDebug("Hid"); reader->locate(pos+offset); // qDebug("Loacted"); // qDebug("page up"); ret = true; } else { 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, unsigned int loc ) { // qDebug("File:%s", (const char*)f); // 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; } #endif clear(); reader->setText(fm.baseName(), fm.absFilePath(), loc); m_loadedconfig = readconfig(APPDIR "/configs", reader->m_string, false); qDebug("Showing tools"); showEditTools(); qDebug("Shown tools"); readbkmks(); qDebug("read markss"); m_savedpos = 0xffffffff; } else { QString msg = f; msg += "\nFile does not exist"; QMessageBox::information(this, PROGNAME, msg); reader->m_lastfile = QString::null; } } /* void QTReaderApp::resizeEvent(QResizeEvent* e) { if (m_fullscreen) { showNormal(); showFullScreen(); } } */ void QTReaderApp::handlekey(QKeyEvent* e) { // qDebug("Keypress event"); timeb now; ftime(&now); unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; if (etime < m_debounce) { return; } 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(e); } } break; /* case Key_Left: { if (reader->m_autoScroll) { reader->reduceScroll(); } else { doAction(e); } } break; case Key_Right: { if (reader->m_autoScroll) { reader->increaseScroll(); } else { doAction(e); } } break; case Key_Up: { if (reader->m_autoScroll) { reader->increaseScroll(); } else { doAction(e); } } break; case Key_Down: { if (reader->m_autoScroll) { reader->reduceScroll(); } else { doAction(e); } } break; */ default: { doAction(e); } /* QString msg("Key press was:"); QString key; msg += key.setNum(e->key()); QMessageBox::information(this, PROGNAME, msg); */ } ftime(&m_lastkeytime); } #if defined(USEQPE) && defined(USENEWFULLSCREEN) void QTReaderApp::focusInEvent(QFocusEvent *) { if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader)) { m_usenewfullscreen = false; reader->bDoUpdates = false; showEditTools(); reader->bDoUpdates = true; reader->update(); m_usenewfullscreen = true; } } void QTReaderApp::resizeEvent(QResizeEvent *) { if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader)) { m_usenewfullscreen = false; reader->bDoUpdates = false; showEditTools(); reader->bDoUpdates = true; reader->update(); m_usenewfullscreen = true; } } #endif void QTReaderApp::showEditTools() { // if ( !doc ) // close(); if (m_fullscreen) { #if defined(USEQPE) if (menubar != NULL) menubar->hide(); #endif if (fileBar != NULL) fileBar->hide(); if (viewBar != NULL) viewBar->hide(); if (navBar != NULL) navBar->hide(); if (markBar != NULL) markBar->hide(); if (m_prog != NULL) { // qDebug("Hiding status"); m_prog->hide(); } searchBar->hide(); regBar->hide(); #ifdef USEQPE Global::hideInputMethod(); #endif if (m_scrollbar != NULL) m_scrollbar->hide(); m_fontBar->hide(); // showNormal(); showFullScreen(); } else { // qDebug("him"); #ifdef USEQPE Global::hideInputMethod(); #endif // qDebug("eb"); if (m_scrollbar != NULL) { if (m_scrollishidden) { m_scrollbar->hide(); } else { m_scrollbar->show(); } } if (!m_hidebars) { #if defined(USEQPE) menubar->show(); #endif if (fileBar != NULL) fileBar->show(); if (viewBar != NULL) viewBar->show(); if (navBar != NULL) navBar->show(); if (markBar != NULL) markBar->show(); if (m_prog != NULL && !m_statusishidden) { // qDebug("Showing status"); m_prog->show(); // qDebug("Shown status"); } // qDebug("Showing mb"); mb->show(); } if ( searchVisible ) { #ifdef USEQPE Global::showInputMethod(); #endif searchBar->show(); } if ( regVisible ) { #ifdef USEQPE Global::showInputMethod(); #endif regBar->show(); } if (m_fontVisible) m_fontBar->show(); // qDebug("sn"); showNormal(); // qDebug("sm"); #if defined(USEQPE) && !defined(SIMPAD) showMaximized(); #endif // setCentralWidget(reader); } // qDebug("uc"); updateCaption(); // qDebug("rw"); editorStack->raiseWidget( reader ); // qDebug("sf"); reader->setFocus(); // qDebug("ref"); //reader->refresh(true); // qDebug("done"); } /* void QTReaderApp::save() { if ( !doc ) return; if ( !editor->edited() ) 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); } FileManager fm; fm.saveFile( *doc, rt ); } */ void QTReaderApp::clear() { // if (doc != 0) // { // QMessageBox::information(this, PROGNAME, "Deleting doc", 1); // delete doc; // QMessageBox::information(this, PROGNAME, "Deleted doc", 1); // doc = 0; // } reader->clear(); } void QTReaderApp::updateCaption() { // if ( !doc ) // setCaption( tr("QTReader") ); // else { // QString s = doc->name(); // if ( s.isEmpty() ) // s = tr( "Unnamed" ); setCaption( reader->m_string + " - " + tr(SHORTPROGNAME) ); // } } void QTReaderApp::setDocument(const QString& fileref) { //QMessageBox::information(0, "setDocument", fileref); openFile(fileref); // showEditTools(); } void QTReaderApp::closeEvent( QCloseEvent *e ) { // qDebug("Close event"); if (m_fullscreen) { m_fullscreen = false; showEditTools(); e->ignore(); } else if (editorStack->visibleWidget() == m_buttonprefs) { - m_buttonprefs->mapkey(Qt::NoButton, Key_Escape); + int ret = QMessageBox::warning(this, PROGNAME, +tr("Do you wish to map this key?\n\nIf you proceed you will map\nthe escape key and you will\nneed to press the close box\ntwice to exit this program\n\nContinue?"), tr("Yes"), tr("No"), QString::null, 0, 1); + if (ret == 0) + { + m_buttonprefs->mapkey(Qt::NoButton, Key_Escape); + } e->ignore(); } else if (m_dontSave) { e->accept(); } else { if (editorStack->visibleWidget() == reader) { if ((kmap.find(orKey(Qt::NoButton,Key_Escape,false)) != kmap.end()) && m_bcloseDisabled) { // qDebug("Close disabled"); m_bcloseDisabled = false; e->ignore(); } else { if (m_fontVisible) { m_fontBar->hide(); m_fontVisible = false; e->ignore(); return; } if (regVisible) { regBar->hide(); #ifdef USEQPE Global::hideInputMethod(); #endif regVisible = false; e->ignore(); return; } if (searchVisible) { searchBar->hide(); #ifdef USEQPE Global::hideInputMethod(); #endif searchVisible = false; e->ignore(); return; } if (m_fBkmksChanged && pBkmklist != NULL) { if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) savebkmks(); delete pBkmklist; reader->pBkmklist = pBkmklist = NULL; m_fBkmksChanged = 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"); } void QTReaderApp::do_delmark() { m_nBkmkAction = cDelBkmk; if (!listbkmk(pBkmklist)) QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); } bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab, bool presel) { bkmkselector->clear(); if (_lab.isEmpty()) bkmkselector->setText("Cancel"); else bkmkselector->setText(_lab); int cnt = 0; int slt = -1; if (plist != NULL) { for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) { if (presel) { Bkmk* p = i.pContent(); if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) { slt = cnt; } } #ifdef _UNICODE // qDebug("Item:%s", (const char*)toQString(i->name())); bkmkselector->insertItem(toQString(i->name()), cnt++); #else bkmkselector->insertItem(i->name(), cnt++); #endif } } if (cnt > 0) { hidetoolbars(); editorStack->raiseWidget( bkmkselector ); if (slt != -1) bkmkselector->setCurrentItem(slt); return true; } else 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"); regBar->show(); // qDebug("Showing kbd"); #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"); if (!fn.isEmpty() && QFileInfo(fn).isFile()) { // qDebug("Opening"); struct stat fnstat; stat((const char *)fn, &fnstat); if (CFiledata(bk->anno()).date() != fnstat.st_mtime) { CFiledata fd(bk->anno()); fd.setdate(fnstat.st_mtime); bk->value(0); reader->m_lastposn = 0; openFile(fn); } else { unsigned short svlen = bk->filedatalen(); unsigned char* svdata = bk->filedata(); openFile(fn, bk->value()); reader->putSaveData(svdata, svlen); // setstate(svdata, svlen); if (svlen != 0) { QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); } // qDebug("updating"); // showEditTools(); } return true; } else { return false; } } void QTReaderApp::gotobkmk(int ind) { qDebug("gbkmk"); 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->buffdoc.saveposn(reader->m_lastfile, reader->pagelocate()); reader->locate((*pBkmklist)[ind]->value()); break; case cDelBkmk: //// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name()); pBkmklist->erase(ind); m_fBkmksChanged = true; reader->refresh(true); // pBkmklist->sort(); break; case cRmBkmkFile: { #ifndef USEQPE QDir d = QDir::home(); // "/" d.cd(APPDIR); d.remove(bkmkselector->text(ind)); #else /* USEQPE */ unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind))); #endif /* USEQPE */ } break; case cLdConfig: readconfig(APPDIR "/configs", bkmkselector->text(ind), false); break; case cLdTheme: m_themename = bkmkselector->text(ind); readconfig(QString(APPDIR "/Themes/")+m_themename , "config", false); setBackgroundBitmap(); break; case cRmConfig: { #ifndef USEQPE 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))); #endif /* USEQPE */ } 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"); } } #else /* USEQPE */ FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); if (fin != NULL) { bool allok = false; #if defined(OPIE) && defined(OPIEFILEDIALOG) QString outfile = OFileDialog::getSaveFileName(OFileSelector::EXTENDED_ALL, QString::null, QString::null, MimeTypes(), 0, "OpieReader"); if (!outfile.isEmpty()) { 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"); } fclose(fin); if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); #else 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))); #endif } 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; */ #endif /* USEQPE */ } break; } } void QTReaderApp::cancelbkmk() { if (m_nBkmkAction == cOpenFile) { QString fn = usefilebrowser(); if (!fn.isEmpty() && QFileInfo(fn).isFile()) openFile(fn); } showEditTools(); } void QTReaderApp::reparastring() { m_nRegAction = cRepara; regEdit->setText(reader->m_reparastring); do_regedit(); } void QTReaderApp::do_reparastring(const QString& _lcn) { reader->m_reparastring = _lcn; if (reader->brepara) { reader->bDoUpdates = true; reader->setfilter(reader->getfilter()); } } 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; QString lcn = _lcn.stripWhiteSpace(); unsigned long ulcn = lcn.toULong(&ok); if (!ok) { double pc = 0.0; #ifdef _WINDOWS if (lcn.at(lcn.length()-1) == '%') #else if (lcn[lcn.length()-1] == '%') #endif { lcn = lcn.left(lcn.length()-1); pc = lcn.toDouble(&ok); } else { pc = lcn.toDouble(&ok); } if (ok && 0 <= pc && pc <= 100) { ulcn = (pc*(reader->buffdoc.endSection()-reader->buffdoc.startSection()))/100 + reader->buffdoc.startSection(); } else { ok = false; } } if (ok) reader->locate(ulcn); else QMessageBox::information(this, PROGNAME, "Must be a number\nor a percentage"); } 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; case cAddBkmk: do_addbkmk(regEdit->text()); break; case cRepara: do_reparastring(regEdit->text()); break; case cJump: do_jump(regEdit->text()); break; /* case cMonoSpace: do_mono(regEdit->text()); break; */ case cSetTarget: do_settarget(regEdit->text()); break; #ifdef _SCROLLPIPE case cSetPipeTarget: do_setpipetarget(regEdit->text()); break; #endif case cSetConfigName: // qDebug("Saving config"); 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"); } else { 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); } // delete the FontDatabase!!! m_fontSelector->setCurrentItem (reader->m_encd); m_fontAction = cChooseEncoding; m_fontBar->show(); m_fontVisible = true; } void QTReaderApp::setfont() { m_fontSelector->clear(); { QFontDatabase f; 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; } } 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 ); } reader->m_fontname = lcn; if (!reader->ChangeFont(size)) { reader->ChangeFont(size); } } void QTReaderApp::do_setencoding(int i) { qDebug("setencoding:%d", i); if (m_fontAction == cChooseEncoding) { reader->setencoding(i); } reader->refresh(); m_fontBar->hide(); m_fontVisible = false; // qDebug("showedit"); if (reader->isVisible()) showEditTools(); // qDebug("showeditdone"); } void QTReaderApp::do_setfont(const QString& lcn) { if (m_fontAction == cChooseFont) { setfontHelper(lcn); } reader->refresh(); m_fontBar->hide(); m_fontVisible = false; // qDebug("setfont"); //if (reader->isVisible()) showEditTools(); // qDebug("showeditdone"); } void QTReaderApp::do_autogen(const QString& regText) { unsigned long fs, ts; reader->sizes(fs,ts); // // qDebug("Reg:%s\n", (const tchar*)(regEdit->text())); m_autogenstr = regText; QRegExp re(regText); CBuffer buff; if (pBkmklist != NULL) delete pBkmklist; reader->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; unsigned int llcn = reader->locate(); while (i >= 0) { unsigned int lcn = llcn; int pc = (100*lcn)/ts; if (pc != lastpc) { pbar->setProgress(pc); 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)); /* llcn = reader->locate(); if ((i == 0) && (llcn+1 < ts)) { reader->jumpto(++llcn); i = 1; } */ } pBkmklist->sort(); pbar->setProgress(100); qApp->processEvents(); pbar->hide(); reader->refresh(); } void QTReaderApp::saveprefs() { do_saveconfig( APPDIR, true ); savefilelist(); } /* void QTReaderApp::oldFile() { // qDebug("oldFile called"); reader->setText(true); // qDebug("settext called"); showEditTools(); // qDebug("showedit called"); } */ /* 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(); } 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(); filename->value(((reader_ui *)_data)->g_filename); sprintf(sz,"%u",fs); filesize->value(sz); sprintf(sz,"%u",ts); textsize->value(sz); comprat->value(100-(100*fs + (ts >> 1))/ts); sprintf(sz,"%u",pl); posn->value(sz); 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, true); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true, true); #endif /* USEQPE */ bf.write(*pBkmklist); } m_fBkmksChanged = false; } void QTReaderApp::readfilelist() { #ifndef USEQPE QDir d = QDir::home(); // "/" d.cd(APPDIR); QFileInfo fi(d, ".openfiles"); BkmkFile bf((const char *)fi.absFilePath(), false, false); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), false, false); #endif /* USEQPE */ // qDebug("Reading open files"); pOpenlist = bf.readall(); // if (pOpenlist != NULL) qDebug("...with success"); // else qDebug("...without success!"); } 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, false); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true, false); #endif /* USEQPE */ // qDebug("Writing open files"); bf.write(*pOpenlist); } } void QTReaderApp::readbkmks() { if (pBkmklist != NULL) { delete pBkmklist; } struct stat fnstat; struct stat bkstat; #ifndef USEQPE QDir d = QDir::home(); // "/" d.cd(APPDIR); QFileInfo fi(d, reader->m_string); #endif /* ! USEQPE */ if ( stat((const char *)reader->m_lastfile, &fnstat) == 0 && #ifndef USEQPE stat((const char *)fi.absFilePath(), &bkstat) == 0 #else /* USEQPE */ stat((const char *)Global::applicationFileName(APPDIR,reader->m_string), &bkstat) == 0 #endif /* USEQPE */ ) { if (bkstat.st_mtime < fnstat.st_mtime) { #ifndef USEQPE unlink((const char *)fi.absFilePath()); #else /* USEQPE */ unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); #endif /* USEQPE */ } } #ifndef USEQPE BkmkFile bf((const char *)fi.absFilePath(), false, true); #else /* USEQPE */ BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), false, true); #endif /* USEQPE */ reader->pBkmklist = pBkmklist = bf.readall(); m_fBkmksChanged = bf.upgraded(); if (pBkmklist == NULL) { reader->pBkmklist = pBkmklist = reader->getbkmklist(); } if (pBkmklist != NULL) 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) reader->pBkmklist = 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())); #else pBkmklist->push_front(Bkmk((const tchar*)text, reader->pagelocate())); #endif m_fBkmksChanged = true; pBkmklist->sort(); reader->refresh(true); } } void QTReaderApp::UpdateStatus() { QString status; for (int i = 0; i < m_statusstring.length(); i++) { if (m_statusstring[i].unicode() == '%') { i++; if (i < m_statusstring.length()) { switch (m_statusstring[i].unicode()) { case 'F': { unsigned long fs,ts; reader->sizes(fs,ts); status += filesize(ts); } break; case 'f': { status += filesize(reader->pagelocate()); } break; case 'D': { status += filesize(reader->buffdoc.endSection()-reader->buffdoc.startSection()); } break; case 'd': { status += filesize(reader->pagelocate()-reader->buffdoc.startSection()); } break; case 'P': { unsigned long fs,ts; reader->sizes(fs,ts); status += percent(reader->pagelocate(),ts); } break; case 'p': { status += percent(reader->pagelocate()-reader->buffdoc.startSection(),reader->buffdoc.endSection()-reader->buffdoc.startSection()); } break; case 'z': { // qDebug("case d"); status += QString().setNum(reader->m_fontControl.currentsize()*10); } break; default: status += m_statusstring[i]; } } } else { status += m_statusstring[i]; } } m_prog->setText(status); } void QTReaderApp::OnRedraw() { if ((pBkmklist != NULL) && (m_bkmkAvail != NULL)) { bool found = findNextBookmark(reader->pagelocate()); m_bkmkAvail->setEnabled(found); } if (m_scrollbar != NULL) { //qDebug("OnRedraw:[%u, %u]", reader->buffdoc.startSection(), reader->buffdoc.endSection()); scrollbar->setRange(reader->buffdoc.startSection(), reader->buffdoc.endSection()-1); scrollbar->setPageStep(reader->locate()-reader->pagelocate()); scrollbar->setValue((reader->m_rotated) ? (reader->buffdoc.endSection() - reader->locate()+reader->buffdoc.startSection()) : reader->pagelocate()); } if (m_prog->isVisible()) { // qDebug("updating status"); UpdateStatus(); // qDebug("updated status"); } } void QTReaderApp::showAnnotation() { m_annoWin->setName(toQString(m_anno->name())); m_annoWin->setAnno(toQString(m_anno->anno())); m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue())); m_annoIsEditing = false; #ifdef USEQPE Global::showInputMethod(); #endif editorStack->raiseWidget( m_annoWin ); hidetoolbars(); m_annoWin->setFocus(); } void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2, const QString& line) { //// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd); if (m_doOutput && reader->checkoutput()) { reader->doOutput(wrd); } if (m_doClipboard) { QClipboard* cb = QApplication::clipboard(); cb->setText(wrd); #ifdef USEQPE 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_annoWin->setPosn2(posn2); m_annoIsEditing = true; #ifdef USEQPE Global::showInputMethod(); #endif editorStack->raiseWidget( m_annoWin ); hidetoolbars(); } #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; } } #endif } void QTReaderApp::doAction(QKeyEvent* e) { QMap<orKey,int>::Iterator f = kmap.end(); if (reader->m_autoScroll) { f = kmap.find(orKey(e->state(), e->key(), true)); } if (f == kmap.end()) { f = kmap.find(orKey(e->state(), e->key(), false)); } if (f == kmap.end()) { qDebug("doaction (no action) : %d %d %d", e->key(), e->state(), f.data()); e->ignore(); } else { qDebug("doaction (some action) : %d %d %d", e->key(), e->state(), f.data()); ActionTypes a = (ActionTypes)f.data(); e->accept(); // qDebug("Accepted"); switch (a) { case cesGotoLink: { reader->gotoLink(); } break; case cesNextLink: { reader->getNextLink(); } break; case cesInvertColours: m_inverse_action->setOn(!reader->bInverse); break; case cesToggleBars: m_hidebars = !m_hidebars; if (m_hidebars) { #if defined(USEQPE) menubar->hide(); #endif if (fileBar != NULL) fileBar->hide(); if (viewBar != NULL) viewBar->hide(); if (navBar != NULL) navBar->hide(); if (markBar != NULL) markBar->hide(); mb->hide(); } else { #if defined(USEQPE) menubar->show(); #endif if (fileBar != NULL) fileBar->show(); if (viewBar != NULL) viewBar->show(); if (navBar != NULL) navBar->show(); if (markBar != NULL) markBar->show(); mb->show(); } break; case cesToggleScrollBar: if (m_scrollbar != NULL) { if (m_scrollbar->isHidden()) { m_scrollishidden = false; m_scrollbar->show(); reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0; } else { m_scrollishidden = true; m_scrollbar->hide(); reader->m_scrollpos = m_localscroll; } } break; case cesToggleStatusBar: if (m_prog != NULL) { if (m_prog->isHidden()) { m_statusishidden = false; m_prog->show(); } else { m_statusishidden = true; m_prog->hide(); } } break; case cesOpenFile: { qDebug("Open file"); 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 cesRotate: { m_rotate_action->setOn(!reader->m_rotated); } 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(); /* ftime(&m_lastkeytime); m_fndelay = m_debounce; // { timeb now; ftime(&now); m_fndelay = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm+100; } */ break; case cesPageDown: reader->dopagedn(); /* ftime(&m_lastkeytime); m_fndelay = m_debounce; // if (m_debounce != 0) { timeb now; ftime(&now); m_fndelay = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm+10; } */ break; case cesLineUp: reader->lineUp(); break; case cesLineDown: reader->lineDown(); break; case cesStartDoc: gotoStart(); break; case cesEndDoc: gotoEnd(); break; case cesScrollMore: reader->increaseScroll(); break; case cesScrollLess: reader->reduceScroll(); break; default: qDebug("Unknown ActionType:%u", a); break; } } } void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); } 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); #ifdef USEQPE QString configname; Config::Domain dom; if (full) { configname = _txt; dom = Config::User; } else { 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()); #endif config.writeEntry( "StripCr", reader->bstripcr ); config.writeEntry( "NoInlineTables", reader->bNoInlineTables ); 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( "ReparaString", reader->m_reparastring); config.writeEntry( "BackgroundType" , (int)m_bgtype ); config.writeEntry( "Theme", m_themename ); 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( "ScrollStep", reader->m_scrollstep); config.writeEntry( "ScrollType", reader->m_scrolltype ); 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( "OutputCodec", reader->m_outputName); } config.writeEntry( "PageMode", reader->m_bpagemode ); config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); config.writeEntry( "SwapMouse", reader->m_swapmouse); config.writeEntry( "IsRotated", reader->m_rotated ); config.writeEntry("StatusContent", m_statusstring); config.writeEntry("StatusHidden", m_statusishidden); config.writeEntry( "Background", m_background ); config.writeEntry( "Foreground", m_foreground ); config.writeEntry( "ScrollColour", m_scrollcolor ); config.writeEntry( "ScrollBarColour", m_scrollbarcolor ); config.writeEntry( "Hyphenate", reader->hyphenate ); // config.writeEntry( "CustomHyphen", reader->buffdoc.getCustomHyphen() ); 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( "Top Margin", (int)reader->m_abstopmargin ); config.writeEntry( "Bottom Margin", (int)reader->m_absbottommargin ); config.writeEntry( "Left Margin", (int)reader->m_absleft_border ); config.writeEntry( "Right Margin", (int)reader->m_absright_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( "OutputTgt", m_doOutput); /* 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); */ config.writeEntry( "Repalm", reader->brepalm ); config.writeEntry( "UnderlineLink", reader->bunderlineLink ); config.writeEntry( "HideScrollBar", m_scrollishidden ); config.writeEntry( "HideToolBar", m_hidebars ); config.writeEntry( "Kern", reader->bkern ); config.writeEntry( "Remap", reader->bremap ); config.writeEntry( "Peanut", reader->bpeanut ); config.writeEntry( "MakeBold", reader->bmakebold ); config.writeEntry( "Continuous", reader->m_continuousDocument ); config.writeEntry( "DoubleBuffer", reader->m_doubleBuffered); config.writeEntry( "FullJust", reader->bfulljust ); // config.writeEntry( "Negative", reader->bNegative ); config.writeEntry( "Inverse", reader->bInverse ); config.writeEntry( "FixGraphics", reader->m_fontControl.FixGraphics()); config.writeEntry( "ExtraSpace", reader->getextraspace() ); config.writeEntry( "ExtraLead", reader->getlead() ); config.writeEntry( "Basesize", (int)reader->getBaseSize()); config.writeEntry( "RequestorFontChange", m_propogatefontchange); #ifdef USEQPE config.writeEntry( "GrabKeyboard", m_grabkeyboard ); #endif if (full) { config.setGroup( "Toolbar" ); config.writeEntry("QTScrollBar", m_qtscroll); config.writeEntry("LocalScrollBar", m_localscroll); config.writeEntry("Movable", m_tbmovesave); config.writeEntry("Policy", m_tbpolsave); config.writeEntry("Position", m_tbposition); #ifndef USEQPE if (!isMaximized() && !isMinimized()) { config.setGroup( "Geometry" ); config.writeEntry( "x", x() ); config.writeEntry( "y", y() ); config.writeEntry( "width", width() ); config.writeEntry( "height", height() ); } #endif } } #ifdef _SCROLLPIPE void QTReaderApp::setpipetarget() { m_nRegAction = cSetPipeTarget; QString text = (reader->m_pipetarget.isEmpty()) ? QString("") : reader->m_pipetarget; regEdit->setText(text); do_regedit(); } 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& dirname, const QString& _txt, bool full=false) { #ifdef USEQPE QString configname; Config::Domain dom; if (full) { configname = _txt; dom = Config::User; } else { configname = Global::applicationFileName(dirname, _txt); QFileInfo fm(configname); if ( !fm.exists() ) return false; dom = Config::File; } Config config(configname, dom); config.setGroup( "View" ); #else QString fullname; if (full) { fullname = QDir::homeDirPath() + "/" + _txt + "/" + INIFILE; } else { fullname = QDir::homeDirPath() + "/" + dirname + "/" + _txt; } if (!QFile::exists(fullname)) return false; Config config(fullname); #endif if (full) { config.setGroup("Toolbar"); m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", m_tbmovesave); m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", m_tbpolsave); m_tbposition = (ToolBarDock)config.readNumEntry("Position", m_tbposition); } config.setGroup( "View" ); m_bFloatingDialog = config.readBoolEntry("FloatDialogs", m_bFloatingDialog); reader->bstripcr = config.readBoolEntry( "StripCr", reader->bstripcr ); reader->bNoInlineTables = config.readBoolEntry( "NoInlineTables", reader->bNoInlineTables ); reader->bfulljust = config.readBoolEntry( "FullJust", reader->bfulljust ); reader->bInverse = config.readBoolEntry( "Inverse", reader->bInverse ); // reader->bNegative = config.readBoolEntry( "Negative", false ); reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", reader->m_fontControl.FixGraphics() )); reader->setextraspace(config.readNumEntry( "ExtraSpace", reader->getextraspace() )); reader->setlead(config.readNumEntry( "ExtraLead", reader->getlead() )); reader->btextfmt = config.readBoolEntry( "TextFmt", reader->btextfmt ); reader->bautofmt = config.readBoolEntry( "AutoFmt", reader->bautofmt ); reader->bstriphtml = config.readBoolEntry( "StripHtml", reader->bstriphtml ); reader->bpeanut = config.readBoolEntry( "Peanut", reader->bpeanut ); reader->bdehyphen = config.readBoolEntry( "Dehyphen", reader->bdehyphen ); reader->bdepluck = config.readBoolEntry( "Depluck", reader->bdepluck ); reader->bdejpluck = config.readBoolEntry( "Dejpluck", reader->bdejpluck ); reader->bonespace = config.readBoolEntry( "OneSpace", reader->bonespace ); reader->bunindent = config.readBoolEntry( "Unindent", reader->bunindent ); reader->brepara = config.readBoolEntry( "Repara", reader->brepara ); reader->m_reparastring = config.readEntry( "ReparaString", reader->m_reparastring); m_bgtype = (bground)config.readNumEntry( "BackgroundType" , m_bgtype ); m_themename = config.readEntry("Theme", m_themename ); reader->bdblspce = config.readBoolEntry( "DoubleSpace", reader->bdblspce ); reader->bindenter = config.readNumEntry( "Indent", reader->bindenter ); reader->m_textsize = config.readNumEntry( "FontSize", reader->m_textsize ); reader->m_delay = config.readNumEntry( "ScrollDelay", reader->m_delay); reader->m_scrollstep = config.readNumEntry( "ScrollStep", reader->m_scrollstep); reader->m_scrolltype = config.readNumEntry( "ScrollType", reader->m_scrolltype); if (full) { reader->m_lastfile = config.readEntry( "LastFile", reader->m_lastfile ); reader->m_lastposn = config.readNumEntry( "LastPosn", reader->m_lastposn ); } reader->m_bpagemode = config.readBoolEntry( "PageMode", reader->m_bpagemode ); reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", reader->m_bMonoSpaced); reader->m_rotated = config.readBoolEntry( "IsRotated", reader->m_rotated ); m_statusstring = config.readEntry("StatusContent", m_statusstring); m_statusishidden = config.readBoolEntry("StatusHidden", m_statusishidden); m_background = config.readNumEntry( "Background", m_background ); reader->setBackground(getcolour(m_background)); m_foreground = config.readNumEntry( "Foreground", m_foreground ); reader->setForeground(getcolour(m_foreground)); m_scrollcolor = config.readNumEntry( "ScrollColour", m_scrollcolor); setscrollcolour(); m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", m_scrollbarcolor); setscrollbarcolour(); reader->hyphenate = config.readBoolEntry( "Hyphenate", reader->hyphenate ); // reader->buffdoc.setCustomHyphen(config.readBoolEntry( "CustomHyphen", false )); reader->m_swapmouse = config.readBoolEntry( "SwapMouse", reader->m_swapmouse); reader->m_fontname = config.readEntry( "Fontname", reader->m_fontname ); reader->m_encd = config.readNumEntry( "Encoding", reader->m_encd ); reader->m_charpc = config.readNumEntry( "CharSpacing", reader->m_charpc ); reader->m_overlap = config.readNumEntry( "Overlap", reader->m_overlap ); reader->m_abstopmargin = config.readNumEntry( "Top Margin", reader->m_abstopmargin ); reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", reader->m_absbottommargin ); reader->m_absleft_border = config.readNumEntry( "Left Margin", reader->m_absleft_border ); reader->m_absright_border = config.readNumEntry( "Right Margin", reader->m_absright_border ); m_scrollishidden = config.readBoolEntry( "HideScrollBar", m_scrollishidden ); m_hidebars = config.readBoolEntry( "HideToolBar", m_hidebars ); reader->brepalm = config.readBoolEntry( "Repalm", reader->brepalm ); reader->bunderlineLink = config.readBoolEntry( "UnderlineLink", reader->bunderlineLink ); reader->bkern = config.readBoolEntry( "Kern", reader->bkern ); reader->bremap = config.readBoolEntry( "Remap", reader->bremap ); reader->bmakebold = config.readBoolEntry( "MakeBold", reader->bmakebold ); reader->setContinuous(config.readBoolEntry( "Continuous", reader->m_continuousDocument )); reader->setDoubleBuffer(config.readBoolEntry("DoubleBuffer", reader->m_doubleBuffered)); m_targetapp = config.readEntry( "TargetApp", m_targetapp ); m_targetmsg = config.readEntry( "TargetMsg", m_targetmsg ); #ifdef _SCROLLPIPE reader->m_pipetarget = config.readEntry( "PipeTarget", reader->m_pipetarget ); reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); #endif m_twoTouch = config.readBoolEntry( "TwoTouch", m_twoTouch); m_doAnnotation = config.readBoolEntry( "Annotation", m_doAnnotation); m_doDictionary = config.readBoolEntry( "Dictionary", m_doDictionary); m_doClipboard = config.readBoolEntry( "Clipboard", m_doClipboard); m_doOutput = config.readBoolEntry( "OutputTgt", m_doOutput); #ifdef USEQPE m_grabkeyboard = config.readBoolEntry( "GrabKeyboard", m_grabkeyboard); #endif m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", m_propogatefontchange); reader->setBaseSize(config.readNumEntry( "Basesize", reader->getBaseSize() )); reader->setTwoTouch(m_twoTouch); |