summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/QTReaderApp.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/QTReaderApp.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp246
1 files changed, 176 insertions, 70 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
@@ -4,32 +4,33 @@
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20
20#include <qregexp.h> 21#include <qregexp.h>
21#include <qclipboard.h> 22#include <qclipboard.h>
22#include <qwidgetstack.h> 23#include <qwidgetstack.h>
23#ifdef USEQPE 24#ifdef USEQPE
24#include <qpe/qpemenubar.h> 25#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 26#include <qpe/qpetoolbar.h>
26#endif 27#endif
27#include <qmenubar.h> 28#include <qmenubar.h>
28#include <qtoolbar.h> 29#include <qtoolbar.h>
29#ifdef USEQPE 30#ifdef USEQPE
30#include <qpe/menubutton.h> 31#include <qpe/menubutton.h>
31#endif 32#endif
32#include <qcombobox.h> 33#include <qcombobox.h>
33#include <qpopupmenu.h> 34#include <qpopupmenu.h>
34#include <qaction.h> 35#include <qaction.h>
35#include <qapplication.h> 36#include <qapplication.h>
@@ -53,55 +54,60 @@
53#ifdef USEQPE 54#ifdef USEQPE
54#include <qpe/qcopenvelope_qws.h> 55#include <qpe/qcopenvelope_qws.h>
55#endif 56#endif
56#include "QTReader.h" 57#include "QTReader.h"
57#include "GraphicWin.h" 58#include "GraphicWin.h"
58#include "Bkmks.h" 59#include "Bkmks.h"
59#include "cbkmkselector.h" 60#include "cbkmkselector.h"
60#include "infowin.h" 61#include "infowin.h"
61#include "ToolbarPrefs.h" 62#include "ToolbarPrefs.h"
62#include "Prefs.h" 63#include "Prefs.h"
63#include "CAnnoEdit.h" 64#include "CAnnoEdit.h"
64#include "QFloatBar.h" 65#include "QFloatBar.h"
65#include "FixedFont.h" 66#include "FixedFont.h"
66#include "URLDialog.h" 67#include "URLDialog.h"
67#include "util.h" 68#include "util.h"
68#include <qfontdatabase.h> 69#include <qfontdatabase.h>
70
69#ifdef USEQPE 71#ifdef USEQPE
70#include <qpe/resource.h> 72#include <qpe/resource.h>
71#ifdef OPIE 73#ifdef OPIE
72//#include <qpe/applnk.h> 74#if defined(OPIEFILEDIALOG)
75#include <qpe/applnk.h>
73#include <opie2/ofiledialog.h> 76#include <opie2/ofiledialog.h>
74using namespace Opie::Ui; 77using namespace Opie::Ui;
75#else 78#else
76#include "fileBrowser.h" 79#include "fileBrowser.h"
77#endif 80#endif
78#else 81#else
82#include "fileBrowser.h"
83#endif
84#else
79#include "qfiledialog.h" 85#include "qfiledialog.h"
80#endif 86#endif
81 87
82#include "QTReaderApp.h" 88#include "QTReaderApp.h"
83#include "CDrawBuffer.h" 89#include "CDrawBuffer.h"
84#include "Filedata.h" 90#include "Filedata.h"
85#include "names.h" 91#include "names.h"
86#include "CEncoding_tables.h" 92#include "CEncoding_tables.h"
87#include "CloseDialog.h" 93#include "CloseDialog.h"
88 94
89#include "ButtonPrefs.h" 95#include "ButtonPrefs.h"
90 96
91bool CheckVersion(int&, int&, char&); 97bool CheckVersion(int&, int&, char&, QWidget*);
92 98
93#ifdef _WINDOWS 99#ifdef _WINDOWS
94#define PICDIR "c:\\uqtreader\\pics\\" 100#define PICDIR "c:\\uqtreader\\pics\\"
95#else 101#else
96#ifdef USEQPE 102#ifdef USEQPE
97#define USEMSGS 103#define USEMSGS
98#define PICDIR "opie-reader/" 104#define PICDIR "opie-reader/"
99#else 105#else
100//#define PICDIR "/home/tim/uqtreader/pics/" 106//#define PICDIR "/home/tim/uqtreader/pics/"
101QString picdir() 107QString picdir()
102{ 108{
103 QString hd(getenv("READERDIR")); 109 QString hd(getenv("READERDIR"));
104 return hd + "/pics"; 110 return hd + "/pics";
105} 111}
106#define PICDIR picdir() 112#define PICDIR picdir()
107#endif 113#endif
@@ -140,82 +146,79 @@ void QTReaderApp::listBkmkFiles()
140 if ( !d.cd(APPDIR) ) { // "/tmp" 146 if ( !d.cd(APPDIR) ) { // "/tmp"
141 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 147 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
142 d = QDir::home(); 148 d = QDir::home();
143 d.mkdir(APPDIR); 149 d.mkdir(APPDIR);
144 d.cd(APPDIR); 150 d.cd(APPDIR);
145 } 151 }
146 152
147 153
148 154
149 155
150 d.setFilter( QDir::Files | QDir::NoSymLinks ); 156 d.setFilter( QDir::Files | QDir::NoSymLinks );
151// d.setSorting( QDir::Size | QDir::Reversed ); 157// d.setSorting( QDir::Size | QDir::Reversed );
152 158
153 const QFileInfoList *list = d.entryInfoList(); 159 const QFileInfoList *list = d.entryInfoList();
154 QFileInfoListIterator it( *list ); // create list iterator 160 QFileInfoListIterator it( *list ); // create list iterator
155 QFileInfo *fi; // pointer for traversing 161 QFileInfo *fi; // pointer for traversing
156
157 while ( (fi=it.current()) ) { // for each file... 162 while ( (fi=it.current()) ) { // for each file...
158 163
159 bkmkselector->insertItem(fi->fileName()); 164 bkmkselector->insertItem(fi->fileName(), cnt++);
160 cnt++;
161 165
162 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 166 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
163 ++it; // goto next list element 167 ++it; // goto next list element
164 } 168 }
165 169
166#else /* USEQPE */ 170#else /* USEQPE */
167 int cnt = 0; 171 int cnt = 0;
168 DIR *d; 172 DIR *d;
169 d = opendir((const char *)Global::applicationFileName(APPDIR,"")); 173 d = opendir((const char *)Global::applicationFileName(APPDIR,""));
170 174
171 while(1) 175 while(1)
172 { 176 {
173 struct dirent* de; 177 struct dirent* de;
174 struct stat buf; 178 struct stat buf;
175 de = readdir(d); 179 de = readdir(d);
176 if (de == NULL) break; 180 if (de == NULL) break;
177 181
178 if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) 182 if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode))
179 { 183 {
180 bkmkselector->insertItem(de->d_name); 184 bkmkselector->insertItem(de->d_name, cnt++);
181 cnt++;
182 } 185 }
183 } 186 }
184 187
185 closedir(d); 188 closedir(d);
186#endif 189#endif
187 if (cnt > 0) 190 if (cnt > 0)
188 { 191 {
189//tjw menu->hide(); 192//tjw menu->hide();
190 193
191 194
192 editorStack->raiseWidget( bkmkselector ); 195 editorStack->raiseWidget( bkmkselector );
193 hidetoolbars(); 196 hidetoolbars();
194 m_nBkmkAction = cRmBkmkFile; 197 m_nBkmkAction = cRmBkmkFile;
195 } 198 }
196 else 199 else
197 QMessageBox::information(this, PROGNAME, "No bookmark files"); 200 QMessageBox::information(this, PROGNAME, "No bookmark files");
198} 201}
199 202
200void QTReaderApp::hidetoolbars() 203void QTReaderApp::hidetoolbars()
201{ 204{
202 if (m_scrollbar != NULL) m_scrollbar->hide(); 205 if (m_scrollbar != NULL) m_scrollbar->hide();
203 if (m_prog != NULL) m_prog->hide(); 206 if (m_prog != NULL) m_prog->hide();
204 207
205#ifdef USEQPE 208#if defined(USEQPE)
206 menubar->hide(); 209 menubar->hide();
207#endif 210#endif
208 211
209 if (m_scrollbar != NULL) m_scrollbar->hide(); 212 if (m_scrollbar != NULL) m_scrollbar->hide();
210 213
211 if (fileBar != NULL) fileBar->hide(); 214 if (fileBar != NULL) fileBar->hide();
212 if (viewBar != NULL) viewBar->hide(); 215 if (viewBar != NULL) viewBar->hide();
213 if (navBar != NULL) navBar->hide(); 216 if (navBar != NULL) navBar->hide();
214 if (markBar != NULL) markBar->hide(); 217 if (markBar != NULL) markBar->hide();
215 if (m_fontVisible) m_fontBar->hide(); 218 if (m_fontVisible) m_fontBar->hide();
216 if (regVisible) 219 if (regVisible)
217 { 220 {
218#ifdef USEQPE 221#ifdef USEQPE
219 Global::hideInputMethod(); 222 Global::hideInputMethod();
220#endif 223#endif
221 regBar->hide(); 224 regBar->hide();
@@ -320,40 +323,40 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
320 QFileInfo fi(d, INIFILE); 323 QFileInfo fi(d, INIFILE);
321// qDebug("Path:%s", (const char*)fi.absFilePath()); 324// qDebug("Path:%s", (const char*)fi.absFilePath());
322 Config config(fi.absFilePath()); 325 Config config(fi.absFilePath());
323#endif 326#endif
324 config.setGroup("Toolbar"); 327 config.setGroup("Toolbar");
325 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 328 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false);
326 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 329 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1);
327 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 330 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2);
328 m_qtscroll = config.readNumEntry("QTScrollBar", false); 331 m_qtscroll = config.readNumEntry("QTScrollBar", false);
329 m_localscroll = config.readNumEntry("LocalScrollBar", false); 332 m_localscroll = config.readNumEntry("LocalScrollBar", false);
330 333
331// fileBar = new QToolBar("File", this); 334// fileBar = new QToolBar("File", this);
332// QToolBar* viewBar = new QToolBar("File", this); 335// QToolBar* viewBar = new QToolBar("File", this);
333// QToolBar* navBar = new QToolBar("File", this); 336// QToolBar* navBar = new QToolBar("File", this);
334// QToolBar* markBar = new QToolBar("File", this); 337// QToolBar* markBar = new QToolBar("File", this);
335 338
336#ifdef USEQPE 339#if defined(USEQPE)
337 menubar = new QToolBar("Menus", this, m_tbposition); 340 menubar = new QToolBar("Menus", this, m_tbposition);
338 mb = new QPEMenuBar( menubar ); 341 mb = new QPEMenuBar( menubar );
339#else 342#else
340 mb = new QMenuBar( this ); 343 mb = new QMenuBar( this );
341#endif 344#endif
342 345
343#ifdef USEQPE 346#if defined(USEQPE)
344 QPopupMenu* tmp = new QPopupMenu(mb); 347 QPopupMenu* tmp = new QPopupMenu(mb);
345 mb->insertItem( geticon( "AppsIcon" ), tmp ); 348 mb->insertItem( geticon( "AppsIcon" ), tmp );
346#else 349#else
347 QMenuBar* tmp = mb; 350 QMenuBar* tmp = mb;
348#endif 351#endif
349 352
350 QPopupMenu *file = new QPopupMenu( mb ); 353 QPopupMenu *file = new QPopupMenu( mb );
351 tmp->insertItem( tr( "File" ), file ); 354 tmp->insertItem( tr( "File" ), file );
352 355
353 QPopupMenu *navigation = new QPopupMenu(mb); 356 QPopupMenu *navigation = new QPopupMenu(mb);
354 tmp->insertItem( tr( "Navigation" ), navigation ); 357 tmp->insertItem( tr( "Navigation" ), navigation );
355 358
356 QPopupMenu *view = new QPopupMenu( mb ); 359 QPopupMenu *view = new QPopupMenu( mb );
357 tmp->insertItem( tr( "View" ), view ); 360 tmp->insertItem( tr( "View" ), view );
358 361
359 QPopupMenu *marks = new QPopupMenu( this ); 362 QPopupMenu *marks = new QPopupMenu( this );
@@ -423,112 +426,122 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
423 importSelector->setCloseVisible( FALSE ); 426 importSelector->setCloseVisible( FALSE );
424*/ 427*/
425// qDebug("Reading file list"); 428// qDebug("Reading file list");
426 readfilelist(); 429 readfilelist();
427 430
428 reader = new QTReader( editorStack ); 431 reader = new QTReader( editorStack );
429 432
430 reader->setDoUpdates(false); 433 reader->setDoUpdates(false);
431 434
432#ifdef USEQPE 435#ifdef USEQPE
433 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); 436 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold);
434#endif 437#endif
435 438
436// qDebug("Reading config"); 439// qDebug("Reading config");
437// Config config( APPDIR ); 440// Config config( APPDIR );
438 config.setGroup( "View" ); 441 config.setGroup( "View" );
442#if defined(USEQPE) && defined(USENEWFULLSCREEN)
443 m_usenewfullscreen = config.readBoolEntry("NewFullScreen", false);
444#endif
439 m_debounce = config.readNumEntry("Debounce", 0); 445 m_debounce = config.readNumEntry("Debounce", 0);
440 m_buttonprefs->Debounce(m_debounce); 446 m_buttonprefs->Debounce(m_debounce);
441#ifdef USEQPE 447#ifdef USEQPE
442 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 448 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
443#else 449#else
444 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); 450 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true);
445#endif 451#endif
446 reader->setStripCR(config.readBoolEntry( "StripCr", true )); 452 reader->setStripCR(config.readBoolEntry( "StripCr", true ));
447 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 453 reader->bfulljust = config.readBoolEntry( "FullJust", false );
448 /* 454 /*
449 bool btmp = config.readBoolEntry("Negative", false); 455 bool btmp = config.readBoolEntry("Negative", false);
450 if (btmp) reader->setNegative(); 456 if (btmp) reader->setNegative();
451 */ 457 */
452 reader->bInverse = config.readBoolEntry("Inverse", false); 458 reader->bInverse = config.readBoolEntry("Inverse", false);
453 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", false )); 459 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", false ));
454 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 460 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 ));
455 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 461 reader->setlead(config.readNumEntry( "ExtraLead", 0 ));
456 reader->btextfmt = config.readBoolEntry( "TextFmt", false ); 462 reader->btextfmt = config.readBoolEntry( "TextFmt", false );
457 reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); 463 reader->bautofmt = config.readBoolEntry( "AutoFmt", true );
458 reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); 464 reader->bstriphtml = config.readBoolEntry( "StripHtml", false );
465 reader->bNoInlineTables = config.readBoolEntry( "NoInlineTables", false );
459 reader->bpeanut = config.readBoolEntry( "Peanut", false ); 466 reader->bpeanut = config.readBoolEntry( "Peanut", false );
460 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); 467 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false );
461 reader->bdepluck = config.readBoolEntry( "Depluck", false ); 468 reader->bdepluck = config.readBoolEntry( "Depluck", false );
462 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); 469 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false );
463 reader->bonespace = config.readBoolEntry( "OneSpace", false ); 470 reader->bonespace = config.readBoolEntry( "OneSpace", false );
464 reader->bunindent = config.readBoolEntry( "Unindent", false ); 471 reader->bunindent = config.readBoolEntry( "Unindent", false );
465 reader->brepara = config.readBoolEntry( "Repara", false ); 472 reader->brepara = config.readBoolEntry( "Repara", false );
466 reader->m_reparastring = config.readEntry( "ReparaString", "\\n{[\\n \\t]}"); 473 reader->m_reparastring = config.readEntry( "ReparaString", "\\n{[\\n \\t]}");
467 m_bgtype = (bground)config.readNumEntry( "BackgroundType" , 0 ); 474 m_bgtype = (bground)config.readNumEntry( "BackgroundType" , 0 );
468 m_themename = config.readEntry("Theme", QString::null ); 475 m_themename = config.readEntry("Theme", QString::null );
469 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); 476 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false );
470 reader->bindenter = config.readNumEntry( "Indent", 0 ); 477 reader->bindenter = config.readNumEntry( "Indent", 0 );
471 reader->m_textsize = config.readNumEntry( "FontSize", 12 ); 478 reader->m_textsize = config.readNumEntry( "FontSize", 12 );
472 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); 479 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184);
473 reader->m_scrollstep = config.readNumEntry( "ScrollStep", 1); 480 reader->m_scrollstep = config.readNumEntry( "ScrollStep", 1);
481 reader->m_outputName = config.readEntry( "OutputCodec", "");
482
474 483
475 reader->m_lastfile = config.readEntry( "LastFile", QString::null ); 484 reader->m_lastfile = config.readEntry( "LastFile", QString::null );
476 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); 485 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 );
477 reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); 486 reader->m_bpagemode = config.readBoolEntry( "PageMode", true );
478 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); 487 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false);
479 reader->m_rotated = config.readBoolEntry( "IsRotated", false ); 488 reader->m_rotated = config.readBoolEntry( "IsRotated", false );
480 reader->m_scrolltype = config.readNumEntry( "ScrollType", 0 ); 489 reader->m_scrolltype = config.readNumEntry( "ScrollType", 0 );
481 m_statusstring = config.readEntry("StatusContent", "%P%% Doc:%d/%D %p%% %z%%"); 490 m_statusstring = config.readEntry("StatusContent", "%P%% Doc:%d/%D %p%% %z%%");
482 m_statusishidden = config.readBoolEntry("StatusHidden", false); 491 m_statusishidden = config.readBoolEntry("StatusHidden", false);
483 m_background = config.readNumEntry( "Background", 0 ); 492 m_background = config.readNumEntry( "Background", 0 );
484 reader->setBackground(getcolour(m_background)); 493 reader->setBackground(getcolour(m_background));
485 m_foreground = config.readNumEntry( "Foreground", 1 ); 494 m_foreground = config.readNumEntry( "Foreground", 1 );
486 reader->setForeground(getcolour(m_foreground)); 495 reader->setForeground(getcolour(m_foreground));
487 m_scrollcolor = config.readNumEntry( "ScrollColour", 5 ); 496 m_scrollcolor = config.readNumEntry( "ScrollColour", 5 );
488 setscrollcolour(); 497 setscrollcolour();
489 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", 5 ); 498 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", 5 );
490 setscrollbarcolour(); 499 setscrollbarcolour();
491 reader->hyphenate = config.readBoolEntry( "Hyphenate", false ); 500 reader->hyphenate = config.readBoolEntry( "Hyphenate", false );
492 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); 501 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false);
493 reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); 502 reader->m_fontname = config.readEntry( "Fontname", "helvetica" );
494 reader->m_encd = config.readNumEntry( "Encoding", 0 ); 503 reader->m_encd = config.readNumEntry( "Encoding", 0 );
495 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); 504 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 );
496 reader->m_overlap = config.readNumEntry( "Overlap", 0 ); 505 reader->m_overlap = config.readNumEntry( "Overlap", 0 );
497 reader->m_abstopmargin = config.readNumEntry( "Top Margin", 100 ); 506 reader->m_abstopmargin = config.readNumEntry( "Top Margin", 100 );
498 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", 100 ); 507 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", 100 );
499 reader->m_absleft_border = config.readNumEntry( "Left Margin", 100 ); 508 reader->m_absleft_border = config.readNumEntry( "Left Margin", 100 );
500 reader->m_absright_border = config.readNumEntry( "Right Margin", 100 ); 509 reader->m_absright_border = config.readNumEntry( "Right Margin", 100 );
501 510
502 m_scrollishidden = config.readBoolEntry( "HideScrollBar", false ); 511 m_scrollishidden = config.readBoolEntry( "HideScrollBar", false );
512 m_hidebars = config.readBoolEntry( "HideToolBar", false );
503 513
504 reader->brepalm = config.readBoolEntry( "Repalm", false ); 514 reader->brepalm = config.readBoolEntry( "Repalm", false );
515 reader->bunderlineLink = config.readBoolEntry( "UnderlineLink", true );
505 reader->bkern = config.readBoolEntry( "Kern", false ); 516 reader->bkern = config.readBoolEntry( "Kern", false );
506 reader->bremap = config.readBoolEntry( "Remap", true ); 517 reader->bremap = config.readBoolEntry( "Remap", true );
507 reader->bmakebold = config.readBoolEntry( "MakeBold", false ); 518 reader->bmakebold = config.readBoolEntry( "MakeBold", false );
508 reader->setContinuous(config.readBoolEntry( "Continuous", true )); 519 reader->setContinuous(config.readBoolEntry( "Continuous", true ));
520 reader->setDoubleBuffer(config.readBoolEntry("DoubleBuffer", true));
509 m_targetapp = config.readEntry( "TargetApp", QString::null ); 521 m_targetapp = config.readEntry( "TargetApp", QString::null );
510 m_targetmsg = config.readEntry( "TargetMsg", QString::null ); 522 m_targetmsg = config.readEntry( "TargetMsg", QString::null );
511#ifdef _SCROLLPIPE 523#ifdef _SCROLLPIPE
512 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); 524 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null );
513 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); 525 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true );
514#endif 526#endif
515 m_twoTouch = config.readBoolEntry( "TwoTouch", false); 527 m_twoTouch = config.readBoolEntry( "TwoTouch", false);
516 m_doAnnotation = config.readBoolEntry( "Annotation", false); 528 m_doAnnotation = config.readBoolEntry( "Annotation", false);
517 m_doDictionary = config.readBoolEntry( "Dictionary", false); 529 m_doDictionary = config.readBoolEntry( "Dictionary", false);
518 m_doClipboard = config.readBoolEntry( "Clipboard", false); 530 m_doClipboard = config.readBoolEntry( "Clipboard", false);
531 m_doOutput = config.readBoolEntry( "OutputTgt", false);
519 /* 532 /*
520 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); 533 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll);
521 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); 534 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone);
522 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); 535 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen);
523 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); 536 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut);
524 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); 537 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn);
525 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); 538 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp);
526 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); 539 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown);
527 540
528 m_leftScroll = config.readBoolEntry("LeftScroll", false); 541 m_leftScroll = config.readBoolEntry("LeftScroll", false);
529 m_rightScroll = config.readBoolEntry("RightScroll", false); 542 m_rightScroll = config.readBoolEntry("RightScroll", false);
530 m_upScroll = config.readBoolEntry("UpScroll", true); 543 m_upScroll = config.readBoolEntry("UpScroll", true);
531 m_downScroll = config.readBoolEntry("DownScroll", true); 544 m_downScroll = config.readBoolEntry("DownScroll", true);
532 */ 545 */
533 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); 546 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false);
534 reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); 547 reader->setBaseSize(config.readNumEntry( "Basesize", 10 ));
@@ -829,32 +842,44 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
829 m_tidy_action->addTo( marks ); 842 m_tidy_action->addTo( marks );
830 843
831 m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); 844 m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL);
832 connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) ); 845 connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) );
833 marks->insertSeparator(); 846 marks->insertSeparator();
834 m_startBlock_action->addTo( marks ); 847 m_startBlock_action->addTo( marks );
835 848
836 m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); 849 m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL);
837 connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) ); 850 connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) );
838 m_endBlock_action->addTo( marks ); 851 m_endBlock_action->addTo( marks );
839 852
840 m_bkmkAvail = NULL; 853 m_bkmkAvail = NULL;
841 854
842 855
843 setToolBarsMovable(m_tbmove); 856 setToolBarsMovable(m_tbmove);
844 addtoolbars(&config); 857 addtoolbars(&config);
858 if (m_hidebars)
859 {
860#if defined(USEQPE)
861 menubar->hide();
862#endif
863 if (fileBar != NULL) fileBar->hide();
864 if (viewBar != NULL) viewBar->hide();
865 if (navBar != NULL) navBar->hide();
866 if (markBar != NULL) markBar->hide();
867 mb->hide();
868 }
869
845 870
846 pbar = new QProgressBar(this); 871 pbar = new QProgressBar(this);
847 pbar->hide(); 872 pbar->hide();
848 873
849 searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); 874 searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE );
850 875
851 searchBar->setHorizontalStretchable( TRUE ); 876 searchBar->setHorizontalStretchable( TRUE );
852 877
853 connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); 878 connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() ));
854 879
855 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 880 searchEdit = new QLineEdit( searchBar, "searchEdit" );
856// QFont f("unifont", 16 /*, QFont::Bold*/); 881// QFont f("unifont", 16 /*, QFont::Bold*/);
857// searchEdit->setFont( f ); 882// searchEdit->setFont( f );
858 searchBar->setStretchableWidget( searchEdit ); 883 searchBar->setStretchableWidget( searchEdit );
859 884
860 885
@@ -959,32 +984,33 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
959 else 984 else
960 { 985 {
961 m_scrollbar = NULL; 986 m_scrollbar = NULL;
962 } 987 }
963 setBackgroundBitmap(); 988 setBackgroundBitmap();
964 m_inverse_action->setOn(reader->bInverse); 989 m_inverse_action->setOn(reader->bInverse);
965 reader->init(); 990 reader->init();
966 991
967// qDebug("Inited"); 992// qDebug("Inited");
968// m_buttonAction[m_spaceTarget]->setOn(true); 993// m_buttonAction[m_spaceTarget]->setOn(true);
969// qDebug("fonting"); 994// qDebug("fonting");
970 do_setfont(reader->m_fontname); 995 do_setfont(reader->m_fontname);
971 // qDebug("fonted"); 996 // qDebug("fonted");
972 QFont progfont(reader->m_fontname, reader->m_fontControl.getsize(0)); 997 QFont progfont(reader->m_fontname, reader->m_fontControl.getsize(0));
973 m_prog->setFont( progfont ); 998 m_prog->setFont( progfont );
974 if (m_statusishidden) m_prog->hide(); 999 if (m_statusishidden) m_prog->hide();
1000 showEditTools();
975 if (!reader->m_lastfile.isEmpty()) 1001 if (!reader->m_lastfile.isEmpty())
976 { 1002 {
977 //qDebug("doclnk"); 1003 //qDebug("doclnk");
978 //doc = new DocLnk(reader->m_lastfile); 1004 //doc = new DocLnk(reader->m_lastfile);
979 //qDebug("doclnk done"); 1005 //qDebug("doclnk done");
980 if (pOpenlist != NULL) 1006 if (pOpenlist != NULL)
981 { 1007 {
982 1008
983/* 1009/*
984 int ind = 0; 1010 int ind = 0;
985 Bkmk* p = (*pOpenlist)[ind]; 1011 Bkmk* p = (*pOpenlist)[ind];
986 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) 1012 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile)
987 { 1013 {
988 p = (*pOpenlist)[++ind]; 1014 p = (*pOpenlist)[++ind];
989 } 1015 }
990*/ 1016*/
@@ -1019,94 +1045,94 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
1019 } 1045 }
1020 } 1046 }
1021 } 1047 }
1022 else 1048 else
1023 { 1049 {
1024 showEditTools(); 1050 showEditTools();
1025 } 1051 }
1026// qApp->processEvents(); 1052// qApp->processEvents();
1027 if (m_scrollbar == NULL || m_scrollbar->isHidden()) 1053 if (m_scrollbar == NULL || m_scrollbar->isHidden())
1028 { 1054 {
1029 reader->m_scrollpos = m_localscroll; 1055 reader->m_scrollpos = m_localscroll;
1030 } 1056 }
1031 else 1057 else
1032 { 1058 {
1033 reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0; 1059 reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0;
1034 } 1060 }
1035 reader->bDoUpdates = true; 1061 // reader->bDoUpdates = true;
1036 reader->update(); 1062 // reader->update();
1037 config.setGroup("Version"); 1063 config.setGroup("Version");
1038 int major = config.readNumEntry("Major", 0); 1064 int major = config.readNumEntry("Major", 0);
1039 int bkmktype = config.readNumEntry("BkmkType", 0); 1065 int bkmktype = config.readNumEntry("BkmkType", 0);
1040 char minor = config.readNumEntry("Minor", 0); 1066 char minor = config.readNumEntry("Minor", 0);
1041 if (CheckVersion(major, bkmktype, minor)) 1067 if (CheckVersion(major, bkmktype, minor, this))
1042 { 1068 {
1043 config.writeEntry("Major", major); 1069 config.writeEntry("Major", major);
1044 config.writeEntry("BkmkType", bkmktype); 1070 config.writeEntry("BkmkType", bkmktype);
1045 config.writeEntry("Minor", (int)minor); 1071 config.writeEntry("Minor", (int)minor);
1046 } 1072 }
1047// qDebug("finished update"); 1073// qDebug("finished update");
1048 if (kmap.isEmpty()) 1074 if (kmap.isEmpty())
1049 { 1075 {
1050 QMessageBox::warning(this, PROGNAME, "You haven't mapped any keys yet!\n\nYou will be taken to the key\nmapping dialog.\nA few defaults are provided\nbut you can change then to\nsuit yourself.\n\nYou can change the key\nmapping at any time by\nselecting the Settings/Button\noption on the menu."); 1076 QMessageBox::warning(this, PROGNAME, "You haven't mapped any keys yet!\n\nYou will be taken to the key\nmapping dialog.\nA few defaults are provided\nbut you can change then to\nsuit yourself.\n\nYou can change the key\nmapping at any time by\nselecting the Settings/Button\noption on the menu.");
1051 1077
1052 m_buttonprefs->mapkey(Qt::NoButton, Key_Up, cesPageUp); 1078 m_buttonprefs->mapkey(Qt::NoButton, Key_Up, cesPageUp);
1053 m_buttonprefs->mapkey(Qt::NoButton, Key_Down, cesPageDown); 1079 m_buttonprefs->mapkey(Qt::NoButton, Key_Down, cesPageDown);
1054 1080
1055 m_buttonprefs->mapkey(Qt::NoButton, Key_Right, cesZoomIn); 1081 m_buttonprefs->mapkey(Qt::NoButton, Key_Right, cesZoomIn);
1056 m_buttonprefs->mapkey(Qt::NoButton, Key_Left, cesZoomOut); 1082 m_buttonprefs->mapkey(Qt::NoButton, Key_Left, cesZoomOut);
1057 1083
1058 showbuttonprefs(); 1084 showbuttonprefs();
1059 } 1085 }
1060} 1086}
1061 1087
1062void QTReaderApp::addtoolbars(Config* config) 1088void QTReaderApp::addtoolbars(Config* config)
1063{ 1089{
1064 config->setGroup("Toolbar"); 1090 config->setGroup("Toolbar");
1065 1091
1066 if (fileBar != NULL) 1092 if (fileBar != NULL)
1067 { 1093 {
1068#ifdef USEQPE 1094#if defined(USEQPE)
1069 if (fileBar != menubar) 1095 if (fileBar != menubar)
1070 { 1096 {
1071 fileBar->clear(); 1097 fileBar->clear();
1072 } 1098 }
1073 else 1099 else
1074 { 1100 {
1075 m_preferences_action->removeFrom( filebar() ); 1101 m_preferences_action->removeFrom( filebar() );
1076 m_open_action->removeFrom( filebar() ); 1102 m_open_action->removeFrom( filebar() );
1077 m_close_action->removeFrom( filebar() ); 1103 m_close_action->removeFrom( filebar() );
1078 m_info_action->removeFrom( filebar() ); 1104 m_info_action->removeFrom( filebar() );
1079 m_touch_action->removeFrom( filebar() ); 1105 m_touch_action->removeFrom( filebar() );
1080 m_find_action->removeFrom( filebar() ); 1106 m_find_action->removeFrom( filebar() );
1081 } 1107 }
1082#else 1108#else
1083 fileBar->clear(); 1109 fileBar->clear();
1084#endif 1110#endif
1085 } 1111 }
1086 1112
1087 m_preferences_action->addTo( filebar() ); 1113 m_preferences_action->addTo( filebar() );
1088 addfilebar(config, "Open", m_open_action); 1114 addfilebar(config, "Open", m_open_action);
1089 addfilebar(config, "Close", m_close_action); 1115 addfilebar(config, "Close", m_close_action);
1090 addfilebar(config, "Info", m_info_action); 1116 addfilebar(config, "Info", m_info_action);
1091 addfilebar(config, "Two/One Touch", m_touch_action); 1117 addfilebar(config, "Two/One Touch", m_touch_action);
1092 addfilebar(config, "Find", m_find_action); 1118 addfilebar(config, "Find", m_find_action);
1093 1119
1094 if (navBar != NULL) 1120 if (navBar != NULL)
1095 { 1121 {
1096#ifdef USEQPE 1122#if defined(USEQPE)
1097 if ((navBar == fileBar) && (fileBar == menubar)) 1123 if ((navBar == fileBar) && (fileBar == menubar))
1098#else 1124#else
1099 if (navBar == fileBar) 1125 if (navBar == fileBar)
1100#endif 1126#endif
1101 { 1127 {
1102 m_scrollButton->removeFrom( navbar() ); 1128 m_scrollButton->removeFrom( navbar() );
1103 m_start_action->removeFrom( navbar() ); 1129 m_start_action->removeFrom( navbar() );
1104 m_end_action->removeFrom( navbar() ); 1130 m_end_action->removeFrom( navbar() );
1105 m_jump_action->removeFrom( navbar() ); 1131 m_jump_action->removeFrom( navbar() );
1106 m_pageline_action->removeFrom( navbar() ); 1132 m_pageline_action->removeFrom( navbar() );
1107 m_pageup_action->removeFrom( navbar() ); 1133 m_pageup_action->removeFrom( navbar() );
1108 m_pagedn_action->removeFrom( navbar() ); 1134 m_pagedn_action->removeFrom( navbar() );
1109 m_back_action->removeFrom( navbar() ); 1135 m_back_action->removeFrom( navbar() );
1110 m_home_action->removeFrom( navbar() ); 1136 m_home_action->removeFrom( navbar() );
1111 m_forward_action->removeFrom( navbar() ); 1137 m_forward_action->removeFrom( navbar() );
1112 } 1138 }
@@ -1119,65 +1145,65 @@ void QTReaderApp::addtoolbars(Config* config)
1119 addnavbar(config, "Scroll", m_scrollButton); 1145 addnavbar(config, "Scroll", m_scrollButton);
1120 addnavbar(config, "Goto Start", m_start_action); 1146 addnavbar(config, "Goto Start", m_start_action);
1121 addnavbar(config, "Goto End", m_end_action); 1147 addnavbar(config, "Goto End", m_end_action);
1122 1148
1123 addnavbar(config, "Jump", m_jump_action); 1149 addnavbar(config, "Jump", m_jump_action);
1124 addnavbar(config, "Page/Line Scroll", m_pageline_action); 1150 addnavbar(config, "Page/Line Scroll", m_pageline_action);
1125 1151
1126 addnavbar(config, "Page Up", m_pageup_action); 1152 addnavbar(config, "Page Up", m_pageup_action);
1127 addnavbar(config, "Page Down", m_pagedn_action); 1153 addnavbar(config, "Page Down", m_pagedn_action);
1128 1154
1129 addnavbar(config, "Back", m_back_action); 1155 addnavbar(config, "Back", m_back_action);
1130 addnavbar(config, "Home", m_home_action); 1156 addnavbar(config, "Home", m_home_action);
1131 addnavbar(config, "Forward", m_forward_action); 1157 addnavbar(config, "Forward", m_forward_action);
1132 1158
1133 if (viewBar != NULL) 1159 if (viewBar != NULL)
1134 { 1160 {
1135#ifdef USEQPE 1161#if defined(USEQPE)
1136 if ((viewBar == fileBar) && (fileBar == menubar)) 1162 if ((viewBar == fileBar) && (fileBar == menubar))
1137#else 1163#else
1138 if (viewBar == fileBar) 1164 if (viewBar == fileBar)
1139#endif 1165#endif
1140 { 1166 {
1141 m_actFullscreen->removeFrom( filebar() ); 1167 m_actFullscreen->removeFrom( filebar() );
1142 m_rotate_action->removeFrom( viewbar() ); 1168 m_rotate_action->removeFrom( viewbar() );
1143 m_inverse_action->removeFrom( viewbar() ); 1169 m_inverse_action->removeFrom( viewbar() );
1144 m_zoomin_action->removeFrom( viewbar() ); 1170 m_zoomin_action->removeFrom( viewbar() );
1145 m_zoomout_action->removeFrom( viewbar() ); 1171 m_zoomout_action->removeFrom( viewbar() );
1146 m_setfont_action->removeFrom( viewbar() ); 1172 m_setfont_action->removeFrom( viewbar() );
1147 m_setenc_action->removeFrom( viewbar() ); 1173 m_setenc_action->removeFrom( viewbar() );
1148 m_setmono_action->removeFrom( viewbar() ); 1174 m_setmono_action->removeFrom( viewbar() );
1149 } 1175 }
1150 else if (viewBar != fileBar) 1176 else if (viewBar != fileBar)
1151 { 1177 {
1152 viewBar->clear(); 1178 viewBar->clear();
1153 } 1179 }
1154 } 1180 }
1155 1181
1156 addviewbar(config, "Fullscreen", m_actFullscreen); 1182 addviewbar(config, "Fullscreen", m_actFullscreen);
1157 addviewbar(config, "Rotate", m_rotate_action); 1183 addviewbar(config, "Rotate", m_rotate_action);
1158 addviewbar(config, "Invert Action", m_inverse_action); 1184 addviewbar(config, "Invert Action", m_inverse_action);
1159 addviewbar(config, "Zoom In", m_zoomin_action); 1185 addviewbar(config, "Zoom In", m_zoomin_action);
1160 addviewbar(config, "Zoom Out", m_zoomout_action); 1186 addviewbar(config, "Zoom Out", m_zoomout_action);
1161 addviewbar(config, "Set Font", m_setfont_action); 1187 addviewbar(config, "Set Font", m_setfont_action);
1162 addviewbar(config, "Encoding Select", m_setenc_action); 1188 addviewbar(config, "Encoding Select", m_setenc_action);
1163 addviewbar(config, "Ideogram Mode", m_setmono_action); 1189 addviewbar(config, "Ideogram Mode", m_setmono_action);
1164 1190
1165 if (markBar != NULL) 1191 if (markBar != NULL)
1166 { 1192 {
1167#ifdef USEQPE 1193#if defined(USEQPE)
1168 if ((markBar == fileBar) && (fileBar == menubar)) 1194 if ((markBar == fileBar) && (fileBar == menubar))
1169#else 1195#else
1170 if (markBar == fileBar) 1196 if (markBar == fileBar)
1171#endif 1197#endif
1172 { 1198 {
1173 m_mark_action->removeFrom( markbar() ); 1199 m_mark_action->removeFrom( markbar() );
1174 m_annotate_action->removeFrom( markbar()); 1200 m_annotate_action->removeFrom( markbar());
1175 m_goto_action->removeFrom( markbar() ); 1201 m_goto_action->removeFrom( markbar() );
1176 m_delete_action->removeFrom( markbar() ); 1202 m_delete_action->removeFrom( markbar() );
1177 m_autogen_action->removeFrom( markbar() ); 1203 m_autogen_action->removeFrom( markbar() );
1178 m_clear_action->removeFrom( markbar() ); 1204 m_clear_action->removeFrom( markbar() );
1179 m_save_action->removeFrom( markbar() ); 1205 m_save_action->removeFrom( markbar() );
1180 m_tidy_action->removeFrom( markbar() ); 1206 m_tidy_action->removeFrom( markbar() );
1181 m_startBlock_action->removeFrom( markbar() ); 1207 m_startBlock_action->removeFrom( markbar() );
1182 m_endBlock_action->removeFrom( markbar() ); 1208 m_endBlock_action->removeFrom( markbar() );
1183 } 1209 }
@@ -1220,33 +1246,33 @@ void QTReaderApp::addtoolbars(Config* config)
1220 } 1246 }
1221 } 1247 }
1222} 1248}
1223 1249
1224bool QTReaderApp::checkbar(Config* _config, const QString& key) 1250bool QTReaderApp::checkbar(Config* _config, const QString& key)
1225{ 1251{
1226 return _config->readBoolEntry(key, false); 1252 return _config->readBoolEntry(key, false);
1227} 1253}
1228 1254
1229 1255
1230QToolBar* QTReaderApp::filebar() 1256QToolBar* QTReaderApp::filebar()
1231{ 1257{
1232 if (fileBar == NULL) 1258 if (fileBar == NULL)
1233 { 1259 {
1234 switch (m_tbpol) 1260 switch (m_tbpol)
1235 { 1261 {
1236#ifdef USEQPE 1262#if defined(USEQPE)
1237 case cesSingle: 1263 case cesSingle:
1238 // qDebug("Setting filebar to menubar"); 1264 // qDebug("Setting filebar to menubar");
1239 fileBar = menubar; 1265 fileBar = menubar;
1240 break; 1266 break;
1241#endif 1267#endif
1242 default: 1268 default:
1243 qDebug("Incorrect toolbar policy set"); 1269 qDebug("Incorrect toolbar policy set");
1244 case cesMenuTool: 1270 case cesMenuTool:
1245 case cesMultiple: 1271 case cesMultiple:
1246 // qDebug("Creating new file bar"); 1272 // qDebug("Creating new file bar");
1247 fileBar = new QToolBar("File", this, m_tbposition); 1273 fileBar = new QToolBar("File", this, m_tbposition);
1248 break; 1274 break;
1249 } 1275 }
1250 //fileBar->setHorizontalStretchable( true ); 1276 //fileBar->setHorizontalStretchable( true );
1251 } 1277 }
1252 return fileBar; 1278 return fileBar;
@@ -1704,51 +1730,49 @@ void QTReaderApp::setrotated(bool sfs)
1704{ 1730{
1705 reader->setrotated(sfs); 1731 reader->setrotated(sfs);
1706 if (sfs) 1732 if (sfs)
1707 { 1733 {
1708 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::BottomToTop : QBoxLayout::TopToBottom ); 1734 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::BottomToTop : QBoxLayout::TopToBottom );
1709 if (m_scrollbar != NULL) 1735 if (m_scrollbar != NULL)
1710 { 1736 {
1711 scrollbar->disconnect(); 1737 scrollbar->disconnect();
1712 m_scrollbar->setOrientation(Qt::Horizontal); 1738 m_scrollbar->setOrientation(Qt::Horizontal);
1713 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineUp()) ); 1739 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineUp()) );
1714 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineDown()) ); 1740 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineDown()) );
1715 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopageup()) ); 1741 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopageup()) );
1716 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopagedn()) ); 1742 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopagedn()) );
1717 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) ); 1743 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
1718 } 1744 }
1719 //reader->repaint(0, reader->m_left_border, reader->width(), reader->height()-2*reader->m_border); 1745 //reader->repaint(0, reader->m_left_border, reader->width(), reader->height()-2*reader->m_border);
1720 reader->repaint();
1721 } 1746 }
1722 else 1747 else
1723 { 1748 {
1724 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::RightToLeft : QBoxLayout::LeftToRight ); 1749 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::RightToLeft : QBoxLayout::LeftToRight );
1725 if (m_scrollbar != NULL) 1750 if (m_scrollbar != NULL)
1726 { 1751 {
1727 scrollbar->disconnect(); 1752 scrollbar->disconnect();
1728 m_scrollbar->setOrientation(Qt::Vertical); 1753 m_scrollbar->setOrientation(Qt::Vertical);
1729 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineDown()) ); 1754 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineDown()) );
1730 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineUp()) ); 1755 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineUp()) );
1731 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopagedn()) ); 1756 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopagedn()) );
1732 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopageup()) ); 1757 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopageup()) );
1733 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) ); 1758 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
1734 } 1759 }
1735 //reader->repaint(reader->m_border, 0, reader->width()-2*reader->m_border, reader->height()); 1760 //reader->repaint(reader->m_border, 0, reader->width()-2*reader->m_border, reader->height());
1736 reader->repaint();
1737 } 1761 }
1738 // reader->update(); 1762 reader->refresh();
1739} 1763}
1740 1764
1741void QTReaderApp::setgrab(bool sfs) 1765void QTReaderApp::setgrab(bool sfs)
1742{ 1766{
1743#ifdef USEQPE 1767#ifdef USEQPE
1744 m_grabkeyboard = sfs; 1768 m_grabkeyboard = sfs;
1745 if (m_grabkeyboard) 1769 if (m_grabkeyboard)
1746 { 1770 {
1747 ((QPEApplication*)qApp)->grabKeyboard(); 1771 ((QPEApplication*)qApp)->grabKeyboard();
1748 } 1772 }
1749 else 1773 else
1750 { 1774 {
1751 ((QPEApplication*)qApp)->ungrabKeyboard(); 1775 ((QPEApplication*)qApp)->ungrabKeyboard();
1752 } 1776 }
1753#endif 1777#endif
1754} 1778}
@@ -1915,56 +1939,56 @@ void QTReaderApp::fileOpen2()
1915 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) 1939 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0)
1916 savebkmks(); 1940 savebkmks();
1917 } 1941 }
1918 delete pBkmklist; 1942 delete pBkmklist;
1919 reader->pBkmklist = pBkmklist = NULL; 1943 reader->pBkmklist = pBkmklist = NULL;
1920 m_fBkmksChanged = false; 1944 m_fBkmksChanged = false;
1921 } 1945 }
1922 reader->disableAutoscroll(); 1946 reader->disableAutoscroll();
1923/* 1947/*
1924 editorStack->raiseWidget( fileSelector ); 1948 editorStack->raiseWidget( fileSelector );
1925 fileSelector->reread(); 1949 fileSelector->reread();
1926*/ 1950*/
1927 bool usebrowser = true; 1951 bool usebrowser = true;
1928 if (pOpenlist != NULL) 1952 if (pOpenlist != NULL)
1929 { 1953 {
1930 m_nBkmkAction = cOpenFile; 1954 m_nBkmkAction = cOpenFile;
1931 if (listbkmk(pOpenlist, "Browse")) usebrowser = false; 1955 if (listbkmk(pOpenlist, "Browse", true)) usebrowser = false;
1932 } 1956 }
1933 if (usebrowser) 1957 if (usebrowser)
1934 { 1958 {
1935 QString fn = usefilebrowser(); 1959 QString fn = usefilebrowser();
1936 //qApp->processEvents(); 1960 //qApp->processEvents();
1937 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 1961 if (!fn.isEmpty() && QFileInfo(fn).isFile())
1938 { 1962 {
1939 openFile(fn); 1963 openFile(fn);
1940 } 1964 }
1941 reader->setFocus(); 1965 reader->setFocus();
1942 } 1966 }
1943// reader->refresh(); 1967// reader->refresh();
1944// qDebug("HEIGHT:%d", reader->m_lastheight); 1968// qDebug("HEIGHT:%d", reader->m_lastheight);
1945} 1969}
1946 1970
1947QString QTReaderApp::usefilebrowser() 1971QString QTReaderApp::usefilebrowser()
1948{ 1972{
1949#ifndef USEQPE 1973#ifndef USEQPE
1950 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); 1974 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) );
1951 return s; 1975 return s;
1952#else 1976#else
1953 QString fn; 1977 QString fn;
1954#ifdef OPIE 1978#if defined(OPIE) && defined(OPIEFILEDIALOG)
1955 QMap<QString, QStringList> mimeTypes; 1979 QMap<QString, QStringList> mimeTypes;
1956 QStringList etypes; 1980 QStringList etypes;
1957 etypes << "etext/*"; 1981 etypes << "etext/*";
1958 mimeTypes.insert( tr("eText"), etypes ); 1982 mimeTypes.insert( tr("eText"), etypes );
1959 QStringList types; 1983 QStringList types;
1960 types << "text/*"; 1984 types << "text/*";
1961 mimeTypes.insert( tr("Text"), types ); 1985 mimeTypes.insert( tr("Text"), types );
1962 mimeTypes.insert( tr("All"), "*/*" ); 1986 mimeTypes.insert( tr("All"), "*/*" );
1963 fn = OFileDialog::getOpenFileName(OFileSelector::EXTENDED_ALL, QFileInfo(reader->m_lastfile).dirPath(true), QString::null, mimeTypes, 0, "OpieReader"); 1987 fn = OFileDialog::getOpenFileName(OFileSelector::EXTENDED_ALL, QFileInfo(reader->m_lastfile).dirPath(true), QString::null, mimeTypes, 0, "OpieReader");
1964#else 1988#else
1965 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, 1989 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog,
1966 0, 1990 0,
1967 // WStyle_Customize | WStyle_NoBorderEx, 1991 // WStyle_Customize | WStyle_NoBorderEx,
1968 "*", QFileInfo(reader->m_lastfile).dirPath(true)); 1992 "*", QFileInfo(reader->m_lastfile).dirPath(true));
1969 1993
1970 1994
@@ -1990,44 +2014,46 @@ void QTReaderApp::showgraphic(QImage& pm)
1990 2014
1991void QTReaderApp::showbuttonprefs() 2015void QTReaderApp::showbuttonprefs()
1992{ 2016{
1993 editorStack->raiseWidget( m_buttonprefs ); 2017 editorStack->raiseWidget( m_buttonprefs );
1994 hidetoolbars(); 2018 hidetoolbars();
1995 m_buttonprefs->setFocus(); 2019 m_buttonprefs->setFocus();
1996 m_kmapchanged = true; 2020 m_kmapchanged = true;
1997} 2021}
1998 2022
1999void QTReaderApp::showprefs() 2023void QTReaderApp::showprefs()
2000{ 2024{
2001 CPrefs* prefwin = new CPrefs(reader->width(), !m_bFloatingDialog, this); 2025 CPrefs* prefwin = new CPrefs(reader->width(), !m_bFloatingDialog, this);
2002 2026
2003 // prefwin->Debounce(m_debounce); 2027 // prefwin->Debounce(m_debounce);
2004 prefwin->bgtype(m_bgtype); 2028 prefwin->bgtype(m_bgtype);
2005 prefwin->repalm(reader->brepalm); 2029 prefwin->repalm(reader->brepalm);
2030 prefwin->UnderlineLink(reader->bunderlineLink);
2006 prefwin->kern(reader->bkern); 2031 prefwin->kern(reader->bkern);
2007 prefwin->hyphenate(reader->hyphenate); 2032 prefwin->hyphenate(reader->hyphenate);
2008 // prefwin->customhyphen(reader->buffdoc.getCustomHyphen()); 2033 // prefwin->customhyphen(reader->buffdoc.getCustomHyphen());
2009 prefwin->scrolltype(reader->m_scrolltype); 2034 prefwin->scrolltype(reader->m_scrolltype);
2010 prefwin->scrollstep(reader->m_scrollstep); 2035 prefwin->scrollstep(reader->m_scrollstep);
2011 prefwin->scrollcolor(m_scrollcolor); 2036 prefwin->scrollcolor(m_scrollcolor);
2012 prefwin->minibarcol(m_scrollbarcolor); 2037 prefwin->minibarcol(m_scrollbarcolor);
2013 prefwin->foreground(m_foreground); 2038 prefwin->foreground(m_foreground);
2014 prefwin->background(m_background); 2039 prefwin->background(m_background);
2015 prefwin->twotouch(m_twoTouch); 2040 prefwin->twotouch(m_twoTouch);
2016 prefwin->propfontchange(m_propogatefontchange); 2041 prefwin->propfontchange(m_propogatefontchange);
2017 prefwin->StripCR(reader->bstripcr); 2042 prefwin->StripCR(reader->bstripcr);
2043 prefwin->InlineTables(!reader->bNoInlineTables);
2018 prefwin->Dehyphen(reader->bdehyphen); 2044 prefwin->Dehyphen(reader->bdehyphen);
2019 prefwin->SingleSpace(reader->bonespace); 2045 prefwin->SingleSpace(reader->bonespace);
2020 prefwin->Unindent(reader->bunindent); 2046 prefwin->Unindent(reader->bunindent);
2021 prefwin->Reparagraph(reader->brepara); 2047 prefwin->Reparagraph(reader->brepara);
2022 prefwin->DoubleSpace(reader->bdblspce); 2048 prefwin->DoubleSpace(reader->bdblspce);
2023 prefwin->Remap(reader->bremap); 2049 prefwin->Remap(reader->bremap);
2024 prefwin->Embolden(reader->bmakebold); 2050 prefwin->Embolden(reader->bmakebold);
2025 prefwin->FullJustify(reader->bfulljust); 2051 prefwin->FullJustify(reader->bfulljust);
2026 // prefwin->Inverse(reader->bInverse); 2052 // prefwin->Inverse(reader->bInverse);
2027 // prefwin->Negative(reader->bNegative); 2053 // prefwin->Negative(reader->bNegative);
2028 prefwin->FixGraphics(reader->m_fontControl.FixGraphics()); 2054 prefwin->FixGraphics(reader->m_fontControl.FixGraphics());
2029 prefwin->ParaLead(reader->getextraspace()); 2055 prefwin->ParaLead(reader->getextraspace());
2030 prefwin->LineLead(reader->getlead()); 2056 prefwin->LineLead(reader->getlead());
2031 prefwin->TopMargin(reader->m_abstopmargin); 2057 prefwin->TopMargin(reader->m_abstopmargin);
2032 prefwin->BottomMargin(reader->m_absbottommargin); 2058 prefwin->BottomMargin(reader->m_absbottommargin);
2033 prefwin->LeftMargin(reader->m_absleft_border); 2059 prefwin->LeftMargin(reader->m_absleft_border);
@@ -2043,83 +2069,90 @@ void QTReaderApp::showprefs()
2043 } 2069 }
2044 else if (reader->bstriphtml) 2070 else if (reader->bstriphtml)
2045 { 2071 {
2046 prefwin->Markup(3); 2072 prefwin->Markup(3);
2047 } 2073 }
2048 else if (reader->bpeanut) 2074 else if (reader->bpeanut)
2049 { 2075 {
2050 prefwin->Markup(4); 2076 prefwin->Markup(4);
2051 } 2077 }
2052 else 2078 else
2053 { 2079 {
2054 prefwin->Markup(1); 2080 prefwin->Markup(1);
2055 } 2081 }
2056 prefwin->Depluck(reader->bdepluck); 2082 prefwin->Depluck(reader->bdepluck);
2057 prefwin->Dejpluck(reader->bdejpluck); 2083 prefwin->Dejpluck(reader->bdejpluck);
2058 prefwin->Continuous(reader->m_continuousDocument); 2084 prefwin->Continuous(reader->m_continuousDocument);
2085 prefwin->DoubleBuffer(reader->m_doubleBuffered);
2059 2086
2060 prefwin->dictApplication(m_targetapp); 2087 prefwin->dictApplication(m_targetapp);
2061 prefwin->dictMessage(m_targetmsg); 2088 prefwin->dictMessage(m_targetmsg);
2062 2089
2063 /* 2090 /*
2064 prefwin->leftScroll(m_leftScroll); 2091 prefwin->leftScroll(m_leftScroll);
2065 prefwin->rightScroll(m_rightScroll); 2092 prefwin->rightScroll(m_rightScroll);
2066 prefwin->upScroll(m_upScroll); 2093 prefwin->upScroll(m_upScroll);
2067 prefwin->downScroll(m_downScroll); 2094 prefwin->downScroll(m_downScroll);
2068 */ 2095 */
2069 2096
2070 prefwin->miscannotation(m_doAnnotation); 2097 prefwin->miscannotation(m_doAnnotation);
2071 prefwin->miscdictionary(m_doDictionary); 2098 prefwin->miscdictionary(m_doDictionary);
2072 prefwin->miscclipboard(m_doClipboard); 2099 prefwin->miscclipboard(m_doClipboard);
2100 prefwin->miscoutput(m_doOutput);
2073 2101
2074 prefwin->SwapMouse(reader->m_swapmouse); 2102 prefwin->SwapMouse(reader->m_swapmouse);
2075 2103
2076 prefwin->Font(reader->m_fontname); 2104 prefwin->Font(reader->m_fontname);
2077 2105
2078 prefwin->gfxsize(reader->getBaseSize()); 2106 prefwin->gfxsize(reader->getBaseSize());
2079 2107
2080 prefwin->pageoverlap(reader->m_overlap); 2108 prefwin->pageoverlap(reader->m_overlap);
2081 2109
2082 prefwin->ideogram(reader->m_bMonoSpaced); 2110 prefwin->ideogram(reader->m_bMonoSpaced);
2083 2111
2084 prefwin->encoding(reader->m_encd); 2112 prefwin->encoding(reader->m_encd);
2085 2113
2086 prefwin->ideogramwidth(reader->m_charpc); 2114 prefwin->ideogramwidth(reader->m_charpc);
2087 2115
2116 prefwin->outcodec(reader->m_outputName);
2117
2088 if (prefwin->exec()) 2118 if (prefwin->exec())
2089 { 2119 {
2090 // m_debounce = prefwin->Debounce(); 2120 // m_debounce = prefwin->Debounce();
2091 reader->brepalm = prefwin->repalm(); 2121 reader->brepalm = prefwin->repalm();
2122 reader->bunderlineLink = prefwin->UnderlineLink();
2123
2092 reader->bkern = prefwin->kern(); 2124 reader->bkern = prefwin->kern();
2093 reader->hyphenate = prefwin->hyphenate(); 2125 reader->hyphenate = prefwin->hyphenate();
2094 // reader->buffdoc.setCustomHyphen(prefwin->customhyphen()); 2126 // reader->buffdoc.setCustomHyphen(prefwin->customhyphen());
2095 reader->m_scrolltype = prefwin->scrolltype(); 2127 reader->m_scrolltype = prefwin->scrolltype();
2096 reader->m_scrollstep = prefwin->scrollstep(); 2128 reader->m_scrollstep = prefwin->scrollstep();
2097 m_scrollcolor = prefwin->scrollcolor(); 2129 m_scrollcolor = prefwin->scrollcolor();
2098 setscrollcolour(); 2130 setscrollcolour();
2099 m_scrollbarcolor = prefwin->minibarcol(); 2131 m_scrollbarcolor = prefwin->minibarcol();
2100 setscrollbarcolour(); 2132 setscrollbarcolour();
2101 m_foreground = prefwin->foreground(); 2133 m_foreground = prefwin->foreground();
2102 reader->setForeground(getcolour(m_foreground)); 2134 reader->setForeground(getcolour(m_foreground));
2103 m_background = prefwin->background(); 2135 m_background = prefwin->background();
2104 reader->setBackground(getcolour(m_background)); 2136 reader->setBackground(getcolour(m_background));
2105 m_twoTouch = prefwin->twotouch(); 2137 m_twoTouch = prefwin->twotouch();
2106 reader->setTwoTouch(m_twoTouch); 2138 reader->setTwoTouch(m_twoTouch);
2107 m_touch_action->setOn(m_twoTouch); 2139 m_touch_action->setOn(m_twoTouch);
2108 2140
2109 reader->bstripcr = prefwin->StripCR(); 2141 reader->bstripcr = prefwin->StripCR();
2142 reader->bNoInlineTables = !prefwin->InlineTables();
2110 reader->bdehyphen = prefwin->Dehyphen(); 2143 reader->bdehyphen = prefwin->Dehyphen();
2111 reader->bonespace = prefwin->SingleSpace(); 2144 reader->bonespace = prefwin->SingleSpace();
2112 reader->bunindent = prefwin->Unindent(); 2145 reader->bunindent = prefwin->Unindent();
2113 reader->brepara = prefwin->Reparagraph(); 2146 reader->brepara = prefwin->Reparagraph();
2114 reader->bdblspce = prefwin->DoubleSpace(); 2147 reader->bdblspce = prefwin->DoubleSpace();
2115 reader->bremap = prefwin->Remap(); 2148 reader->bremap = prefwin->Remap();
2116 reader->bmakebold = prefwin->Embolden(); 2149 reader->bmakebold = prefwin->Embolden();
2117 reader->bfulljust = prefwin->FullJustify(); 2150 reader->bfulljust = prefwin->FullJustify();
2118 //if (reader->bInverse != prefwin->Inverse()) reader->setInverse(prefwin->Inverse()); 2151 //if (reader->bInverse != prefwin->Inverse()) reader->setInverse(prefwin->Inverse());
2119 //if (reader->bNegative != prefwin->Negative()) reader->setNegative(); 2152 //if (reader->bNegative != prefwin->Negative()) reader->setNegative();
2120 reader->m_fontControl.FixGraphics(prefwin->FixGraphics()); 2153 reader->m_fontControl.FixGraphics(prefwin->FixGraphics());
2121 2154
2122 reader->setextraspace(prefwin->ParaLead()); 2155 reader->setextraspace(prefwin->ParaLead());
2123 reader->setlead(prefwin->LineLead()); 2156 reader->setlead(prefwin->LineLead());
2124 reader->m_abstopmargin = prefwin->TopMargin(); 2157 reader->m_abstopmargin = prefwin->TopMargin();
2125 reader->m_absbottommargin = prefwin->BottomMargin(); 2158 reader->m_absbottommargin = prefwin->BottomMargin();
@@ -2136,66 +2169,77 @@ void QTReaderApp::showprefs()
2136 break; 2169 break;
2137 case 2: 2170 case 2:
2138 reader->btextfmt = true; 2171 reader->btextfmt = true;
2139 break; 2172 break;
2140 case 3: 2173 case 3:
2141 reader->bstriphtml = true; 2174 reader->bstriphtml = true;
2142 break; 2175 break;
2143 case 4: 2176 case 4:
2144 reader->bpeanut = true; 2177 reader->bpeanut = true;
2145 break; 2178 break;
2146 default: 2179 default:
2147 qDebug("Format out of range"); 2180 qDebug("Format out of range");
2148 } 2181 }
2149 reader->bdepluck = prefwin->Depluck(); 2182 reader->bdepluck = prefwin->Depluck();
2150 reader->bdejpluck = prefwin->Dejpluck(); 2183 reader->bdejpluck = prefwin->Dejpluck();
2151 reader->setContinuous(prefwin->Continuous()); 2184 reader->setContinuous(prefwin->Continuous());
2185 reader->setDoubleBuffer(prefwin->DoubleBuffer());
2152 2186
2153 /* 2187 /*
2154 m_leftScroll = prefwin->leftScroll(); 2188 m_leftScroll = prefwin->leftScroll();
2155 m_rightScroll = prefwin->rightScroll(); 2189 m_rightScroll = prefwin->rightScroll();
2156 m_upScroll = prefwin->upScroll(); 2190 m_upScroll = prefwin->upScroll();
2157 m_downScroll = prefwin->downScroll(); 2191 m_downScroll = prefwin->downScroll();
2158 */ 2192 */
2159 m_targetapp = prefwin->dictApplication(); 2193 m_targetapp = prefwin->dictApplication();
2160 m_targetmsg = prefwin->dictMessage(); 2194 m_targetmsg = prefwin->dictMessage();
2161 2195
2162 m_doAnnotation = prefwin->miscannotation(); 2196 m_doAnnotation = prefwin->miscannotation();
2163 m_doDictionary = prefwin->miscdictionary(); 2197 m_doDictionary = prefwin->miscdictionary();
2164 m_doClipboard = prefwin->miscclipboard(); 2198 m_doClipboard = prefwin->miscclipboard();
2199 m_doOutput = prefwin->miscoutput();
2165 reader->m_swapmouse = prefwin->SwapMouse(); 2200 reader->m_swapmouse = prefwin->SwapMouse();
2166 reader->setBaseSize(prefwin->gfxsize()); 2201 reader->setBaseSize(prefwin->gfxsize());
2167 reader->m_overlap = prefwin->pageoverlap(); 2202 reader->m_overlap = prefwin->pageoverlap();
2168 reader->m_bMonoSpaced = prefwin->ideogram(); 2203 reader->m_bMonoSpaced = prefwin->ideogram();
2169 m_setmono_action->setOn(reader->m_bMonoSpaced); 2204 m_setmono_action->setOn(reader->m_bMonoSpaced);
2170 reader->m_encd = prefwin->encoding(); 2205 reader->m_encd = prefwin->encoding();
2171 reader->m_charpc = prefwin->ideogramwidth(); 2206 reader->m_charpc = prefwin->ideogramwidth();
2172 2207
2173 if ( 2208 if (
2174 reader->m_fontname != prefwin->Font() 2209 reader->m_fontname != prefwin->Font()
2175 || 2210 ||
2176 m_propogatefontchange != prefwin->propfontchange()) 2211 m_propogatefontchange != prefwin->propfontchange())
2177 { 2212 {
2178 m_propogatefontchange = prefwin->propfontchange(); 2213 m_propogatefontchange = prefwin->propfontchange();
2179 setfontHelper(prefwin->Font()); 2214 setfontHelper(prefwin->Font());
2180 } 2215 }
2181 if (m_bgtype != (bground)prefwin->bgtype()) 2216 if (m_bgtype != (bground)prefwin->bgtype())
2182 { 2217 {
2183 m_bgtype = (bground)prefwin->bgtype(); 2218 m_bgtype = (bground)prefwin->bgtype();
2184 setBackgroundBitmap(); 2219 setBackgroundBitmap();
2185 } 2220 }
2221 qDebug("OutCodec:%s", (const char*)prefwin->outcodec());
2222 if (reader->m_outputName != prefwin->outcodec())
2223 {
2224 if (reader->m_output != NULL)
2225 {
2226 QMessageBox::warning(this, PROGNAME, "Change of output codec\nrequires a restart");
2227 }
2228 reader->m_outputName = prefwin->outcodec();
2229 }
2186 delete prefwin; 2230 delete prefwin;
2187 reader->setfilter(reader->getfilter()); 2231 reader->setfilter(reader->getfilter());
2188 reader->refresh(); 2232 reader->refresh();
2189 } 2233 }
2190 else 2234 else
2191 { 2235 {
2192 delete prefwin; 2236 delete prefwin;
2193 } 2237 }
2194} 2238}
2195 2239
2196void QTReaderApp::showtoolbarprefs() 2240void QTReaderApp::showtoolbarprefs()
2197{ 2241{
2198#ifdef USEQPE 2242#ifdef USEQPE
2199 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this); 2243 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this);
2200#else 2244#else
2201 QFileInfo fi; 2245 QFileInfo fi;
@@ -2277,38 +2321,62 @@ void QTReaderApp::showtoolbarprefs()
2277 2321
2278void QTReaderApp::showinfo() 2322void QTReaderApp::showinfo()
2279{ 2323{
2280 unsigned long ds, fs, ts, pl, dl; 2324 unsigned long ds, fs, ts, pl, dl;
2281 if (reader->empty()) 2325 if (reader->empty())
2282 { 2326 {
2283 QMessageBox::information(this, PROGNAME, "No file loaded", 1); 2327 QMessageBox::information(this, PROGNAME, "No file loaded", 1);
2284 } 2328 }
2285 else 2329 else
2286 { 2330 {
2287 reader->sizes(fs,ts); 2331 reader->sizes(fs,ts);
2288 ds = reader->buffdoc.endSection() - reader->buffdoc.startSection(); 2332 ds = reader->buffdoc.endSection() - reader->buffdoc.startSection();
2289 pl = reader->pagelocate(); 2333 pl = reader->pagelocate();
2290 dl = pl - reader->buffdoc.startSection(); 2334 dl = pl - reader->buffdoc.startSection();
2291 m_infoWin->setFileSize(fs); 2335 m_infoWin->setFileSize(fs);
2292 m_infoWin->setTextSize(ts); 2336 m_infoWin->setTextSize(ts);
2293 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); 2337 if (fs > UINT_MAX/100)
2338 {
2339 unsigned long t1 = (ts+50)/100;
2340 m_infoWin->setRatio(100-(fs + (t1 >> 1))/t1);
2341 }
2342 else
2343 {
2344 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts);
2345 }
2294 m_infoWin->setLocation(pl); 2346 m_infoWin->setLocation(pl);
2295 m_infoWin->setRead((100*pl + (ts >> 1))/ts); 2347 if (pl > UINT_MAX/100)
2348 {
2349 unsigned long t1 = (ts+50)/100;
2350 m_infoWin->setRead((pl + (t1 >> 1))/t1);
2351 }
2352 else
2353 {
2354 m_infoWin->setRead((100*pl + (ts >> 1))/ts);
2355 }
2296 m_infoWin->setDocSize(ds); 2356 m_infoWin->setDocSize(ds);
2297 m_infoWin->setDocLocation(dl); 2357 m_infoWin->setDocLocation(dl);
2298 m_infoWin->setDocRead((100*dl + (ds >> 1))/ds); 2358 if (dl > UINT_MAX/100)
2359 {
2360 unsigned long d1 = (ds+50)/100;
2361 m_infoWin->setDocRead((dl + (d1 >> 1))/d1);
2362 }
2363 else
2364 {
2365 m_infoWin->setDocRead((100*dl + (ds >> 1))/ds);
2366 }
2299 m_infoWin->setZoom(reader->m_fontControl.currentsize()*10); 2367 m_infoWin->setZoom(reader->m_fontControl.currentsize()*10);
2300 m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about()); 2368 m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about());
2301 editorStack->raiseWidget( m_infoWin ); 2369 editorStack->raiseWidget( m_infoWin );
2302 hidetoolbars(); 2370 hidetoolbars();
2303 m_infoWin->setFocus(); 2371 m_infoWin->setFocus();
2304 } 2372 }
2305} 2373}
2306 2374
2307void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn, size_t posn2) 2375void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn, size_t posn2)
2308{ 2376{
2309 if (pBkmklist == NULL) reader->pBkmklist = pBkmklist = new CList<Bkmk>; 2377 if (pBkmklist == NULL) reader->pBkmklist = pBkmklist = new CList<Bkmk>;
2310#ifdef _UNICODE 2378#ifdef _UNICODE
2311 CBuffer buff(name.length()+1); 2379 CBuffer buff(name.length()+1);
2312 int i; 2380 int i;
2313 for (i = 0; i < name.length(); i++) 2381 for (i = 0; i < name.length(); i++)
2314 { 2382 {
@@ -2729,56 +2797,56 @@ void QTReaderApp::search(const QString & arg)
2729*/ 2797*/
2730 else 2798 else
2731 { 2799 {
2732 start = reader->pagelocate(); 2800 start = reader->pagelocate();
2733 reader->jumpto(start); 2801 reader->jumpto(start);
2734 searchStack->push(new searchrecord(arg,start)); 2802 searchStack->push(new searchrecord(arg,start));
2735 } 2803 }
2736 dosearch(start, test, arg); 2804 dosearch(start, test, arg);
2737} 2805}
2738#else 2806#else
2739void QTReaderApp::search() 2807void QTReaderApp::search()
2740{ 2808{
2741 findNext(); 2809 findNext();
2742} 2810}
2743#endif 2811#endif
2744 2812
2745void QTReaderApp::openFile( const QString &f ) 2813void QTReaderApp::openFile( const QString &f, unsigned int loc )
2746{ 2814{
2747// qDebug("File:%s", (const char*)f); 2815// qDebug("File:%s", (const char*)f);
2748// openFile(DocLnk(f)); 2816// openFile(DocLnk(f));
2749//} 2817//}
2750// 2818//
2751//void QTReaderApp::openFile( const DocLnk &f ) 2819//void QTReaderApp::openFile( const DocLnk &f )
2752//{ 2820//{
2753 clear(); 2821 clear();
2754 QFileInfo fm(f); 2822 QFileInfo fm(f);
2755 if ( fm.exists() ) 2823 if ( fm.exists() )
2756 { 2824 {
2757// QMessageBox::information(0, "Progress", "Calling fileNew()"); 2825// QMessageBox::information(0, "Progress", "Calling fileNew()");
2758#ifdef USEQPE 2826#ifdef USEQPE
2759 if (fm.extension( FALSE ) == "desktop") 2827 if (fm.extension( FALSE ) == "desktop")
2760 { 2828 {
2761 DocLnk d(f); 2829 DocLnk d(f);
2762 QFileInfo fnew(d.file()); 2830 QFileInfo fnew(d.file());
2763 fm = fnew; 2831 fm = fnew;
2764 if (!fm.exists()) return; 2832 if (!fm.exists()) return;
2765 } 2833 }
2766#endif 2834#endif
2767 clear(); 2835 clear();
2768 reader->setText(fm.baseName(), fm.absFilePath()); 2836 reader->setText(fm.baseName(), fm.absFilePath(), loc);
2769 m_loadedconfig = readconfig(APPDIR "/configs", reader->m_string, false); 2837 m_loadedconfig = readconfig(APPDIR "/configs", reader->m_string, false);
2770 qDebug("Showing tools"); 2838 qDebug("Showing tools");
2771 showEditTools(); 2839 showEditTools();
2772 qDebug("Shown tools"); 2840 qDebug("Shown tools");
2773 readbkmks(); 2841 readbkmks();
2774 qDebug("read markss"); 2842 qDebug("read markss");
2775 m_savedpos = 0xffffffff; 2843 m_savedpos = 0xffffffff;
2776 } 2844 }
2777 else 2845 else
2778 { 2846 {
2779 QString msg = f; 2847 QString msg = f;
2780 msg += "\nFile does not exist"; 2848 msg += "\nFile does not exist";
2781 QMessageBox::information(this, PROGNAME, msg); 2849 QMessageBox::information(this, PROGNAME, msg);
2782 reader->m_lastfile = QString::null; 2850 reader->m_lastfile = QString::null;
2783 } 2851 }
2784 2852
@@ -2793,33 +2861,33 @@ void QTReaderApp::resizeEvent(QResizeEvent* e)
2793 } 2861 }
2794} 2862}
2795*/ 2863*/
2796void QTReaderApp::handlekey(QKeyEvent* e) 2864void QTReaderApp::handlekey(QKeyEvent* e)
2797{ 2865{
2798// qDebug("Keypress event"); 2866// qDebug("Keypress event");
2799 timeb now; 2867 timeb now;
2800 ftime(&now); 2868 ftime(&now);
2801 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; 2869 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm;
2802 if (etime < m_debounce) 2870 if (etime < m_debounce)
2803 { 2871 {
2804 return; 2872 return;
2805 } 2873 }
2806 switch(e->key()) 2874 switch(e->key())
2807 { 2875 {
2808 case Key_Escape: 2876 case Key_Escape:
2809 // qDebug("escape event"); 2877 qDebug("escape event");
2810 if (m_disableesckey) 2878 if (m_disableesckey)
2811 { 2879 {
2812 m_disableesckey = false; 2880 m_disableesckey = false;
2813 } 2881 }
2814 else 2882 else
2815 { 2883 {
2816 m_bcloseDisabled = true; 2884 m_bcloseDisabled = true;
2817 if (m_fullscreen) 2885 if (m_fullscreen)
2818 { 2886 {
2819 m_actFullscreen->setOn(false); 2887 m_actFullscreen->setOn(false);
2820 e->accept(); 2888 e->accept();
2821 } 2889 }
2822 else 2890 else
2823 { 2891 {
2824 // qDebug("escape action"); 2892 // qDebug("escape action");
2825 doAction(e); 2893 doAction(e);
@@ -2878,112 +2946,109 @@ void QTReaderApp::handlekey(QKeyEvent* e)
2878 */ 2946 */
2879 default: 2947 default:
2880 { 2948 {
2881 doAction(e); 2949 doAction(e);
2882 } 2950 }
2883 2951
2884/* 2952/*
2885 QString msg("Key press was:"); 2953 QString msg("Key press was:");
2886 QString key; 2954 QString key;
2887 msg += key.setNum(e->key()); 2955 msg += key.setNum(e->key());
2888 QMessageBox::information(this, PROGNAME, msg); 2956 QMessageBox::information(this, PROGNAME, msg);
2889*/ 2957*/
2890 } 2958 }
2891 ftime(&m_lastkeytime); 2959 ftime(&m_lastkeytime);
2892} 2960}
2893 2961
2894#ifdef NEWFULLSCREEN 2962#if defined(USEQPE) && defined(USENEWFULLSCREEN)
2895void QTReaderApp::enableFullscreen() 2963void QTReaderApp::focusInEvent(QFocusEvent *)
2896{
2897 setFixedSize(qApp->desktop()->size());
2898 showNormal();
2899 reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
2900 showFullScreen();
2901}
2902
2903void QTReaderApp::resizeEvent(QResizeEvent *)
2904{ 2964{
2905 if (m_fullscreen && (size() != qApp->desktop()->size())) 2965 if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
2906 { 2966 {
2907 enableFullscreen(); 2967 m_usenewfullscreen = false;
2968 reader->bDoUpdates = false;
2969 showEditTools();
2970 reader->bDoUpdates = true;
2971 reader->update();
2972 m_usenewfullscreen = true;
2908 } 2973 }
2909} 2974}
2910 2975
2911void QTReaderApp::focusInEvent(QFocusEvent*) 2976void QTReaderApp::resizeEvent(QResizeEvent *)
2912{ 2977{
2913 if (m_fullscreen) 2978 if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader))
2914 { 2979 {
2915 enableFullscreen(); 2980 m_usenewfullscreen = false;
2916 raise(); 2981 reader->bDoUpdates = false;
2982 showEditTools();
2983 reader->bDoUpdates = true;
2984 reader->update();
2985 m_usenewfullscreen = true;
2917 } 2986 }
2918} 2987}
2919#endif 2988#endif
2920 2989
2921void QTReaderApp::showEditTools() 2990void QTReaderApp::showEditTools()
2922{ 2991{
2923// if ( !doc ) 2992// if ( !doc )
2924 //close(); 2993 //close();
2925 if (m_fullscreen) 2994 if (m_fullscreen)
2926 { 2995 {
2927#ifdef USEQPE 2996#if defined(USEQPE)
2928 if (menubar != NULL) menubar->hide(); 2997 if (menubar != NULL) menubar->hide();
2929#endif 2998#endif
2930 if (fileBar != NULL) fileBar->hide(); 2999 if (fileBar != NULL) fileBar->hide();
2931 if (viewBar != NULL) viewBar->hide(); 3000 if (viewBar != NULL) viewBar->hide();
2932 if (navBar != NULL) navBar->hide(); 3001 if (navBar != NULL) navBar->hide();
2933 if (markBar != NULL) markBar->hide(); 3002 if (markBar != NULL) markBar->hide();
2934 if (m_prog != NULL) 3003 if (m_prog != NULL)
2935 { 3004 {
2936 // qDebug("Hiding status"); 3005 // qDebug("Hiding status");
2937 m_prog->hide(); 3006 m_prog->hide();
2938 } 3007 }
2939 searchBar->hide(); 3008 searchBar->hide();
2940 regBar->hide(); 3009 regBar->hide();
2941#ifdef USEQPE 3010#ifdef USEQPE
2942 Global::hideInputMethod(); 3011 Global::hideInputMethod();
2943#endif 3012#endif
2944 if (m_scrollbar != NULL) m_scrollbar->hide(); 3013 if (m_scrollbar != NULL) m_scrollbar->hide();
2945 m_fontBar->hide(); 3014 m_fontBar->hide();
2946 //showNormal(); 3015 //showNormal();
2947#ifdef NEWFULLSCREEN
2948 enableFullscreen();
2949#else
2950 showFullScreen(); 3016 showFullScreen();
2951#endif 3017 }
2952 }
2953 else 3018 else
2954 { 3019 {
2955 //qDebug("him"); 3020 //qDebug("him");
2956#ifdef USEQPE 3021#ifdef USEQPE
2957 Global::hideInputMethod(); 3022 Global::hideInputMethod();
2958#endif 3023#endif
2959 //qDebug("eb"); 3024 //qDebug("eb");
2960 if (m_scrollbar != NULL) 3025 if (m_scrollbar != NULL)
2961 { 3026 {
2962 if (m_scrollishidden) 3027 if (m_scrollishidden)
2963 { 3028 {
2964 m_scrollbar->hide(); 3029 m_scrollbar->hide();
2965 } 3030 }
2966 else 3031 else
2967 { 3032 {
2968 m_scrollbar->show(); 3033 m_scrollbar->show();
2969 } 3034 }
2970 } 3035 }
2971 if (!m_hidebars) 3036 if (!m_hidebars)
2972 { 3037 {
2973#ifdef USEQPE 3038#if defined(USEQPE)
2974 menubar->show(); 3039 menubar->show();
2975#endif 3040#endif
2976 if (fileBar != NULL) fileBar->show(); 3041 if (fileBar != NULL) fileBar->show();
2977 if (viewBar != NULL) viewBar->show(); 3042 if (viewBar != NULL) viewBar->show();
2978 if (navBar != NULL) navBar->show(); 3043 if (navBar != NULL) navBar->show();
2979 if (markBar != NULL) markBar->show(); 3044 if (markBar != NULL) markBar->show();
2980 if (m_prog != NULL && !m_statusishidden) 3045 if (m_prog != NULL && !m_statusishidden)
2981 { 3046 {
2982 // qDebug("Showing status"); 3047 // qDebug("Showing status");
2983 m_prog->show(); 3048 m_prog->show();
2984 // qDebug("Shown status"); 3049 // qDebug("Shown status");
2985 } 3050 }
2986 // qDebug("Showing mb"); 3051 // qDebug("Showing mb");
2987 mb->show(); 3052 mb->show();
2988 } 3053 }
2989 if ( searchVisible ) 3054 if ( searchVisible )
@@ -2991,46 +3056,46 @@ void QTReaderApp::showEditTools()
2991#ifdef USEQPE 3056#ifdef USEQPE
2992 Global::showInputMethod(); 3057 Global::showInputMethod();
2993#endif 3058#endif
2994 searchBar->show(); 3059 searchBar->show();
2995 } 3060 }
2996 if ( regVisible ) 3061 if ( regVisible )
2997 { 3062 {
2998#ifdef USEQPE 3063#ifdef USEQPE
2999 Global::showInputMethod(); 3064 Global::showInputMethod();
3000#endif 3065#endif
3001 regBar->show(); 3066 regBar->show();
3002 } 3067 }
3003 if (m_fontVisible) m_fontBar->show(); 3068 if (m_fontVisible) m_fontBar->show();
3004 //qDebug("sn"); 3069 //qDebug("sn");
3005 showNormal(); 3070 showNormal();
3006 //qDebug("sm"); 3071 //qDebug("sm");
3007#ifdef USEQPE 3072#if defined(USEQPE) && !defined(SIMPAD)
3008 showMaximized(); 3073 showMaximized();
3009#endif 3074#endif
3010 //setCentralWidget(reader); 3075 //setCentralWidget(reader);
3011 } 3076 }
3012 3077
3013 // qDebug("uc"); 3078 // qDebug("uc");
3014 updateCaption(); 3079 updateCaption();
3015 // qDebug("rw"); 3080 // qDebug("rw");
3016 editorStack->raiseWidget( reader ); 3081 editorStack->raiseWidget( reader );
3017 // qDebug("sf"); 3082 // qDebug("sf");
3018 reader->setFocus(); 3083 reader->setFocus();
3019 // qDebug("ref"); 3084 // qDebug("ref");
3020 reader->refresh(true); 3085 //reader->refresh(true);
3021 // qDebug("done"); 3086 // qDebug("done");
3022} 3087}
3023/* 3088/*
3024void QTReaderApp::save() 3089void QTReaderApp::save()
3025{ 3090{
3026 if ( !doc ) 3091 if ( !doc )
3027 return; 3092 return;
3028 if ( !editor->edited() ) 3093 if ( !editor->edited() )
3029 return; 3094 return;
3030 3095
3031 QString rt = editor->text(); 3096 QString rt = editor->text();
3032 QString pt = rt; 3097 QString pt = rt;
3033 3098
3034 if ( doc->name().isEmpty() ) { 3099 if ( doc->name().isEmpty() ) {
3035 unsigned ispace = pt.find( ' ' ); 3100 unsigned ispace = pt.find( ' ' );
3036 unsigned ienter = pt.find( '\n' ); 3101 unsigned ienter = pt.find( '\n' );
@@ -3161,57 +3226,67 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
3161} 3226}
3162 3227
3163void QTReaderApp::do_gotomark() 3228void QTReaderApp::do_gotomark()
3164{ 3229{
3165 m_nBkmkAction = cGotoBkmk; 3230 m_nBkmkAction = cGotoBkmk;
3166 if (!listbkmk(pBkmklist)) 3231 if (!listbkmk(pBkmklist))
3167 QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); 3232 QMessageBox::information(this, PROGNAME, "No bookmarks in memory");
3168} 3233}
3169 3234
3170void QTReaderApp::do_delmark() 3235void QTReaderApp::do_delmark()
3171{ 3236{
3172 m_nBkmkAction = cDelBkmk; 3237 m_nBkmkAction = cDelBkmk;
3173 if (!listbkmk(pBkmklist)) 3238 if (!listbkmk(pBkmklist))
3174 QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); 3239 QMessageBox::information(this, PROGNAME, "No bookmarks in memory");
3175} 3240}
3176 3241
3177bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab) 3242bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab, bool presel)
3178{ 3243{
3179 bkmkselector->clear(); 3244 bkmkselector->clear();
3180 if (_lab.isEmpty()) 3245 if (_lab.isEmpty())
3181 bkmkselector->setText("Cancel"); 3246 bkmkselector->setText("Cancel");
3182 else 3247 else
3183 bkmkselector->setText(_lab); 3248 bkmkselector->setText(_lab);
3184 int cnt = 0; 3249 int cnt = 0;
3250 int slt = -1;
3185 if (plist != NULL) 3251 if (plist != NULL)
3186 { 3252 {
3187 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) 3253 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++)
3188 { 3254 {
3255 if (presel)
3256 {
3257 Bkmk* p = i.pContent();
3258 if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile)
3259 {
3260 slt = cnt;
3261 }
3262 }
3189#ifdef _UNICODE 3263#ifdef _UNICODE
3190 // qDebug("Item:%s", (const char*)toQString(i->name())); 3264 // qDebug("Item:%s", (const char*)toQString(i->name()));
3191 bkmkselector->insertItem(toQString(i->name())); 3265 bkmkselector->insertItem(toQString(i->name()), cnt++);
3192#else 3266#else
3193 bkmkselector->insertItem(i->name()); 3267 bkmkselector->insertItem(i->name(), cnt++);
3194#endif 3268#endif
3195 cnt++; 3269
3196 } 3270 }
3197 } 3271 }
3198 if (cnt > 0) 3272 if (cnt > 0)
3199 { 3273 {
3200 hidetoolbars(); 3274 hidetoolbars();
3201 editorStack->raiseWidget( bkmkselector ); 3275 editorStack->raiseWidget( bkmkselector );
3276 if (slt != -1) bkmkselector->setCurrentItem(slt);
3202 return true; 3277 return true;
3203 } 3278 }
3204 else 3279 else
3205 return false; 3280 return false;
3206} 3281}
3207 3282
3208void QTReaderApp::do_autogen() 3283void QTReaderApp::do_autogen()
3209{ 3284{
3210 m_nRegAction = cAutoGen; 3285 m_nRegAction = cAutoGen;
3211 regEdit->setText(m_autogenstr); 3286 regEdit->setText(m_autogenstr);
3212 do_regedit(); 3287 do_regedit();
3213} 3288}
3214 3289
3215void QTReaderApp::do_regedit() 3290void QTReaderApp::do_regedit()
3216{ 3291{
3217// fileBar->hide(); 3292// fileBar->hide();
@@ -3225,56 +3300,57 @@ void QTReaderApp::do_regedit()
3225 regVisible = true; 3300 regVisible = true;
3226 regEdit->setFocus(); 3301 regEdit->setFocus();
3227// qApp->processEvents(); 3302// qApp->processEvents();
3228 reader->bDoUpdates = true; 3303 reader->bDoUpdates = true;
3229 reader->update(); 3304 reader->update();
3230} 3305}
3231 3306
3232bool QTReaderApp::openfrombkmk(Bkmk* bk) 3307bool QTReaderApp::openfrombkmk(Bkmk* bk)
3233{ 3308{
3234 QString fn = toQString( 3309 QString fn = toQString(
3235 CFiledata(bk->anno()).name() 3310 CFiledata(bk->anno()).name()
3236 ); 3311 );
3237 //qDebug("fileinfo"); 3312 //qDebug("fileinfo");
3238 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 3313 if (!fn.isEmpty() && QFileInfo(fn).isFile())
3239 { 3314 {
3240 //qDebug("Opening"); 3315 //qDebug("Opening");
3241 openFile(fn);
3242 struct stat fnstat; 3316 struct stat fnstat;
3243 stat((const char *)reader->m_lastfile, &fnstat); 3317 stat((const char *)fn, &fnstat);
3244 3318
3245 if (CFiledata(bk->anno()).date() 3319 if (CFiledata(bk->anno()).date()
3246 != fnstat.st_mtime) 3320 != fnstat.st_mtime)
3247 { 3321 {
3248 CFiledata fd(bk->anno()); 3322 CFiledata fd(bk->anno());
3249 fd.setdate(fnstat.st_mtime); 3323 fd.setdate(fnstat.st_mtime);
3250 bk->value(0); 3324 bk->value(0);
3325 reader->m_lastposn = 0;
3326 openFile(fn);
3251 } 3327 }
3252 else 3328 else
3253 { 3329 {
3254 unsigned short svlen = bk->filedatalen(); 3330 unsigned short svlen = bk->filedatalen();
3255 unsigned char* svdata = bk->filedata(); 3331 unsigned char* svdata = bk->filedata();
3332 openFile(fn, bk->value());
3256 reader->putSaveData(svdata, svlen); 3333 reader->putSaveData(svdata, svlen);
3257 // setstate(svdata, svlen); 3334 // setstate(svdata, svlen);
3258 if (svlen != 0) 3335 if (svlen != 0)
3259 { 3336 {
3260 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); 3337 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?");
3261 } 3338 }
3262 // qDebug("updating"); 3339 // qDebug("updating");
3263 // showEditTools(); 3340 // showEditTools();
3264 reader->locate(bk->value());
3265 } 3341 }
3266 return true; 3342 return true;
3267 } 3343 }
3268 else 3344 else
3269 { 3345 {
3270 return false; 3346 return false;
3271 } 3347 }
3272} 3348}
3273 3349
3274void QTReaderApp::gotobkmk(int ind) 3350void QTReaderApp::gotobkmk(int ind)
3275{ 3351{
3276 qDebug("gbkmk"); 3352 qDebug("gbkmk");
3277 showEditTools(); 3353 showEditTools();
3278 switch (m_nBkmkAction) 3354 switch (m_nBkmkAction)
3279 { 3355 {
3280 case cOpenFile: 3356 case cOpenFile:
@@ -3353,33 +3429,33 @@ void QTReaderApp::gotobkmk(int ind)
3353 } 3429 }
3354 fclose(fin); 3430 fclose(fin);
3355 fprintf(fout, "</html></body>\n"); 3431 fprintf(fout, "</html></body>\n");
3356 d.remove(bkmkselector->text(ind)); 3432 d.remove(bkmkselector->text(ind));
3357 } 3433 }
3358 fclose(fout); 3434 fclose(fout);
3359 } 3435 }
3360 else 3436 else
3361 QMessageBox::information(this, PROGNAME, "Couldn't open output"); 3437 QMessageBox::information(this, PROGNAME, "Couldn't open output");
3362 } 3438 }
3363 } 3439 }
3364#else /* USEQPE */ 3440#else /* USEQPE */
3365 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); 3441 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r");
3366 if (fin != NULL) 3442 if (fin != NULL)
3367 { 3443 {
3368 bool allok = false; 3444 bool allok = false;
3369#ifdef OPIE 3445#if defined(OPIE) && defined(OPIEFILEDIALOG)
3370 QString outfile = OFileDialog::getSaveFileName(OFileSelector::EXTENDED_ALL, QString::null, QString::null, MimeTypes(), 0, "OpieReader"); 3446 QString outfile = OFileDialog::getSaveFileName(OFileSelector::EXTENDED_ALL, QString::null, QString::null, MimeTypes(), 0, "OpieReader");
3371 if (!outfile.isEmpty()) 3447 if (!outfile.isEmpty())
3372 { 3448 {
3373 FILE* fout = fopen((const char *)outfile, "w"); 3449 FILE* fout = fopen((const char *)outfile, "w");
3374 if (fout != NULL) 3450 if (fout != NULL)
3375 { 3451 {
3376 fprintf(fout, "<html><body>\n"); 3452 fprintf(fout, "<html><body>\n");
3377 int ch = 0; 3453 int ch = 0;
3378 while ((ch = fgetc(fin)) != EOF) 3454 while ((ch = fgetc(fin)) != EOF)
3379 { 3455 {
3380 fputc(ch, fout); 3456 fputc(ch, fout);
3381 } 3457 }
3382 fprintf(fout, "</html></body>\n"); 3458 fprintf(fout, "</html></body>\n");
3383 fclose(fout); 3459 fclose(fout);
3384 allok = true; 3460 allok = true;
3385 } 3461 }
@@ -3690,51 +3766,60 @@ void QTReaderApp::do_autogen(const QString& regText)
3690 QRegExp re(regText); 3766 QRegExp re(regText);
3691 CBuffer buff; 3767 CBuffer buff;
3692 if (pBkmklist != NULL) delete pBkmklist; 3768 if (pBkmklist != NULL) delete pBkmklist;
3693 reader->pBkmklist = pBkmklist = new CList<Bkmk>; 3769 reader->pBkmklist = pBkmklist = new CList<Bkmk>;
3694 m_fBkmksChanged = true; 3770 m_fBkmksChanged = true;
3695 3771
3696 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height()); 3772 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height());
3697 pbar->show(); 3773 pbar->show();
3698 pbar->raise(); 3774 pbar->raise();
3699 pbar->reset(); 3775 pbar->reset();
3700 reader->update(); 3776 reader->update();
3701 qApp->processEvents(); 3777 qApp->processEvents();
3702 reader->setFocus(); 3778 reader->setFocus();
3703 reader->jumpto(0); 3779 reader->jumpto(0);
3704 int lastpc = 0; 3780 int lastpc = 0;
3705 int i = 0; 3781 int i = 0;
3782 unsigned int llcn = reader->locate();
3706 while (i >= 0) 3783 while (i >= 0)
3707 { 3784 {
3708 unsigned int lcn = reader->locate(); 3785 unsigned int lcn = llcn;
3709 int pc = (100*lcn)/ts; 3786 int pc = (100*lcn)/ts;
3710 if (pc != lastpc) 3787 if (pc != lastpc)
3711 { 3788 {
3712 pbar->setProgress(pc); 3789 pbar->setProgress(pc);
3713 qApp->processEvents(); 3790 qApp->processEvents();
3714 if (reader->locate() != lcn) reader->jumpto(lcn); 3791 if (reader->locate() != lcn) reader->jumpto(lcn);
3715 reader->setFocus(); 3792 reader->setFocus();
3716 lastpc = pc; 3793 lastpc = pc;
3717 } 3794 }
3718 i = reader->buffdoc.getpara(buff); 3795 i = reader->buffdoc.getpara(buff);
3719#ifdef _UNICODE 3796#ifdef _UNICODE
3720 if (re.match(toQString(buff.data())) != -1) 3797 if (re.match(toQString(buff.data())) != -1)
3721#else 3798#else
3722 if (re.match(buff.data()) != -1) 3799 if (re.match(buff.data()) != -1)
3723#endif 3800#endif
3724 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn)); 3801 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn));
3802 /*
3803 llcn = reader->locate();
3804 if ((i == 0) && (llcn+1 < ts))
3805 {
3806 reader->jumpto(++llcn);
3807 i = 1;
3808 }
3809 */
3725 } 3810 }
3726 pBkmklist->sort(); 3811 pBkmklist->sort();
3727 pbar->setProgress(100); 3812 pbar->setProgress(100);
3728 qApp->processEvents(); 3813 qApp->processEvents();
3729 pbar->hide(); 3814 pbar->hide();
3730 reader->refresh(); 3815 reader->refresh();
3731} 3816}
3732 3817
3733void QTReaderApp::saveprefs() 3818void QTReaderApp::saveprefs()
3734{ 3819{
3735 do_saveconfig( APPDIR, true ); 3820 do_saveconfig( APPDIR, true );
3736 savefilelist(); 3821 savefilelist();
3737} 3822}
3738 3823
3739/* 3824/*
3740void QTReaderApp::oldFile() 3825void QTReaderApp::oldFile()
@@ -4019,32 +4104,36 @@ void QTReaderApp::showAnnotation()
4019 m_annoWin->setName(toQString(m_anno->name())); 4104 m_annoWin->setName(toQString(m_anno->name()));
4020 m_annoWin->setAnno(toQString(m_anno->anno())); 4105 m_annoWin->setAnno(toQString(m_anno->anno()));
4021 m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue())); 4106 m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue()));
4022 m_annoIsEditing = false; 4107 m_annoIsEditing = false;
4023#ifdef USEQPE 4108#ifdef USEQPE
4024 Global::showInputMethod(); 4109 Global::showInputMethod();
4025#endif 4110#endif
4026 editorStack->raiseWidget( m_annoWin ); 4111 editorStack->raiseWidget( m_annoWin );
4027 hidetoolbars(); 4112 hidetoolbars();
4028 m_annoWin->setFocus(); 4113 m_annoWin->setFocus();
4029} 4114}
4030 4115
4031void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2, const QString& line) 4116void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2, const QString& line)
4032{ 4117{
4033//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd); 4118//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd);
4034 4119
4120 if (m_doOutput && reader->checkoutput())
4121 {
4122 reader->doOutput(wrd);
4123 }
4035 if (m_doClipboard) 4124 if (m_doClipboard)
4036 { 4125 {
4037 QClipboard* cb = QApplication::clipboard(); 4126 QClipboard* cb = QApplication::clipboard();
4038 cb->setText(wrd); 4127 cb->setText(wrd);
4039#ifdef USEQPE 4128#ifdef USEQPE
4040 if (wrd.length() > 10) 4129 if (wrd.length() > 10)
4041 { 4130 {
4042 Global::statusMessage(wrd.left(8) + ".."); 4131 Global::statusMessage(wrd.left(8) + "..");
4043 } 4132 }
4044 else 4133 else
4045 { 4134 {
4046 Global::statusMessage(wrd); 4135 Global::statusMessage(wrd);
4047 } 4136 }
4048#endif 4137#endif
4049 } 4138 }
4050 if (m_doAnnotation) 4139 if (m_doAnnotation)
@@ -4103,44 +4192,44 @@ void QTReaderApp::doAction(QKeyEvent* e)
4103 { 4192 {
4104 reader->gotoLink(); 4193 reader->gotoLink();
4105 } 4194 }
4106 break; 4195 break;
4107 case cesNextLink: 4196 case cesNextLink:
4108 { 4197 {
4109 reader->getNextLink(); 4198 reader->getNextLink();
4110 } 4199 }
4111 break; 4200 break;
4112 case cesInvertColours: 4201 case cesInvertColours:
4113 m_inverse_action->setOn(!reader->bInverse); 4202 m_inverse_action->setOn(!reader->bInverse);
4114 break; 4203 break;
4115 case cesToggleBars: 4204 case cesToggleBars:
4116 m_hidebars = !m_hidebars; 4205 m_hidebars = !m_hidebars;
4117 if (m_hidebars) 4206 if (m_hidebars)
4118 { 4207 {
4119#ifdef USEQPE 4208#if defined(USEQPE)
4120 menubar->hide(); 4209 menubar->hide();
4121#endif 4210#endif
4122 if (fileBar != NULL) fileBar->hide(); 4211 if (fileBar != NULL) fileBar->hide();
4123 if (viewBar != NULL) viewBar->hide(); 4212 if (viewBar != NULL) viewBar->hide();
4124 if (navBar != NULL) navBar->hide(); 4213 if (navBar != NULL) navBar->hide();
4125 if (markBar != NULL) markBar->hide(); 4214 if (markBar != NULL) markBar->hide();
4126 mb->hide(); 4215 mb->hide();
4127 } 4216 }
4128 else 4217 else
4129 { 4218 {
4130#ifdef USEQPE 4219#if defined(USEQPE)
4131 menubar->show(); 4220 menubar->show();
4132#endif 4221#endif
4133 if (fileBar != NULL) fileBar->show(); 4222 if (fileBar != NULL) fileBar->show();
4134 if (viewBar != NULL) viewBar->show(); 4223 if (viewBar != NULL) viewBar->show();
4135 if (navBar != NULL) navBar->show(); 4224 if (navBar != NULL) navBar->show();
4136 if (markBar != NULL) markBar->show(); 4225 if (markBar != NULL) markBar->show();
4137 mb->show(); 4226 mb->show();
4138 } 4227 }
4139 break; 4228 break;
4140 case cesToggleScrollBar: 4229 case cesToggleScrollBar:
4141 if (m_scrollbar != NULL) 4230 if (m_scrollbar != NULL)
4142 { 4231 {
4143 if (m_scrollbar->isHidden()) 4232 if (m_scrollbar->isHidden())
4144 { 4233 {
4145 m_scrollishidden = false; 4234 m_scrollishidden = false;
4146 m_scrollbar->show(); 4235 m_scrollbar->show();
@@ -4327,108 +4416,114 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
4327 if ( !d.cd("configs") ) 4416 if ( !d.cd("configs") )
4328 { // "/tmp" 4417 { // "/tmp"
4329 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); 4418 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" );
4330 d = QDir::home(); 4419 d = QDir::home();
4331 d.cd(APPDIR); 4420 d.cd(APPDIR);
4332 d.mkdir("configs"); 4421 d.mkdir("configs");
4333 d.cd("configs"); 4422 d.cd("configs");
4334 } 4423 }
4335 fi.setFile(d, _txt); 4424 fi.setFile(d, _txt);
4336 } 4425 }
4337 //qDebug("Path:%s", (const char*)fi.absFilePath()); 4426 //qDebug("Path:%s", (const char*)fi.absFilePath());
4338 Config config(fi.absFilePath()); 4427 Config config(fi.absFilePath());
4339#endif 4428#endif
4340 4429
4341 4430
4342 config.writeEntry( "StripCr", reader->bstripcr ); 4431 config.writeEntry( "StripCr", reader->bstripcr );
4432 config.writeEntry( "NoInlineTables", reader->bNoInlineTables );
4343 config.writeEntry( "AutoFmt", reader->bautofmt ); 4433 config.writeEntry( "AutoFmt", reader->bautofmt );
4344 config.writeEntry( "TextFmt", reader->btextfmt ); 4434 config.writeEntry( "TextFmt", reader->btextfmt );
4345 config.writeEntry( "StripHtml", reader->bstriphtml ); 4435 config.writeEntry( "StripHtml", reader->bstriphtml );
4346 config.writeEntry( "Dehyphen", reader->bdehyphen ); 4436 config.writeEntry( "Dehyphen", reader->bdehyphen );
4347 config.writeEntry( "Depluck", reader->bdepluck ); 4437 config.writeEntry( "Depluck", reader->bdepluck );
4348 config.writeEntry( "Dejpluck", reader->bdejpluck ); 4438 config.writeEntry( "Dejpluck", reader->bdejpluck );
4349 config.writeEntry( "OneSpace", reader->bonespace ); 4439 config.writeEntry( "OneSpace", reader->bonespace );
4350 config.writeEntry( "Unindent", reader->bunindent ); 4440 config.writeEntry( "Unindent", reader->bunindent );
4351 config.writeEntry( "Repara", reader->brepara ); 4441 config.writeEntry( "Repara", reader->brepara );
4352 config.writeEntry( "ReparaString", reader->m_reparastring); 4442 config.writeEntry( "ReparaString", reader->m_reparastring);
4353 config.writeEntry( "BackgroundType" , (int)m_bgtype ); 4443 config.writeEntry( "BackgroundType" , (int)m_bgtype );
4354 config.writeEntry( "Theme", m_themename ); 4444 config.writeEntry( "Theme", m_themename );
4355 config.writeEntry( "DoubleSpace", reader->bdblspce ); 4445 config.writeEntry( "DoubleSpace", reader->bdblspce );
4356 config.writeEntry( "Indent", reader->bindenter ); 4446 config.writeEntry( "Indent", reader->bindenter );
4357 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); 4447 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) );
4358 config.writeEntry( "ScrollDelay", reader->m_delay); 4448 config.writeEntry( "ScrollDelay", reader->m_delay);
4359 config.writeEntry( "ScrollStep", reader->m_scrollstep); 4449 config.writeEntry( "ScrollStep", reader->m_scrollstep);
4360 config.writeEntry( "ScrollType", reader->m_scrolltype ); 4450 config.writeEntry( "ScrollType", reader->m_scrolltype );
4361 if (full) 4451 if (full)
4362 { 4452 {
4363 config.writeEntry("Debounce", m_debounce); 4453 config.writeEntry("Debounce", m_debounce);
4364 config.writeEntry("FloatDialogs", m_bFloatingDialog); 4454 config.writeEntry("FloatDialogs", m_bFloatingDialog);
4365 reader->m_lastposn = reader->pagelocate(); 4455 reader->m_lastposn = reader->pagelocate();
4366 config.writeEntry( "LastFile", reader->m_lastfile ); 4456 config.writeEntry( "LastFile", reader->m_lastfile );
4367 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); 4457 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) );
4458 config.writeEntry( "OutputCodec", reader->m_outputName);
4368 } 4459 }
4369 config.writeEntry( "PageMode", reader->m_bpagemode ); 4460 config.writeEntry( "PageMode", reader->m_bpagemode );
4370 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); 4461 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced );
4371 config.writeEntry( "SwapMouse", reader->m_swapmouse); 4462 config.writeEntry( "SwapMouse", reader->m_swapmouse);
4372 config.writeEntry( "IsRotated", reader->m_rotated ); 4463 config.writeEntry( "IsRotated", reader->m_rotated );
4373 config.writeEntry("StatusContent", m_statusstring); 4464 config.writeEntry("StatusContent", m_statusstring);
4374 config.writeEntry("StatusHidden", m_statusishidden); 4465 config.writeEntry("StatusHidden", m_statusishidden);
4375 config.writeEntry( "Background", m_background ); 4466 config.writeEntry( "Background", m_background );
4376 config.writeEntry( "Foreground", m_foreground ); 4467 config.writeEntry( "Foreground", m_foreground );
4377 config.writeEntry( "ScrollColour", m_scrollcolor ); 4468 config.writeEntry( "ScrollColour", m_scrollcolor );
4378 config.writeEntry( "ScrollBarColour", m_scrollbarcolor ); 4469 config.writeEntry( "ScrollBarColour", m_scrollbarcolor );
4379 config.writeEntry( "Hyphenate", reader->hyphenate ); 4470 config.writeEntry( "Hyphenate", reader->hyphenate );
4380 // config.writeEntry( "CustomHyphen", reader->buffdoc.getCustomHyphen() ); 4471 // config.writeEntry( "CustomHyphen", reader->buffdoc.getCustomHyphen() );
4381 config.writeEntry( "Fontname", reader->m_fontname ); 4472 config.writeEntry( "Fontname", reader->m_fontname );
4382 config.writeEntry( "Encoding", reader->m_encd ); 4473 config.writeEntry( "Encoding", reader->m_encd );
4383 config.writeEntry( "CharSpacing", reader->m_charpc ); 4474 config.writeEntry( "CharSpacing", reader->m_charpc );
4384 config.writeEntry( "Overlap", (int)(reader->m_overlap) ); 4475 config.writeEntry( "Overlap", (int)(reader->m_overlap) );
4385 config.writeEntry( "Top Margin", (int)reader->m_abstopmargin ); 4476 config.writeEntry( "Top Margin", (int)reader->m_abstopmargin );
4386 config.writeEntry( "Bottom Margin", (int)reader->m_absbottommargin ); 4477 config.writeEntry( "Bottom Margin", (int)reader->m_absbottommargin );
4387 config.writeEntry( "Left Margin", (int)reader->m_absleft_border ); 4478 config.writeEntry( "Left Margin", (int)reader->m_absleft_border );
4388 config.writeEntry( "Right Margin", (int)reader->m_absright_border ); 4479 config.writeEntry( "Right Margin", (int)reader->m_absright_border );
4389 config.writeEntry( "TargetApp", m_targetapp ); 4480 config.writeEntry( "TargetApp", m_targetapp );
4390 config.writeEntry( "TargetMsg", m_targetmsg ); 4481 config.writeEntry( "TargetMsg", m_targetmsg );
4391#ifdef _SCROLLPIPE 4482#ifdef _SCROLLPIPE
4392 config.writeEntry( "PipeTarget", reader->m_pipetarget ); 4483 config.writeEntry( "PipeTarget", reader->m_pipetarget );
4393 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); 4484 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
4394#endif 4485#endif
4395 config.writeEntry( "TwoTouch", m_twoTouch ); 4486 config.writeEntry( "TwoTouch", m_twoTouch );
4396 config.writeEntry( "Annotation", m_doAnnotation); 4487 config.writeEntry( "Annotation", m_doAnnotation);
4397 config.writeEntry( "Dictionary", m_doDictionary); 4488 config.writeEntry( "Dictionary", m_doDictionary);
4398 config.writeEntry( "Clipboard", m_doClipboard); 4489 config.writeEntry( "Clipboard", m_doClipboard);
4490 config.writeEntry( "OutputTgt", m_doOutput);
4399 /* 4491 /*
4400 config.writeEntry( "SpaceTarget", m_spaceTarget); 4492 config.writeEntry( "SpaceTarget", m_spaceTarget);
4401 config.writeEntry( "EscapeTarget", m_escapeTarget); 4493 config.writeEntry( "EscapeTarget", m_escapeTarget);
4402 config.writeEntry( "ReturnTarget", m_returnTarget); 4494 config.writeEntry( "ReturnTarget", m_returnTarget);
4403 config.writeEntry( "LeftTarget", m_leftTarget); 4495 config.writeEntry( "LeftTarget", m_leftTarget);
4404 config.writeEntry( "RightTarget", m_rightTarget); 4496 config.writeEntry( "RightTarget", m_rightTarget);
4405 config.writeEntry( "UpTarget", m_upTarget); 4497 config.writeEntry( "UpTarget", m_upTarget);
4406 config.writeEntry( "DownTarget", m_downTarget); 4498 config.writeEntry( "DownTarget", m_downTarget);
4407 config.writeEntry("LeftScroll", m_leftScroll); 4499 config.writeEntry("LeftScroll", m_leftScroll);
4408 config.writeEntry("RightScroll", m_rightScroll); 4500 config.writeEntry("RightScroll", m_rightScroll);
4409 config.writeEntry("UpScroll", m_upScroll); 4501 config.writeEntry("UpScroll", m_upScroll);
4410 config.writeEntry("DownScroll", m_downScroll); 4502 config.writeEntry("DownScroll", m_downScroll);
4411 */ 4503 */
4412 config.writeEntry( "Repalm", reader->brepalm ); 4504 config.writeEntry( "Repalm", reader->brepalm );
4505 config.writeEntry( "UnderlineLink", reader->bunderlineLink );
4413 config.writeEntry( "HideScrollBar", m_scrollishidden ); 4506 config.writeEntry( "HideScrollBar", m_scrollishidden );
4507 config.writeEntry( "HideToolBar", m_hidebars );
4414 config.writeEntry( "Kern", reader->bkern ); 4508 config.writeEntry( "Kern", reader->bkern );
4415 config.writeEntry( "Remap", reader->bremap ); 4509 config.writeEntry( "Remap", reader->bremap );
4416 config.writeEntry( "Peanut", reader->bpeanut ); 4510 config.writeEntry( "Peanut", reader->bpeanut );
4417 config.writeEntry( "MakeBold", reader->bmakebold ); 4511 config.writeEntry( "MakeBold", reader->bmakebold );
4418 config.writeEntry( "Continuous", reader->m_continuousDocument ); 4512 config.writeEntry( "Continuous", reader->m_continuousDocument );
4513 config.writeEntry( "DoubleBuffer", reader->m_doubleBuffered);
4419 config.writeEntry( "FullJust", reader->bfulljust ); 4514 config.writeEntry( "FullJust", reader->bfulljust );
4420 // config.writeEntry( "Negative", reader->bNegative ); 4515 // config.writeEntry( "Negative", reader->bNegative );
4421 config.writeEntry( "Inverse", reader->bInverse ); 4516 config.writeEntry( "Inverse", reader->bInverse );
4422 config.writeEntry( "FixGraphics", reader->m_fontControl.FixGraphics()); 4517 config.writeEntry( "FixGraphics", reader->m_fontControl.FixGraphics());
4423 config.writeEntry( "ExtraSpace", reader->getextraspace() ); 4518 config.writeEntry( "ExtraSpace", reader->getextraspace() );
4424 config.writeEntry( "ExtraLead", reader->getlead() ); 4519 config.writeEntry( "ExtraLead", reader->getlead() );
4425 config.writeEntry( "Basesize", (int)reader->getBaseSize()); 4520 config.writeEntry( "Basesize", (int)reader->getBaseSize());
4426 config.writeEntry( "RequestorFontChange", m_propogatefontchange); 4521 config.writeEntry( "RequestorFontChange", m_propogatefontchange);
4427#ifdef USEQPE 4522#ifdef USEQPE
4428 config.writeEntry( "GrabKeyboard", m_grabkeyboard ); 4523 config.writeEntry( "GrabKeyboard", m_grabkeyboard );
4429#endif 4524#endif
4430 if (full) 4525 if (full)
4431 { 4526 {
4432 config.setGroup( "Toolbar" ); 4527 config.setGroup( "Toolbar" );
4433 config.writeEntry("QTScrollBar", m_qtscroll); 4528 config.writeEntry("QTScrollBar", m_qtscroll);
4434 config.writeEntry("LocalScrollBar", m_localscroll); 4529 config.writeEntry("LocalScrollBar", m_localscroll);
@@ -4506,32 +4601,33 @@ bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool f
4506 fullname = QDir::homeDirPath() + "/" + dirname + "/" + _txt; 4601 fullname = QDir::homeDirPath() + "/" + dirname + "/" + _txt;
4507 } 4602 }
4508 if (!QFile::exists(fullname)) return false; 4603 if (!QFile::exists(fullname)) return false;
4509 4604
4510 Config config(fullname); 4605 Config config(fullname);
4511#endif 4606#endif
4512 if (full) 4607 if (full)
4513 { 4608 {
4514 config.setGroup("Toolbar"); 4609 config.setGroup("Toolbar");
4515 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", m_tbmovesave); 4610 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", m_tbmovesave);
4516 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", m_tbpolsave); 4611 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", m_tbpolsave);
4517 m_tbposition = (ToolBarDock)config.readNumEntry("Position", m_tbposition); 4612 m_tbposition = (ToolBarDock)config.readNumEntry("Position", m_tbposition);
4518 } 4613 }
4519 config.setGroup( "View" ); 4614 config.setGroup( "View" );
4520 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", m_bFloatingDialog); 4615 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", m_bFloatingDialog);
4521 reader->bstripcr = config.readBoolEntry( "StripCr", reader->bstripcr ); 4616 reader->bstripcr = config.readBoolEntry( "StripCr", reader->bstripcr );
4617 reader->bNoInlineTables = config.readBoolEntry( "NoInlineTables", reader->bNoInlineTables );
4522 reader->bfulljust = config.readBoolEntry( "FullJust", reader->bfulljust ); 4618 reader->bfulljust = config.readBoolEntry( "FullJust", reader->bfulljust );
4523 reader->bInverse = config.readBoolEntry( "Inverse", reader->bInverse ); 4619 reader->bInverse = config.readBoolEntry( "Inverse", reader->bInverse );
4524 // reader->bNegative = config.readBoolEntry( "Negative", false ); 4620 // reader->bNegative = config.readBoolEntry( "Negative", false );
4525 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", reader->m_fontControl.FixGraphics() )); 4621 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", reader->m_fontControl.FixGraphics() ));
4526 reader->setextraspace(config.readNumEntry( "ExtraSpace", reader->getextraspace() )); 4622 reader->setextraspace(config.readNumEntry( "ExtraSpace", reader->getextraspace() ));
4527 reader->setlead(config.readNumEntry( "ExtraLead", reader->getlead() )); 4623 reader->setlead(config.readNumEntry( "ExtraLead", reader->getlead() ));
4528 reader->btextfmt = config.readBoolEntry( "TextFmt", reader->btextfmt ); 4624 reader->btextfmt = config.readBoolEntry( "TextFmt", reader->btextfmt );
4529 reader->bautofmt = config.readBoolEntry( "AutoFmt", reader->bautofmt ); 4625 reader->bautofmt = config.readBoolEntry( "AutoFmt", reader->bautofmt );
4530 reader->bstriphtml = config.readBoolEntry( "StripHtml", reader->bstriphtml ); 4626 reader->bstriphtml = config.readBoolEntry( "StripHtml", reader->bstriphtml );
4531 reader->bpeanut = config.readBoolEntry( "Peanut", reader->bpeanut ); 4627 reader->bpeanut = config.readBoolEntry( "Peanut", reader->bpeanut );
4532 reader->bdehyphen = config.readBoolEntry( "Dehyphen", reader->bdehyphen ); 4628 reader->bdehyphen = config.readBoolEntry( "Dehyphen", reader->bdehyphen );
4533 reader->bdepluck = config.readBoolEntry( "Depluck", reader->bdepluck ); 4629 reader->bdepluck = config.readBoolEntry( "Depluck", reader->bdepluck );
4534 reader->bdejpluck = config.readBoolEntry( "Dejpluck", reader->bdejpluck ); 4630 reader->bdejpluck = config.readBoolEntry( "Dejpluck", reader->bdejpluck );
4535 reader->bonespace = config.readBoolEntry( "OneSpace", reader->bonespace ); 4631 reader->bonespace = config.readBoolEntry( "OneSpace", reader->bonespace );
4536 reader->bunindent = config.readBoolEntry( "Unindent", reader->bunindent ); 4632 reader->bunindent = config.readBoolEntry( "Unindent", reader->bunindent );
4537 reader->brepara = config.readBoolEntry( "Repara", reader->brepara ); 4633 reader->brepara = config.readBoolEntry( "Repara", reader->brepara );
@@ -4561,53 +4657,59 @@ bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool f
4561 m_scrollcolor = config.readNumEntry( "ScrollColour", m_scrollcolor); 4657 m_scrollcolor = config.readNumEntry( "ScrollColour", m_scrollcolor);
4562 setscrollcolour(); 4658 setscrollcolour();
4563 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", m_scrollbarcolor); 4659 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", m_scrollbarcolor);
4564 setscrollbarcolour(); 4660 setscrollbarcolour();
4565 reader->hyphenate = config.readBoolEntry( "Hyphenate", reader->hyphenate ); 4661 reader->hyphenate = config.readBoolEntry( "Hyphenate", reader->hyphenate );
4566 // reader->buffdoc.setCustomHyphen(config.readBoolEntry( "CustomHyphen", false )); 4662 // reader->buffdoc.setCustomHyphen(config.readBoolEntry( "CustomHyphen", false ));
4567 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", reader->m_swapmouse); 4663 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", reader->m_swapmouse);
4568 reader->m_fontname = config.readEntry( "Fontname", reader->m_fontname ); 4664 reader->m_fontname = config.readEntry( "Fontname", reader->m_fontname );
4569 reader->m_encd = config.readNumEntry( "Encoding", reader->m_encd ); 4665 reader->m_encd = config.readNumEntry( "Encoding", reader->m_encd );
4570 reader->m_charpc = config.readNumEntry( "CharSpacing", reader->m_charpc ); 4666 reader->m_charpc = config.readNumEntry( "CharSpacing", reader->m_charpc );
4571 reader->m_overlap = config.readNumEntry( "Overlap", reader->m_overlap ); 4667 reader->m_overlap = config.readNumEntry( "Overlap", reader->m_overlap );
4572 reader->m_abstopmargin = config.readNumEntry( "Top Margin", reader->m_abstopmargin ); 4668 reader->m_abstopmargin = config.readNumEntry( "Top Margin", reader->m_abstopmargin );
4573 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", reader->m_absbottommargin ); 4669 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", reader->m_absbottommargin );
4574 reader->m_absleft_border = config.readNumEntry( "Left Margin", reader->m_absleft_border ); 4670 reader->m_absleft_border = config.readNumEntry( "Left Margin", reader->m_absleft_border );
4575 reader->m_absright_border = config.readNumEntry( "Right Margin", reader->m_absright_border ); 4671 reader->m_absright_border = config.readNumEntry( "Right Margin", reader->m_absright_border );
4576 m_scrollishidden = config.readBoolEntry( "HideScrollBar", m_scrollishidden ); 4672 m_scrollishidden = config.readBoolEntry( "HideScrollBar", m_scrollishidden );
4673 m_hidebars = config.readBoolEntry( "HideToolBar", m_hidebars );
4577 reader->brepalm = config.readBoolEntry( "Repalm", reader->brepalm ); 4674 reader->brepalm = config.readBoolEntry( "Repalm", reader->brepalm );
4675 reader->bunderlineLink = config.readBoolEntry( "UnderlineLink", reader->bunderlineLink );
4578 reader->bkern = config.readBoolEntry( "Kern", reader->bkern ); 4676 reader->bkern = config.readBoolEntry( "Kern", reader->bkern );
4579 reader->bremap = config.readBoolEntry( "Remap", reader->bremap ); 4677 reader->bremap = config.readBoolEntry( "Remap", reader->bremap );
4580 reader->bmakebold = config.readBoolEntry( "MakeBold", reader->bmakebold ); 4678 reader->bmakebold = config.readBoolEntry( "MakeBold", reader->bmakebold );
4581 reader->setContinuous(config.readBoolEntry( "Continuous", reader->m_continuousDocument )); 4679 reader->setContinuous(config.readBoolEntry( "Continuous", reader->m_continuousDocument ));
4680 reader->setDoubleBuffer(config.readBoolEntry("DoubleBuffer", reader->m_doubleBuffered));
4582 m_targetapp = config.readEntry( "TargetApp", m_targetapp ); 4681 m_targetapp = config.readEntry( "TargetApp", m_targetapp );
4583 m_targetmsg = config.readEntry( "TargetMsg", m_targetmsg ); 4682 m_targetmsg = config.readEntry( "TargetMsg", m_targetmsg );
4584#ifdef _SCROLLPIPE 4683#ifdef _SCROLLPIPE
4585 reader->m_pipetarget = config.readEntry( "PipeTarget", reader->m_pipetarget ); 4684 reader->m_pipetarget = config.readEntry( "PipeTarget", reader->m_pipetarget );
4586 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); 4685 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
4587#endif 4686#endif
4588 m_twoTouch = config.readBoolEntry( "TwoTouch", m_twoTouch); 4687 m_twoTouch = config.readBoolEntry( "TwoTouch", m_twoTouch);
4589 m_doAnnotation = config.readBoolEntry( "Annotation", m_doAnnotation); 4688 m_doAnnotation = config.readBoolEntry( "Annotation", m_doAnnotation);
4590 m_doDictionary = config.readBoolEntry( "Dictionary", m_doDictionary); 4689 m_doDictionary = config.readBoolEntry( "Dictionary", m_doDictionary);
4591 m_doClipboard = config.readBoolEntry( "Clipboard", m_doClipboard); 4690 m_doClipboard = config.readBoolEntry( "Clipboard", m_doClipboard);
4691 m_doOutput = config.readBoolEntry( "OutputTgt", m_doOutput);
4592#ifdef USEQPE 4692#ifdef USEQPE
4593 m_grabkeyboard = config.readBoolEntry( "GrabKeyboard", m_grabkeyboard); 4693 m_grabkeyboard = config.readBoolEntry( "GrabKeyboard", m_grabkeyboard);
4594#endif 4694#endif
4595 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", m_propogatefontchange); 4695 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", m_propogatefontchange);
4596 reader->setBaseSize(config.readNumEntry( "Basesize", reader->getBaseSize() )); 4696 reader->setBaseSize(config.readNumEntry( "Basesize", reader->getBaseSize() ));
4597 reader->setTwoTouch(m_twoTouch); 4697 reader->setTwoTouch(m_twoTouch);
4698
4699 reader->m_outputName = config.readEntry( "OutputCodec", reader->m_outputName);
4598 4700
4599 m_touch_action->setOn(m_twoTouch); 4701 m_touch_action->setOn(m_twoTouch);
4600 m_setmono_action->setOn(reader->m_bMonoSpaced); 4702 m_setmono_action->setOn(reader->m_bMonoSpaced);
4601 setfontHelper(reader->m_fontname); 4703 setfontHelper(reader->m_fontname);
4602 if (full) 4704 if (full)
4603 { 4705 {
4604 addtoolbars(&config); 4706 addtoolbars(&config);
4605 } 4707 }
4606 reader->setfilter(reader->getfilter()); 4708 reader->setfilter(reader->getfilter());
4607 reader->refresh(); 4709 reader->refresh();
4608 return true; 4710 return true;
4609} 4711}
4610 4712
4611bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs) 4713bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
4612{ 4714{
4613 bkmkselector->clear(); 4715 bkmkselector->clear();
@@ -4624,60 +4726,58 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
4624 } 4726 }
4625 if ( !d.cd(tgtdir) ) { // "/tmp" 4727 if ( !d.cd(tgtdir) ) { // "/tmp"
4626 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir ); 4728 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir );
4627 d = QDir::home(); 4729 d = QDir::home();
4628 d.mkdir(tgtdir); 4730 d.mkdir(tgtdir);
4629 d.cd(tgtdir); 4731 d.cd(tgtdir);
4630 } 4732 }
4631 d.setFilter( ((usedirs) ? QDir::Dirs : QDir::Files) | QDir::NoSymLinks ); 4733 d.setFilter( ((usedirs) ? QDir::Dirs : QDir::Files) | QDir::NoSymLinks );
4632// d.setSorting( QDir::Size | QDir::Reversed ); 4734// d.setSorting( QDir::Size | QDir::Reversed );
4633 4735
4634 const QFileInfoList *list = d.entryInfoList(); 4736 const QFileInfoList *list = d.entryInfoList();
4635 QFileInfoListIterator it( *list ); // create list iterator 4737 QFileInfoListIterator it( *list ); // create list iterator
4636 QFileInfo *fi; // pointer for traversing 4738 QFileInfo *fi; // pointer for traversing
4637 4739
4638 while ( (fi=it.current()) ) { // for each file... 4740 while ( (fi=it.current()) ) { // for each file...
4639 4741
4640 bkmkselector->insertItem(fi->fileName()); 4742 bkmkselector->insertItem(fi->fileName(), cnt++);
4641 cnt++;
4642 4743
4643 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 4744 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
4644 ++it; // goto next list element 4745 ++it; // goto next list element
4645 } 4746 }
4646 4747
4647#else /* USEQPE */ 4748#else /* USEQPE */
4648 int cnt = 0; 4749 int cnt = 0;
4649 DIR *d; 4750 DIR *d;
4650 char* finaldir; 4751 char* finaldir;
4651 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1]; 4752 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1];
4652 strcpy(finaldir, APPDIR); 4753 strcpy(finaldir, APPDIR);
4653 strcat(finaldir, "/"); 4754 strcat(finaldir, "/");
4654 strcat(finaldir, tgtdir); 4755 strcat(finaldir, tgtdir);
4655 d = opendir((const char *)Global::applicationFileName(finaldir,"")); 4756 d = opendir((const char *)Global::applicationFileName(finaldir,""));
4656 4757
4657 while(1) 4758 while(1)
4658 { 4759 {
4659 struct dirent* de; 4760 struct dirent* de;
4660 struct stat buf; 4761 struct stat buf;
4661 de = readdir(d); 4762 de = readdir(d);
4662 if (de == NULL) break; 4763 if (de == NULL) break;
4663 4764
4664 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && ((usedirs && S_ISDIR(buf.st_mode)) || (!usedirs && S_ISREG(buf.st_mode)))) 4765 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && ((usedirs && S_ISDIR(buf.st_mode)) || (!usedirs && S_ISREG(buf.st_mode))))
4665 { 4766 {
4666 bkmkselector->insertItem(de->d_name); 4767 bkmkselector->insertItem(de->d_name, cnt++);
4667 cnt++;
4668 } 4768 }
4669 } 4769 }
4670 delete [] finaldir; 4770 delete [] finaldir;
4671 closedir(d); 4771 closedir(d);
4672#endif 4772#endif
4673 return (cnt > 0); 4773 return (cnt > 0);
4674} 4774}
4675 4775
4676void QTReaderApp::LoadTheme() 4776void QTReaderApp::LoadTheme()
4677{ 4777{
4678 if (PopulateConfig("Themes", true)) 4778 if (PopulateConfig("Themes", true))
4679 { 4779 {
4680 editorStack->raiseWidget( bkmkselector ); 4780 editorStack->raiseWidget( bkmkselector );
4681 hidetoolbars(); 4781 hidetoolbars();
4682 m_nBkmkAction = cLdTheme; 4782 m_nBkmkAction = cLdTheme;
4683 } 4783 }
@@ -4722,32 +4822,34 @@ void QTReaderApp::ExportLinks()
4722} 4822}
4723 4823
4724void QTReaderApp::OnURLSelected(const QString& href, const size_t tgt) 4824void QTReaderApp::OnURLSelected(const QString& href, const size_t tgt)
4725{ 4825{
4726#ifndef USEQPE 4826#ifndef USEQPE
4727 qDebug("URL:%s", (const char*)href); 4827 qDebug("URL:%s", (const char*)href);
4728 int col = href.find(':'); 4828 int col = href.find(':');
4729 if (col > 0) 4829 if (col > 0)
4730 { 4830 {
4731 QString type = href.left(col); 4831 QString type = href.left(col);
4732 qDebug("Type:%s", (const char*)type); 4832 qDebug("Type:%s", (const char*)type);
4733 } 4833 }
4734 else 4834 else
4735 { 4835 {
4736 qDebug("No type"); 4836 qDebug("No type");
4737 } 4837 }
4838 QString msg = "External URL\n" + href;
4839 QMessageBox::information(this, PROGNAME, msg);
4738#else 4840#else
4739 if (href.isEmpty()) 4841 if (href.isEmpty())
4740 { 4842 {
4741 QMessageBox::information(this, PROGNAME, "No URL information supplied"); 4843 QMessageBox::information(this, PROGNAME, "No URL information supplied");
4742 } 4844 }
4743 else 4845 else
4744 { 4846 {
4745 CURLDialog* urld = new CURLDialog(href, false, this); 4847 CURLDialog* urld = new CURLDialog(href, false, this);
4746 urld->clipboard(m_url_clipboard); 4848 urld->clipboard(m_url_clipboard);
4747 urld->localfile(m_url_localfile); 4849 urld->localfile(m_url_localfile);
4748 urld->globalfile(m_url_globalfile); 4850 urld->globalfile(m_url_globalfile);
4749 if (urld->exec()) 4851 if (urld->exec())
4750 { 4852 {
4751 m_url_clipboard = urld->clipboard(); 4853 m_url_clipboard = urld->clipboard();
4752 m_url_localfile = urld->localfile(); 4854 m_url_localfile = urld->localfile();
4753 m_url_globalfile = urld->globalfile(); 4855 m_url_globalfile = urld->globalfile();
@@ -4888,49 +4990,53 @@ void QTReaderApp::setscrollbarcolour()
4888 /* 4990 /*
4889 QColor xc = getcolour(m_scrollcolor); 4991 QColor xc = getcolour(m_scrollcolor);
4890 int r,g,b; 4992 int r,g,b;
4891 xc.rgb(&r,&g,&b); 4993 xc.rgb(&r,&g,&b);
4892 reader->m_scrollcolor.setRgb(255^r, 255^g, 255^b); 4994 reader->m_scrollcolor.setRgb(255^r, 255^g, 255^b);
4893 */ 4995 */
4894 reader->m_scrollbarcolor = getcolour(m_scrollbarcolor); 4996 reader->m_scrollbarcolor = getcolour(m_scrollbarcolor);
4895} 4997}
4896 4998
4897void QTReaderApp::forceopen(const QString& filename) 4999void QTReaderApp::forceopen(const QString& filename)
4898{ 5000{
4899 /* 5001 /*
4900 QFileInfo fi(reader->m_lastfile); 5002 QFileInfo fi(reader->m_lastfile);
4901 fi = QFileInfo(filename); 5003 fi = QFileInfo(filename);
4902 QString flnm = fi.absFilePath(); 5004 QString flnm = fi.absFilePath();
4903 */ 5005 */
4904 if (!filename.isEmpty()) 5006 if (!filename.isEmpty() && QFileInfo(filename).exists())
4905 { 5007 {
4906 updatefileinfo(); 5008 updatefileinfo();
4907 if (pBkmklist != NULL) 5009 if (pBkmklist != NULL)
4908 { 5010 {
4909 if (m_fBkmksChanged) 5011 if (m_fBkmksChanged)
4910 { 5012 {
4911 savebkmks(); 5013 savebkmks();
4912 } 5014 }
4913 delete pBkmklist; 5015 delete pBkmklist;
4914 pBkmklist = NULL; 5016 pBkmklist = NULL;
4915 m_fBkmksChanged = false; 5017 m_fBkmksChanged = false;
4916 } 5018 }
4917 reader->disableAutoscroll(); 5019 reader->disableAutoscroll();
4918 openFile(filename); 5020 openFile(filename);
4919 reader->setFocus(); 5021 reader->setFocus();
4920 } 5022 }
5023 else
5024 {
5025 OnURLSelected(filename, 0);
5026 }
4921} 5027}
4922 5028
4923void QTReaderApp::actionscroll(int v) 5029void QTReaderApp::actionscroll(int v)
4924{ 5030{
4925 if (reader->m_rotated) 5031 if (reader->m_rotated)
4926 { 5032 {
4927 reader->dopageup(reader->buffdoc.startSection()+reader->buffdoc.endSection()-v); 5033 reader->dopageup(reader->buffdoc.startSection()+reader->buffdoc.endSection()-v);
4928 } 5034 }
4929 else 5035 else
4930 { 5036 {
4931 /* 5037 /*
4932 if (reader->pagelocate() < v) 5038 if (reader->pagelocate() < v)
4933 { 5039 {
4934 while (reader->pagelocate() < v) reader->lineDown(); 5040 while (reader->pagelocate() < v) reader->lineDown();
4935 } 5041 }
4936 else 5042 else