summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/QTReaderApp.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-reader/QTReaderApp.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp238
1 files changed, 172 insertions, 66 deletions
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp
index 876b65a..6753698 100644
--- a/noncore/apps/opie-reader/QTReaderApp.cpp
+++ b/noncore/apps/opie-reader/QTReaderApp.cpp
@@ -16,8 +16,9 @@
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
+
#include <qregexp.h>
#include <qclipboard.h>
#include <qwidgetstack.h>
#ifdef USEQPE
@@ -65,18 +66,23 @@
#include "FixedFont.h"
#include "URLDialog.h"
#include "util.h"
#include <qfontdatabase.h>
+
#ifdef USEQPE
#include <qpe/resource.h>
#ifdef OPIE
-//#include <qpe/applnk.h>
+#if defined(OPIEFILEDIALOG)
+#include <qpe/applnk.h>
#include <opie2/ofiledialog.h>
using namespace Opie::Ui;
#else
#include "fileBrowser.h"
#endif
#else
+#include "fileBrowser.h"
+#endif
+#else
#include "qfiledialog.h"
#endif
#include "QTReaderApp.h"
@@ -87,9 +93,9 @@ using namespace Opie::Ui;
#include "CloseDialog.h"
#include "ButtonPrefs.h"
-bool CheckVersion(int&, int&, char&);
+bool CheckVersion(int&, int&, char&, QWidget*);
#ifdef _WINDOWS
#define PICDIR "c:\\uqtreader\\pics\\"
#else
@@ -152,13 +158,11 @@ void QTReaderApp::listBkmkFiles()
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() );
++it; // goto next list element
}
@@ -176,10 +180,9 @@ void QTReaderApp::listBkmkFiles()
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++;
+ bkmkselector->insertItem(de->d_name, cnt++);
}
}
closedir(d);
@@ -201,9 +204,9 @@ void QTReaderApp::hidetoolbars()
{
if (m_scrollbar != NULL) m_scrollbar->hide();
if (m_prog != NULL) m_prog->hide();
-#ifdef USEQPE
+#if defined(USEQPE)
menubar->hide();
#endif
if (m_scrollbar != NULL) m_scrollbar->hide();
@@ -332,16 +335,16 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
// QToolBar* viewBar = new QToolBar("File", this);
// QToolBar* navBar = new QToolBar("File", this);
// QToolBar* markBar = new QToolBar("File", this);
-#ifdef USEQPE
+#if defined(USEQPE)
menubar = new QToolBar("Menus", this, m_tbposition);
mb = new QPEMenuBar( menubar );
#else
mb = new QMenuBar( this );
#endif
-#ifdef USEQPE
+#if defined(USEQPE)
QPopupMenu* tmp = new QPopupMenu(mb);
mb->insertItem( geticon( "AppsIcon" ), tmp );
#else
QMenuBar* tmp = mb;
@@ -435,8 +438,11 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
// qDebug("Reading config");
// Config config( APPDIR );
config.setGroup( "View" );
+#if defined(USEQPE) && defined(USENEWFULLSCREEN)
+ m_usenewfullscreen = config.readBoolEntry("NewFullScreen", false);
+#endif
m_debounce = config.readNumEntry("Debounce", 0);
m_buttonprefs->Debounce(m_debounce);
#ifdef USEQPE
m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
@@ -455,8 +461,9 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
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->bNoInlineTables = config.readBoolEntry( "NoInlineTables", 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 );
@@ -470,8 +477,10 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
reader->bindenter = config.readNumEntry( "Indent", 0 );
reader->m_textsize = config.readNumEntry( "FontSize", 12 );
reader->m_delay = config.readNumEntry( "ScrollDelay", 5184);
reader->m_scrollstep = config.readNumEntry( "ScrollStep", 1);
+ reader->m_outputName = config.readEntry( "OutputCodec", "");
+
reader->m_lastfile = config.readEntry( "LastFile", QString::null );
reader->m_lastposn = config.readNumEntry( "LastPosn", 0 );
reader->m_bpagemode = config.readBoolEntry( "PageMode", true );
@@ -499,14 +508,17 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
reader->m_absleft_border = config.readNumEntry( "Left Margin", 100 );
reader->m_absright_border = config.readNumEntry( "Right Margin", 100 );
m_scrollishidden = config.readBoolEntry( "HideScrollBar", false );
+ m_hidebars = config.readBoolEntry( "HideToolBar", false );
reader->brepalm = config.readBoolEntry( "Repalm", false );
+ reader->bunderlineLink = config.readBoolEntry( "UnderlineLink", true );
reader->bkern = config.readBoolEntry( "Kern", false );
reader->bremap = config.readBoolEntry( "Remap", true );
reader->bmakebold = config.readBoolEntry( "MakeBold", false );
reader->setContinuous(config.readBoolEntry( "Continuous", true ));
+ reader->setDoubleBuffer(config.readBoolEntry("DoubleBuffer", 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 );
@@ -515,8 +527,9 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
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_doOutput = config.readBoolEntry( "OutputTgt", false);
/*
m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll);
m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone);
m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen);
@@ -841,8 +854,20 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
setToolBarsMovable(m_tbmove);
addtoolbars(&config);
+ 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();
+ }
+
pbar = new QProgressBar(this);
pbar->hide();
@@ -971,8 +996,9 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
// qDebug("fonted");
QFont progfont(reader->m_fontname, reader->m_fontControl.getsize(0));
m_prog->setFont( progfont );
if (m_statusishidden) m_prog->hide();
+ showEditTools();
if (!reader->m_lastfile.isEmpty())
{
// qDebug("doclnk");
// doc = new DocLnk(reader->m_lastfile);
@@ -1031,15 +1057,15 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
else
{
reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0;
}
- reader->bDoUpdates = true;
- reader->update();
+ // 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))
+ if (CheckVersion(major, bkmktype, minor, this))
{
config.writeEntry("Major", major);
config.writeEntry("BkmkType", bkmktype);
config.writeEntry("Minor", (int)minor);
@@ -1064,9 +1090,9 @@ void QTReaderApp::addtoolbars(Config* config)
config->setGroup("Toolbar");
if (fileBar != NULL)
{
-#ifdef USEQPE
+#if defined(USEQPE)
if (fileBar != menubar)
{
fileBar->clear();
}
@@ -1092,9 +1118,9 @@ void QTReaderApp::addtoolbars(Config* config)
addfilebar(config, "Find", m_find_action);
if (navBar != NULL)
{
-#ifdef USEQPE
+#if defined(USEQPE)
if ((navBar == fileBar) && (fileBar == menubar))
#else
if (navBar == fileBar)
#endif
@@ -1131,9 +1157,9 @@ void QTReaderApp::addtoolbars(Config* config)
addnavbar(config, "Forward", m_forward_action);
if (viewBar != NULL)
{
-#ifdef USEQPE
+#if defined(USEQPE)
if ((viewBar == fileBar) && (fileBar == menubar))
#else
if (viewBar == fileBar)
#endif
@@ -1163,9 +1189,9 @@ void QTReaderApp::addtoolbars(Config* config)
addviewbar(config, "Ideogram Mode", m_setmono_action);
if (markBar != NULL)
{
-#ifdef USEQPE
+#if defined(USEQPE)
if ((markBar == fileBar) && (fileBar == menubar))
#else
if (markBar == fileBar)
#endif
@@ -1232,9 +1258,9 @@ QToolBar* QTReaderApp::filebar()
if (fileBar == NULL)
{
switch (m_tbpol)
{
-#ifdef USEQPE
+#if defined(USEQPE)
case cesSingle:
// qDebug("Setting filebar to menubar");
fileBar = menubar;
break;
@@ -1716,9 +1742,8 @@ void QTReaderApp::setrotated(bool sfs)
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);
- reader->repaint();
}
else
{
m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::RightToLeft : QBoxLayout::LeftToRight );
@@ -1732,11 +1757,10 @@ void QTReaderApp::setrotated(bool sfs)
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->repaint();
}
- // reader->update();
+ reader->refresh();
}
void QTReaderApp::setgrab(bool sfs)
{
@@ -1927,9 +1951,9 @@ void QTReaderApp::fileOpen2()
bool usebrowser = true;
if (pOpenlist != NULL)
{
m_nBkmkAction = cOpenFile;
- if (listbkmk(pOpenlist, "Browse")) usebrowser = false;
+ if (listbkmk(pOpenlist, "Browse", true)) usebrowser = false;
}
if (usebrowser)
{
QString fn = usefilebrowser();
@@ -1950,9 +1974,9 @@ QString QTReaderApp::usefilebrowser()
QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) );
return s;
#else
QString fn;
-#ifdef OPIE
+#if defined(OPIE) && defined(OPIEFILEDIALOG)
QMap<QString, QStringList> mimeTypes;
QStringList etypes;
etypes << "etext/*";
mimeTypes.insert( tr("eText"), etypes );
@@ -2002,8 +2026,9 @@ void QTReaderApp::showprefs()
// 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);
@@ -2014,8 +2039,9 @@ void QTReaderApp::showprefs()
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);
@@ -2055,8 +2081,9 @@ void QTReaderApp::showprefs()
}
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);
@@ -2069,8 +2096,9 @@ void QTReaderApp::showprefs()
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);
@@ -2084,12 +2112,16 @@ void QTReaderApp::showprefs()
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();
@@ -2106,8 +2138,9 @@ void QTReaderApp::showprefs()
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();
@@ -2148,8 +2181,9 @@ void QTReaderApp::showprefs()
}
reader->bdepluck = prefwin->Depluck();
reader->bdejpluck = prefwin->Dejpluck();
reader->setContinuous(prefwin->Continuous());
+ reader->setDoubleBuffer(prefwin->DoubleBuffer());
/*
m_leftScroll = prefwin->leftScroll();
m_rightScroll = prefwin->rightScroll();
@@ -2161,8 +2195,9 @@ void QTReaderApp::showprefs()
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();
@@ -2182,8 +2217,17 @@ void QTReaderApp::showprefs()
{
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();
}
@@ -2289,14 +2333,38 @@ void QTReaderApp::showinfo()
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();
@@ -2741,9 +2809,9 @@ void QTReaderApp::search()
findNext();
}
#endif
-void QTReaderApp::openFile( const QString &f )
+void QTReaderApp::openFile( const QString &f, unsigned int loc )
{
// qDebug("File:%s", (const char*)f);
// openFile(DocLnk(f));
//}
@@ -2764,9 +2832,9 @@ void QTReaderApp::openFile( const QString &f )
if (!fm.exists()) return;
}
#endif
clear();
- reader->setText(fm.baseName(), fm.absFilePath());
+ reader->setText(fm.baseName(), fm.absFilePath(), loc);
m_loadedconfig = readconfig(APPDIR "/configs", reader->m_string, false);
qDebug("Showing tools");
showEditTools();
qDebug("Shown tools");
@@ -2805,9 +2873,9 @@ void QTReaderApp::handlekey(QKeyEvent* e)
}
switch(e->key())
{
case Key_Escape:
-// qDebug("escape event");
+ qDebug("escape event");
if (m_disableesckey)
{
m_disableesckey = false;
}
@@ -2890,31 +2958,32 @@ void QTReaderApp::handlekey(QKeyEvent* e)
}
ftime(&m_lastkeytime);
}
-#ifdef NEWFULLSCREEN
-void QTReaderApp::enableFullscreen()
-{
- setFixedSize(qApp->desktop()->size());
- showNormal();
- reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
- showFullScreen();
-}
-
-void QTReaderApp::resizeEvent(QResizeEvent *)
+#if defined(USEQPE) && defined(USENEWFULLSCREEN)
+void QTReaderApp::focusInEvent(QFocusEvent *)
{
- if (m_fullscreen && (size() != qApp->desktop()->size()))
+ if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
{
- enableFullscreen();
+ m_usenewfullscreen = false;
+ reader->bDoUpdates = false;
+ showEditTools();
+ reader->bDoUpdates = true;
+ reader->update();
+ m_usenewfullscreen = true;
}
}
-void QTReaderApp::focusInEvent(QFocusEvent*)
+void QTReaderApp::resizeEvent(QResizeEvent *)
{
- if (m_fullscreen)
+ if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
{
- enableFullscreen();
- raise();
+ m_usenewfullscreen = false;
+ reader->bDoUpdates = false;
+ showEditTools();
+ reader->bDoUpdates = true;
+ reader->update();
+ m_usenewfullscreen = true;
}
}
#endif
@@ -2923,9 +2992,9 @@ void QTReaderApp::showEditTools()
// if ( !doc )
// close();
if (m_fullscreen)
{
-#ifdef USEQPE
+#if defined(USEQPE)
if (menubar != NULL) menubar->hide();
#endif
if (fileBar != NULL) fileBar->hide();
if (viewBar != NULL) viewBar->hide();
@@ -2943,13 +3012,9 @@ void QTReaderApp::showEditTools()
#endif
if (m_scrollbar != NULL) m_scrollbar->hide();
m_fontBar->hide();
// showNormal();
-#ifdef NEWFULLSCREEN
- enableFullscreen();
-#else
showFullScreen();
-#endif
}
else
{
// qDebug("him");
@@ -2969,9 +3034,9 @@ void QTReaderApp::showEditTools()
}
}
if (!m_hidebars)
{
-#ifdef USEQPE
+#if defined(USEQPE)
menubar->show();
#endif
if (fileBar != NULL) fileBar->show();
if (viewBar != NULL) viewBar->show();
@@ -3003,9 +3068,9 @@ void QTReaderApp::showEditTools()
if (m_fontVisible) m_fontBar->show();
// qDebug("sn");
showNormal();
// qDebug("sm");
-#ifdef USEQPE
+#if defined(USEQPE) && !defined(SIMPAD)
showMaximized();
#endif
// setCentralWidget(reader);
}
@@ -3016,9 +3081,9 @@ void QTReaderApp::showEditTools()
editorStack->raiseWidget( reader );
// qDebug("sf");
reader->setFocus();
// qDebug("ref");
- reader->refresh(true);
+ //reader->refresh(true);
// qDebug("done");
}
/*
void QTReaderApp::save()
@@ -3173,33 +3238,43 @@ void QTReaderApp::do_delmark()
if (!listbkmk(pBkmklist))
QMessageBox::information(this, PROGNAME, "No bookmarks in memory");
}
-bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab)
+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()));
+ bkmkselector->insertItem(toQString(i->name()), cnt++);
#else
- bkmkselector->insertItem(i->name());
+ bkmkselector->insertItem(i->name(), cnt++);
#endif
- cnt++;
+
}
}
if (cnt > 0)
{
hidetoolbars();
editorStack->raiseWidget( bkmkselector );
+ if (slt != -1) bkmkselector->setCurrentItem(slt);
return true;
}
else
return false;
@@ -3237,32 +3312,33 @@ bool QTReaderApp::openfrombkmk(Bkmk* bk)
// qDebug("fileinfo");
if (!fn.isEmpty() && QFileInfo(fn).isFile())
{
// qDebug("Opening");
- openFile(fn);
struct stat fnstat;
- stat((const char *)reader->m_lastfile, &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();
- reader->locate(bk->value());
}
return true;
}
else
@@ -3365,9 +3441,9 @@ void QTReaderApp::gotobkmk(int ind)
FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r");
if (fin != NULL)
{
bool allok = false;
-#ifdef OPIE
+#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");
@@ -3702,11 +3778,12 @@ void QTReaderApp::do_autogen(const QString& regText)
reader->setFocus();
reader->jumpto(0);
int lastpc = 0;
int i = 0;
+ unsigned int llcn = reader->locate();
while (i >= 0)
{
- unsigned int lcn = reader->locate();
+ unsigned int lcn = llcn;
int pc = (100*lcn)/ts;
if (pc != lastpc)
{
pbar->setProgress(pc);
@@ -3721,8 +3798,16 @@ void QTReaderApp::do_autogen(const QString& regText)
#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();
@@ -4031,8 +4116,12 @@ void QTReaderApp::showAnnotation()
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);
@@ -4115,9 +4204,9 @@ void QTReaderApp::doAction(QKeyEvent* e)
case cesToggleBars:
m_hidebars = !m_hidebars;
if (m_hidebars)
{
-#ifdef USEQPE
+#if defined(USEQPE)
menubar->hide();
#endif
if (fileBar != NULL) fileBar->hide();
if (viewBar != NULL) viewBar->hide();
@@ -4126,9 +4215,9 @@ void QTReaderApp::doAction(QKeyEvent* e)
mb->hide();
}
else
{
-#ifdef USEQPE
+#if defined(USEQPE)
menubar->show();
#endif
if (fileBar != NULL) fileBar->show();
if (viewBar != NULL) viewBar->show();
@@ -4339,8 +4428,9 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
#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 );
@@ -4364,8 +4454,9 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
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);
@@ -4395,8 +4486,9 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
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);
@@ -4409,14 +4501,17 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
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());
@@ -4518,8 +4613,9 @@ bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool f
}
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() ));
@@ -4573,13 +4669,16 @@ bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool f
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 );
@@ -4588,15 +4687,18 @@ bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool f
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);
+ reader->m_outputName = config.readEntry( "OutputCodec", reader->m_outputName);
+
m_touch_action->setOn(m_twoTouch);
m_setmono_action->setOn(reader->m_bMonoSpaced);
setfontHelper(reader->m_fontname);
if (full)
@@ -4636,10 +4738,9 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
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() );
++it; // goto next list element
}
@@ -4662,10 +4763,9 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
if (de == NULL) break;
if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && ((usedirs && S_ISDIR(buf.st_mode)) || (!usedirs && S_ISREG(buf.st_mode))))
{
- bkmkselector->insertItem(de->d_name);
- cnt++;
+ bkmkselector->insertItem(de->d_name, cnt++);
}
}
delete [] finaldir;
closedir(d);
@@ -4734,8 +4834,10 @@ void QTReaderApp::OnURLSelected(const QString& href, const size_t tgt)
else
{
qDebug("No type");
}
+ QString msg = "External URL\n" + href;
+ QMessageBox::information(this, PROGNAME, msg);
#else
if (href.isEmpty())
{
QMessageBox::information(this, PROGNAME, "No URL information supplied");
@@ -4900,9 +5002,9 @@ void QTReaderApp::forceopen(const QString& filename)
QFileInfo fi(reader->m_lastfile);
fi = QFileInfo(filename);
QString flnm = fi.absFilePath();
*/
- if (!filename.isEmpty())
+ if (!filename.isEmpty() && QFileInfo(filename).exists())
{
updatefileinfo();
if (pBkmklist != NULL)
{
@@ -4917,8 +5019,12 @@ void QTReaderApp::forceopen(const QString& filename)
reader->disableAutoscroll();
openFile(filename);
reader->setFocus();
}
+ else
+ {
+ OnURLSelected(filename, 0);
+ }
}
void QTReaderApp::actionscroll(int v)
{