summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/QTReaderApp.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/QTReaderApp.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp1902
1 files changed, 1323 insertions, 579 deletions
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp
index f18cb59..63d1fb0 100644
--- a/noncore/apps/opie-reader/QTReaderApp.cpp
+++ b/noncore/apps/opie-reader/QTReaderApp.cpp
@@ -17,48 +17,19 @@
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20
21#include "useqpe.h" 20#include "useqpe.h"
22#include "QTReader.h"
23#include "GraphicWin.h"
24#include "Bkmks.h"
25#include "cbkmkselector.h"
26#include "infowin.h"
27#include "ToolbarPrefs.h"
28#include "Prefs.h"
29#include "CAnnoEdit.h"
30#include "QFloatBar.h"
31#include "FixedFont.h"
32#include "URLDialog.h"
33#include "QTReaderApp.h"
34#include "CDrawBuffer.h"
35#include "Filedata.h"
36#include "opie.h"
37#include "names.h"
38#include "CEncoding_tables.h"
39#include "CloseDialog.h"
40
41/* OPIE */
42#include <opie2/odebug.h>
43#ifdef USEQPE
44#include <qpe/menubutton.h>
45#include <qpe/fontdatabase.h>
46#include <qpe/global.h>
47#include <qpe/applnk.h>
48#include <qpe/config.h>
49#include <qpe/qcopenvelope_qws.h>
50#endif
51
52/* QT */
53#ifdef USEQPE
54#include <qmenubar.h>
55#include <qtoolbar.h>
56#endif
57#include <qregexp.h> 21#include <qregexp.h>
58#include <qclipboard.h> 22#include <qclipboard.h>
59#include <qwidgetstack.h> 23#include <qwidgetstack.h>
24#ifdef USEQPE
25#include <qpe/qpemenubar.h>
26#include <qpe/qpetoolbar.h>
27#endif
60#include <qmenubar.h> 28#include <qmenubar.h>
61#include <qtoolbar.h> 29#include <qtoolbar.h>
30#ifdef USEQPE
31#include <qpe/menubutton.h>
32#endif
62#include <qcombobox.h> 33#include <qcombobox.h>
63#include <qpopupmenu.h> 34#include <qpopupmenu.h>
64#include <qaction.h> 35#include <qaction.h>
@@ -67,32 +38,75 @@
67#include <qtoolbutton.h> 38#include <qtoolbutton.h>
68#include <qspinbox.h> 39#include <qspinbox.h>
69#include <qobjectlist.h> 40#include <qobjectlist.h>
41#include <qstatusbar.h>
42#ifdef USEQPE
43#include <qpe/global.h>
44#include <qpe/applnk.h>
45#endif
70#include <qfileinfo.h> 46#include <qfileinfo.h>
47#include <stdlib.h> //getenv
71#include <qprogressbar.h> 48#include <qprogressbar.h>
49#ifdef USEQPE
50#include <qpe/config.h>
51#endif
72#include <qbuttongroup.h> 52#include <qbuttongroup.h>
73#include <qradiobutton.h> 53#include <qradiobutton.h>
74 54#ifdef USEQPE
75/* STD */ 55#include <qpe/qcopenvelope_qws.h>
76#include <stdlib.h> //getenv 56#endif
77 57#include "QTReader.h"
78 58#include "GraphicWin.h"
59#include "Bkmks.h"
60#include "cbkmkselector.h"
61#include "infowin.h"
62#include "ToolbarPrefs.h"
63#include "Prefs.h"
64#include "CAnnoEdit.h"
65#include "QFloatBar.h"
66#include "FixedFont.h"
67#include "URLDialog.h"
68#include "util.h"
69#include <qfontdatabase.h>
70#include "opie.h"
79#ifdef USEQPE 71#ifdef USEQPE
80#include <qpe/resource.h> 72#include <qpe/resource.h>
81#include <qpe/qpeapplication.h> 73#ifdef OPIE
74//#include <qpe/applnk.h>
75#include <opie2/ofiledialog.h>
76using namespace Opie::Ui;
77#else
82#include "fileBrowser.h" 78#include "fileBrowser.h"
79#endif
83#else 80#else
84#include "qfiledialog.h" 81#include "qfiledialog.h"
85#endif 82#endif
86 83
84#include "QTReaderApp.h"
85#include "CDrawBuffer.h"
86#include "Filedata.h"
87#include "useqpe.h"
88#include "names.h"
89#include "CEncoding_tables.h"
90#include "CloseDialog.h"
91
92#include "ButtonPrefs.h"
93
87bool CheckVersion(int&, int&, char&); 94bool CheckVersion(int&, int&, char&);
88 95
89#ifdef _WINDOWS 96#ifdef _WINDOWS
90#define PICDIR "c:\\uqtreader\\pics\\" 97#define PICDIR "c:\\uqtreader\\pics\\"
91#else 98#else
92#ifdef USEQPE 99#ifdef USEQPE
100#define USEMSGS
93#define PICDIR "opie-reader/" 101#define PICDIR "opie-reader/"
94#else 102#else
95#define PICDIR "/home/tim/uqtreader/pics/" 103//#define PICDIR "/home/tim/uqtreader/pics/"
104QString picdir()
105{
106 QString hd(getenv("READERDIR"));
107 return hd + "/pics";
108}
109#define PICDIR picdir()
96#endif 110#endif
97#endif 111#endif
98 112
@@ -104,7 +118,8 @@ void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); }
104#define geticon(iconname) Resource::loadPixmap( iconname ) 118#define geticon(iconname) Resource::loadPixmap( iconname )
105#define getmyicon(iconname) Resource::loadPixmap( PICDIR iconname ) 119#define getmyicon(iconname) Resource::loadPixmap( PICDIR iconname )
106#else 120#else
107#define geticon(iconname) QPixmap(PICDIR iconname ".png") 121//#define geticon(iconname) QPixmap(PICDIR iconname ".png")
122#define geticon(iconname) QPixmap(PICDIR +"/"+iconname+".png")
108#define getmyicon(iconname) geticon(iconname) 123#define getmyicon(iconname) geticon(iconname)
109//#define geticon(iconname) QIconSet( QPixmap(PICDIR iconname) ) 124//#define geticon(iconname) QIconSet( QPixmap(PICDIR iconname) )
110#endif 125#endif
@@ -126,7 +141,7 @@ void QTReaderApp::listBkmkFiles()
126 141
127 QDir d = QDir::home(); // "/" 142 QDir d = QDir::home(); // "/"
128 if ( !d.cd(APPDIR) ) { // "/tmp" 143 if ( !d.cd(APPDIR) ) { // "/tmp"
129 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; 144 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
130 d = QDir::home(); 145 d = QDir::home();
131 d.mkdir(APPDIR); 146 d.mkdir(APPDIR);
132 d.cd(APPDIR); 147 d.cd(APPDIR);
@@ -147,7 +162,7 @@ void QTReaderApp::listBkmkFiles()
147 bkmkselector->insertItem(fi->fileName()); 162 bkmkselector->insertItem(fi->fileName());
148 cnt++; 163 cnt++;
149 164
150 //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl; 165 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
151 ++it; // goto next list element 166 ++it; // goto next list element
152 } 167 }
153 168
@@ -175,6 +190,8 @@ void QTReaderApp::listBkmkFiles()
175 if (cnt > 0) 190 if (cnt > 0)
176 { 191 {
177//tjw menu->hide(); 192//tjw menu->hide();
193
194
178 editorStack->raiseWidget( bkmkselector ); 195 editorStack->raiseWidget( bkmkselector );
179 hidetoolbars(); 196 hidetoolbars();
180 m_nBkmkAction = cRmBkmkFile; 197 m_nBkmkAction = cRmBkmkFile;
@@ -185,7 +202,15 @@ void QTReaderApp::listBkmkFiles()
185 202
186void QTReaderApp::hidetoolbars() 203void QTReaderApp::hidetoolbars()
187{ 204{
205 if (m_scrollbar != NULL) m_scrollbar->hide();
206 if (m_prog != NULL) m_prog->hide();
207
208#ifdef USEQPE
188 menubar->hide(); 209 menubar->hide();
210#endif
211
212 if (m_scrollbar != NULL) m_scrollbar->hide();
213
189 if (fileBar != NULL) fileBar->hide(); 214 if (fileBar != NULL) fileBar->hide();
190 if (viewBar != NULL) viewBar->hide(); 215 if (viewBar != NULL) viewBar->hide();
191 if (navBar != NULL) navBar->hide(); 216 if (navBar != NULL) navBar->hide();
@@ -208,15 +233,44 @@ void QTReaderApp::hidetoolbars()
208} 233}
209 234
210QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) 235QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
211 : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false), 236 : QMainWindow( parent, name, f ), m_dontSave(false),
212 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL) 237 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL), m_scrollbar(NULL), m_localscroll(2), m_hidebars(false), m_kmapchanged(false)
213{ 238{
239 {
240 setKeyCompression ( true );
241#ifndef USEQPE
242 QDir d = QDir::home(); // "/"
243 d.cd(APPDIR);
244 QFileInfo fi(d, ".keymap");
245 FILE* f = fopen((const char *)fi.absFilePath(), "r");
246#else /* USEQPE */
247 FILE* f = fopen((const char *)Global::applicationFileName(APPDIR,".keymap"), "r");
248#endif /* USEQPE */
249 if (f != NULL)
250 {
251 uint cnt;
252 if ((fread(&cnt, sizeof(cnt), 1, f) != 0) && (cnt == KEYMAPVERSION))
253 {
254 if (fread(&cnt, sizeof(cnt), 1, f) == 0) cnt = 0;
255 for (uint i = 0; i != cnt; i++)
256 {
257 orKey key;
258 int data;
259 fread(&key, sizeof(key), 1, f);
260 fread(&data, sizeof(data), 1, f);
261 kmap[key] = data;
262 }
263 }
264 fclose(f);
265 }
266 }
267
214 m_url_clipboard = false; 268 m_url_clipboard = false;
215 m_url_localfile = false; 269 m_url_localfile = false;
216 m_url_globalfile = false; 270 m_url_globalfile = false;
217 ftime(&m_lastkeytime); 271 ftime(&m_lastkeytime);
218//// odebug << "Application directory = " << (const tchar *)QPEApplication::documentDir() << "" << oendl; 272//// qDebug("Application directory = %s", (const tchar *)QPEApplication::documentDir());
219//// odebug << "Application directory = " << (const tchar *)Global::applicationFileName("uqtreader" << "" << oendl; 273//// qDebug("Application directory = %s", (const tchar *)Global::applicationFileName("uqtreader","bkmks.xml"));
220 274
221 m_bcloseDisabled = true; 275 m_bcloseDisabled = true;
222 m_disableesckey = false; 276 m_disableesckey = false;
@@ -244,37 +298,38 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
244 m_rot = 270; 298 m_rot = 270;
245 } 299 }
246 300
247// odebug << "Initial Rotation(" << m_rot << "):" << rot << "" << oendl; 301// qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot);
248*/ 302*/
249 m_autogenstr = "^ *[A-Z].*[a-z] *$"; 303 m_autogenstr = "^ *[A-Z].*[a-z] *$";
250 304
251#ifdef USEQPE 305#ifdef USEQPE
252 setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); 306 setIcon( Resource::loadPixmap( PICDIR "uqtreader") );
253#else 307#else
254 setIcon( QPixmap (PICDIR "uqtreader.png") ); 308 setIcon( QPixmap (PICDIR + "/uqtreader.png") );
255#endif /* USEQPE */ 309#endif /* USEQPE */
256 310
257// QToolBar *bar = new QToolBar( this ); 311// QPEToolBar *bar = new QPEToolBar( this );
258// menubar = new QToolBar( this ); 312// menubar = new QPEToolBar( this );
259#ifdef USEQPE 313#ifdef USEQPE
260 Config config( APPDIR ); 314 Config config( APPDIR );
261#else 315#else
262 QDir d = QDir::home(); // "/" 316 QDir d = QDir::home(); // "/"
263 if ( !d.cd(APPDIR) ) { // "/tmp" 317 if ( !d.cd(APPDIR) ) { // "/tmp"
264 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; 318 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
265 d = QDir::home(); 319 d = QDir::home();
266 d.mkdir(APPDIR); 320 d.mkdir(APPDIR);
267 d.cd(APPDIR); 321 d.cd(APPDIR);
268 } 322 }
269 QFileInfo fi(d, INIFILE); 323 QFileInfo fi(d, INIFILE);
270// odebug << "Path:" << fi.absFilePath() << "" << oendl; 324// qDebug("Path:%s", (const char*)fi.absFilePath());
271 Config config(fi.absFilePath()); 325 Config config(fi.absFilePath());
272#endif 326#endif
273 config.setGroup("Toolbar"); 327 config.setGroup("Toolbar");
274 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 328 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false);
275 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 329 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1);
276 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 330 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2);
277 menubar = new QToolBar("Menus", this, m_tbposition); 331 m_qtscroll = config.readNumEntry("QTScrollBar", false);
332 m_localscroll = config.readNumEntry("LocalScrollBar", false);
278 333
279// fileBar = new QToolBar("File", this); 334// fileBar = new QToolBar("File", this);
280// QToolBar* viewBar = new QToolBar("File", this); 335// QToolBar* viewBar = new QToolBar("File", this);
@@ -282,17 +337,18 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
282// QToolBar* markBar = new QToolBar("File", this); 337// QToolBar* markBar = new QToolBar("File", this);
283 338
284#ifdef USEQPE 339#ifdef USEQPE
285 mb = new QMenuBar( menubar ); 340 menubar = new QToolBar("Menus", this, m_tbposition);
341 mb = new QPEMenuBar( menubar );
286#else 342#else
287 mb = new QMenuBar( menubar ); 343 mb = new QMenuBar( this );
288#endif 344#endif
289 345
290//#ifdef USEQPE 346#ifdef USEQPE
291 QPopupMenu* tmp = new QPopupMenu(mb); 347 QPopupMenu* tmp = new QPopupMenu(mb);
292 mb->insertItem( geticon( "AppsIcon" ), tmp ); 348 mb->insertItem( geticon( "AppsIcon" ), tmp );
293//#else 349#else
294// QMenuBar* tmp = mb; 350 QMenuBar* tmp = mb;
295//#endif 351#endif
296 352
297 QPopupMenu *file = new QPopupMenu( mb ); 353 QPopupMenu *file = new QPopupMenu( mb );
298 tmp->insertItem( tr( "File" ), file ); 354 tmp->insertItem( tr( "File" ), file );
@@ -320,14 +376,26 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
320 a->addTo( bar ); 376 a->addTo( bar );
321 a->addTo( file ); 377 a->addTo( file );
322 */ 378 */
379 QWidget* widge = new QWidget(this);
380 setCentralWidget( widge );
381 QVBoxLayout* vlayout = new QVBoxLayout(widge);
382 m_layout = new QBoxLayout(QBoxLayout::LeftToRight);
383 m_prog = new QLabel(widge);
384 vlayout->addLayout(m_layout, 1);
385 vlayout->addWidget(m_prog);
323 386
324 editorStack = new QWidgetStack( this ); 387 editorStack = new QWidgetStack( widge );
325 setCentralWidget( editorStack ); 388 // setCentralWidget( editorStack );
326 389
327 searchVisible = FALSE; 390 searchVisible = FALSE;
328 regVisible = FALSE; 391 regVisible = FALSE;
329 m_fontVisible = false; 392 m_fontVisible = false;
330 393
394 m_buttonprefs = new CButtonPrefs(&kmap, this);
395 editorStack->addWidget(m_buttonprefs, get_unique_id());
396 connect( m_buttonprefs, SIGNAL( Closed() ), this, SLOT( infoClose() ) );
397
398
331 m_annoWin = new CAnnoEdit(editorStack); 399 m_annoWin = new CAnnoEdit(editorStack);
332 editorStack->addWidget(m_annoWin, get_unique_id()); 400 editorStack->addWidget(m_annoWin, get_unique_id());
333 connect( m_annoWin, SIGNAL( finished(const QString&,const QString&) ), this, SLOT( addAnno(const QString&,const QString&) ) ); 401 connect( m_annoWin, SIGNAL( finished(const QString&,const QString&) ), this, SLOT( addAnno(const QString&,const QString&) ) );
@@ -357,28 +425,35 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
357 // don't need the close visible, it is redundant... 425 // don't need the close visible, it is redundant...
358 importSelector->setCloseVisible( FALSE ); 426 importSelector->setCloseVisible( FALSE );
359*/ 427*/
360// odebug << "Reading file list" << oendl; 428// qDebug("Reading file list");
361 readfilelist(); 429 readfilelist();
362 430
363 reader = new QTReader( editorStack ); 431 reader = new QTReader( editorStack );
364 432
365 reader->bDoUpdates = false; 433 reader->setDoUpdates(false);
366 434
367#ifdef USEQPE 435#ifdef USEQPE
368 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); 436 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold);
369#endif 437#endif
370 438
371// odebug << "Reading config" << oendl; 439// qDebug("Reading config");
372// Config config( APPDIR ); 440// Config config( APPDIR );
373 config.setGroup( "View" ); 441 config.setGroup( "View" );
374 m_debounce = config.readNumEntry("Debounce", 0); 442 m_debounce = config.readNumEntry("Debounce", 0);
443 m_buttonprefs->Debounce(m_debounce);
375#ifdef USEQPE 444#ifdef USEQPE
376 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 445 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
377#else 446#else
378 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); 447 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true);
379#endif 448#endif
380 reader->bstripcr = config.readBoolEntry( "StripCr", true ); 449 reader->setStripCR(config.readBoolEntry( "StripCr", true ));
381 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 450 reader->bfulljust = config.readBoolEntry( "FullJust", false );
451 /*
452 bool btmp = config.readBoolEntry("Negative", false);
453 if (btmp) reader->setNegative();
454 */
455 reader->bInverse = config.readBoolEntry("Inverse", false);
456 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", false ));
382 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 457 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 ));
383 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 458 reader->setlead(config.readNumEntry( "ExtraLead", 0 ));
384 reader->btextfmt = config.readBoolEntry( "TextFmt", false ); 459 reader->btextfmt = config.readBoolEntry( "TextFmt", false );
@@ -391,23 +466,46 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
391 reader->bonespace = config.readBoolEntry( "OneSpace", false ); 466 reader->bonespace = config.readBoolEntry( "OneSpace", false );
392 reader->bunindent = config.readBoolEntry( "Unindent", false ); 467 reader->bunindent = config.readBoolEntry( "Unindent", false );
393 reader->brepara = config.readBoolEntry( "Repara", false ); 468 reader->brepara = config.readBoolEntry( "Repara", false );
469 reader->m_reparastring = config.readEntry( "ReparaString", "\\n{[\\n \\t]}");
470 m_bgtype = (bground)config.readNumEntry( "BackgroundType" , 0 );
471 m_themename = config.readEntry("Theme", QString::null );
394 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); 472 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false );
395 reader->bindenter = config.readNumEntry( "Indent", 0 ); 473 reader->bindenter = config.readNumEntry( "Indent", 0 );
396 reader->m_textsize = config.readNumEntry( "FontSize", 12 ); 474 reader->m_textsize = config.readNumEntry( "FontSize", 12 );
397 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); 475 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184);
476 reader->m_scrollstep = config.readNumEntry( "ScrollStep", 1);
477
398 reader->m_lastfile = config.readEntry( "LastFile", QString::null ); 478 reader->m_lastfile = config.readEntry( "LastFile", QString::null );
399 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); 479 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 );
400 reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); 480 reader->m_bpagemode = config.readBoolEntry( "PageMode", true );
401 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); 481 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false);
482 reader->m_rotated = config.readBoolEntry( "IsRotated", false );
483 reader->m_scrolltype = config.readNumEntry( "ScrollType", 0 );
484 m_statusstring = config.readEntry("StatusContent", "%P%% Doc:%d/%D %p%% %z%%");
485 m_statusishidden = config.readBoolEntry("StatusHidden", false);
486 m_background = config.readNumEntry( "Background", 0 );
487 reader->setBackground(getcolour(m_background));
488 m_foreground = config.readNumEntry( "Foreground", 1 );
489 reader->setForeground(getcolour(m_foreground));
490 m_scrollcolor = config.readNumEntry( "ScrollColour", 5 );
491 setscrollcolour();
492 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", 5 );
493 setscrollbarcolour();
494 reader->hyphenate = config.readBoolEntry( "Hyphenate", false );
402 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); 495 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false);
403 reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); 496 reader->m_fontname = config.readEntry( "Fontname", "helvetica" );
404 reader->m_encd = config.readNumEntry( "Encoding", 0 ); 497 reader->m_encd = config.readNumEntry( "Encoding", 0 );
405 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); 498 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 );
406 reader->m_overlap = config.readNumEntry( "Overlap", 0 ); 499 reader->m_overlap = config.readNumEntry( "Overlap", 0 );
407 reader->m_border = config.readNumEntry( "Margin", 6 ); 500 reader->m_abstopmargin = config.readNumEntry( "Top Margin", 100 );
408#ifdef REPALM 501 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", 100 );
409 reader->brepalm = config.readBoolEntry( "Repalm", true ); 502 reader->m_absleft_border = config.readNumEntry( "Left Margin", 100 );
410#endif 503 reader->m_absright_border = config.readNumEntry( "Right Margin", 100 );
504
505 m_scrollishidden = config.readBoolEntry( "HideScrollBar", false );
506
507 reader->brepalm = config.readBoolEntry( "Repalm", false );
508 reader->bkern = config.readBoolEntry( "Kern", false );
411 reader->bremap = config.readBoolEntry( "Remap", true ); 509 reader->bremap = config.readBoolEntry( "Remap", true );
412 reader->bmakebold = config.readBoolEntry( "MakeBold", false ); 510 reader->bmakebold = config.readBoolEntry( "MakeBold", false );
413 reader->setContinuous(config.readBoolEntry( "Continuous", true )); 511 reader->setContinuous(config.readBoolEntry( "Continuous", true ));
@@ -421,6 +519,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
421 m_doAnnotation = config.readBoolEntry( "Annotation", false); 519 m_doAnnotation = config.readBoolEntry( "Annotation", false);
422 m_doDictionary = config.readBoolEntry( "Dictionary", false); 520 m_doDictionary = config.readBoolEntry( "Dictionary", false);
423 m_doClipboard = config.readBoolEntry( "Clipboard", false); 521 m_doClipboard = config.readBoolEntry( "Clipboard", false);
522 /*
424 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); 523 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll);
425 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); 524 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone);
426 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); 525 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen);
@@ -433,10 +532,11 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
433 m_rightScroll = config.readBoolEntry("RightScroll", false); 532 m_rightScroll = config.readBoolEntry("RightScroll", false);
434 m_upScroll = config.readBoolEntry("UpScroll", true); 533 m_upScroll = config.readBoolEntry("UpScroll", true);
435 m_downScroll = config.readBoolEntry("DownScroll", true); 534 m_downScroll = config.readBoolEntry("DownScroll", true);
436 535 */
437 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); 536 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false);
438 reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); 537 reader->setBaseSize(config.readNumEntry( "Basesize", 10 ));
439 538 reader->setHyphenThreshold(config.readNumEntry( "HyphenThreshold", 50 ));
539 // reader->buffdoc.setCustomHyphen(config.readBoolEntry( "CustomHyphen", false ));
440#ifndef USEQPE 540#ifndef USEQPE
441 config.setGroup( "Geometry" ); 541 config.setGroup( "Geometry" );
442 setGeometry(0,0, 542 setGeometry(0,0,
@@ -445,6 +545,8 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
445 move( 545 move(
446 config.readNumEntry( "x", 20 ), 546 config.readNumEntry( "x", 20 ),
447 config.readNumEntry( "y", 20 )); 547 config.readNumEntry( "y", 20 ));
548#else
549 m_grabkeyboard = config.readBoolEntry( "GrabKeyboard", false);
448#endif 550#endif
449 551
450 552
@@ -454,8 +556,12 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
454 connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) ); 556 connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) );
455 557
456 connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) ); 558 connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) );
457 connect( reader, SIGNAL( OnWordSelected(const QString&,size_t,const QString&) ), this, SLOT( OnWordSelected(const QString&,size_t,const QString&) ) ); 559 connect( reader, SIGNAL( OnWordSelected(const QString&, size_t, size_t, const QString&) ), this, SLOT( OnWordSelected(const QString&, size_t, size_t, const QString&) ) );
458 connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) ); 560 connect( reader, SIGNAL( OnURLSelected(const QString&, const size_t) ), this, SLOT( OnURLSelected(const QString&, const size_t) ) );
561 connect( reader, SIGNAL( NewFileRequest(const QString&) ), this, SLOT( forceopen(const QString&) ) );
562 connect( reader, SIGNAL( HandleKeyRequest(QKeyEvent*) ), this, SLOT( handlekey(QKeyEvent*) ) );
563 connect( reader, SIGNAL( SetScrollState(bool) ), this, SLOT( setScrollState(bool) ) );
564 connect( reader, SIGNAL(RefreshBitmap()), this, SLOT(setBackgroundBitmap()));
459 editorStack->addWidget( reader, get_unique_id() ); 565 editorStack->addWidget( reader, get_unique_id() );
460 566
461 m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); 567 m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL);
@@ -479,6 +585,25 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
479 connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) ); 585 connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) );
480 m_toolbarprefs_action->addTo( settings ); 586 m_toolbarprefs_action->addTo( settings );
481 587
588 m_buttonprefs_action = new QAction( tr( "Buttons" ), QString::null, 0, this, NULL);
589 connect( m_buttonprefs_action, SIGNAL( activated() ), this, SLOT( showbuttonprefs() ) );
590 m_buttonprefs_action->addTo( settings );
591
592 m_loadtheme_action = new QAction( tr( "Load Theme" ), QString::null, 0, this, NULL);
593 connect( m_loadtheme_action, SIGNAL( activated() ), this, SLOT( LoadTheme() ) );
594 m_loadtheme_action->addTo( settings );
595
596 m_repara_action = new QAction( tr( "EOP Marker" ), QString::null, 0, this, NULL);
597 connect( m_repara_action, SIGNAL( activated() ), this, SLOT( reparastring() ) );
598 m_repara_action->addTo(settings);
599
600#ifdef USEQPE
601 m_grab_action = new QAction( tr( "Grab Buttons" ), QString::null, 0, this, NULL, true );
602 connect( m_grab_action, SIGNAL( toggled(bool) ), this, SLOT( setgrab(bool) ) );
603 m_grab_action->setOn(m_grabkeyboard);
604 m_grab_action->addTo( settings );
605#endif
606
482 m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); 607 m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 );
483 connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); 608 connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
484 m_open_action->addTo( file ); 609 m_open_action->addTo( file );
@@ -616,6 +741,16 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
616 m_actFullscreen->setOn(m_fullscreen); 741 m_actFullscreen->setOn(m_fullscreen);
617 m_actFullscreen->addTo( view ); 742 m_actFullscreen->addTo( view );
618 743
744 m_rotate_action = new QAction( tr( "Rotate" ), geticon( "repeat" ), QString::null, 0, this, NULL, true );
745 connect( m_rotate_action, SIGNAL( toggled(bool) ), this, SLOT( setrotated(bool) ) );
746 m_rotate_action->setOn(reader->m_rotated);
747 m_rotate_action->addTo( view );
748
749 m_inverse_action = new QAction( tr( "Invert" ), getmyicon( "invert" ), QString::null, 0, this, NULL, true );
750 connect( m_inverse_action, SIGNAL( toggled(bool) ), this, SLOT( setinverted(bool) ) );
751 m_inverse_action->setOn(reader->bInverse);
752 m_inverse_action->addTo( view );
753
619 view->insertSeparator(); 754 view->insertSeparator();
620 755
621 m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this); 756 m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this);
@@ -770,15 +905,11 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
770 905
771 m_fontBar->setHorizontalStretchable( TRUE ); 906 m_fontBar->setHorizontalStretchable( TRUE );
772 907
773// odebug << "Font selector" << oendl; 908// qDebug("Font selector");
774 m_fontSelector = new QComboBox(false, m_fontBar); 909 m_fontSelector = new QComboBox(false, m_fontBar);
775 m_fontBar->setStretchableWidget( m_fontSelector ); 910 m_fontBar->setStretchableWidget( m_fontSelector );
776 { 911 {
777#ifndef USEQPE
778 QFontDatabase f; 912 QFontDatabase f;
779#else
780 FontDatabase f;
781#endif
782 QStringList flist = f.families(); 913 QStringList flist = f.families();
783 bool realfont = false; 914 bool realfont = false;
784 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) 915 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++)
@@ -802,17 +933,53 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
802 connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), 933 connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ),
803 this, SLOT( msgHandler(const QCString&,const QByteArray&) ) ); 934 this, SLOT( msgHandler(const QCString&,const QByteArray&) ) );
804#endif 935#endif
805// odebug << "Initing" << oendl; 936// qDebug("Initing");
937
938 m_layout->addWidget(editorStack);
939 if (m_qtscroll != 0)
940 {
941 /*
942 m_scrollbar = new QToolBar( "Autogen", this, (m_localscrollbar) ? QMainWindow::Left : QMainWindow::Right, TRUE );
943
944 m_scrollbar->setVerticalStretchable( TRUE );
945 */
946 scrollbar = m_scrollbar = new QScrollBar(QScrollBar::Vertical, widge);
947 m_layout->addWidget(scrollbar);
948 scrollbar->setTracking(false);
949 //connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
950 //m_scrollbar->setStretchableWidget( scrollbar );
951 if (m_scrollishidden)
952 {
953 m_scrollbar->hide();
954 }
955 else
956 {
957 m_scrollbar->show();
958 }
959
960 setrotated(reader->m_rotated);
961 }
962 else
963 {
964 m_scrollbar = NULL;
965 }
966 setBackgroundBitmap();
967 m_inverse_action->setOn(reader->bInverse);
806 reader->init(); 968 reader->init();
807// odebug << "Inited" << oendl; 969
970// qDebug("Inited");
808// m_buttonAction[m_spaceTarget]->setOn(true); 971// m_buttonAction[m_spaceTarget]->setOn(true);
809// odebug << "fonting" << oendl; 972// qDebug("fonting");
810 do_setfont(reader->m_fontname); 973 do_setfont(reader->m_fontname);
974 // qDebug("fonted");
975 QFont progfont(reader->m_fontname, reader->m_fontControl.getsize(0));
976 m_prog->setFont( progfont );
977 if (m_statusishidden) m_prog->hide();
811 if (!reader->m_lastfile.isEmpty()) 978 if (!reader->m_lastfile.isEmpty())
812 { 979 {
813// odebug << "doclnk" << oendl; 980 //qDebug("doclnk");
814// doc = new DocLnk(reader->m_lastfile); 981// doc = new DocLnk(reader->m_lastfile);
815// odebug << "doclnk done" << oendl; 982 //qDebug("doclnk done");
816 if (pOpenlist != NULL) 983 if (pOpenlist != NULL)
817 { 984 {
818 985
@@ -832,33 +999,42 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
832 { 999 {
833 break; 1000 break;
834 } 1001 }
835// odebug << "Item:" << toQString(CFiledata(p->anno()).name()) << "" << oendl; 1002 // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name()));
836 p = NULL; 1003 p = NULL;
837 } 1004 }
838 if (p != NULL) 1005 if (p != NULL)
839 { 1006 {
840// odebug << "openfrombkmk" << oendl;
841 if (!openfrombkmk(p)) 1007 if (!openfrombkmk(p))
1008 {
842 showEditTools(); 1009 showEditTools();
843 } 1010 }
1011 }
844 else 1012 else
845 { 1013 {
846// odebug << "openfile" << oendl;
847 openFile( reader->m_lastfile ); 1014 openFile( reader->m_lastfile );
848 } 1015 }
849 } 1016 }
850 else 1017 else
851 { 1018 {
852// odebug << "Openfile 2" << oendl;
853 if (!reader->m_lastfile.isEmpty()) 1019 if (!reader->m_lastfile.isEmpty())
1020 {
854 openFile( reader->m_lastfile ); 1021 openFile( reader->m_lastfile );
855 } 1022 }
856 } 1023 }
1024 }
857 else 1025 else
858 { 1026 {
859 showEditTools(); 1027 showEditTools();
860 } 1028 }
861// qApp->processEvents(); 1029// qApp->processEvents();
1030 if (m_scrollbar == NULL || m_scrollbar->isHidden())
1031 {
1032 reader->m_scrollpos = m_localscroll;
1033 }
1034 else
1035 {
1036 reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0;
1037 }
862 reader->bDoUpdates = true; 1038 reader->bDoUpdates = true;
863 reader->update(); 1039 reader->update();
864 config.setGroup("Version"); 1040 config.setGroup("Version");
@@ -871,7 +1047,19 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
871 config.writeEntry("BkmkType", bkmktype); 1047 config.writeEntry("BkmkType", bkmktype);
872 config.writeEntry("Minor", (int)minor); 1048 config.writeEntry("Minor", (int)minor);
873 } 1049 }
874// odebug << "finished update" << oendl; 1050// qDebug("finished update");
1051 if (kmap.isEmpty())
1052 {
1053 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.");
1054
1055 m_buttonprefs->mapkey(Qt::NoButton, Key_Up, cesPageUp);
1056 m_buttonprefs->mapkey(Qt::NoButton, Key_Down, cesPageDown);
1057
1058 m_buttonprefs->mapkey(Qt::NoButton, Key_Right, cesZoomIn);
1059 m_buttonprefs->mapkey(Qt::NoButton, Key_Left, cesZoomOut);
1060
1061 showbuttonprefs();
1062 }
875} 1063}
876 1064
877void QTReaderApp::addtoolbars(Config* config) 1065void QTReaderApp::addtoolbars(Config* config)
@@ -880,6 +1068,7 @@ void QTReaderApp::addtoolbars(Config* config)
880 1068
881 if (fileBar != NULL) 1069 if (fileBar != NULL)
882 { 1070 {
1071#ifdef USEQPE
883 if (fileBar != menubar) 1072 if (fileBar != menubar)
884 { 1073 {
885 fileBar->clear(); 1074 fileBar->clear();
@@ -893,6 +1082,9 @@ void QTReaderApp::addtoolbars(Config* config)
893 m_touch_action->removeFrom( filebar() ); 1082 m_touch_action->removeFrom( filebar() );
894 m_find_action->removeFrom( filebar() ); 1083 m_find_action->removeFrom( filebar() );
895 } 1084 }
1085#else
1086 fileBar->clear();
1087#endif
896 } 1088 }
897 1089
898 m_preferences_action->addTo( filebar() ); 1090 m_preferences_action->addTo( filebar() );
@@ -904,7 +1096,11 @@ void QTReaderApp::addtoolbars(Config* config)
904 1096
905 if (navBar != NULL) 1097 if (navBar != NULL)
906 { 1098 {
1099#ifdef USEQPE
907 if ((navBar == fileBar) && (fileBar == menubar)) 1100 if ((navBar == fileBar) && (fileBar == menubar))
1101#else
1102 if (navBar == fileBar)
1103#endif
908 { 1104 {
909 m_scrollButton->removeFrom( navbar() ); 1105 m_scrollButton->removeFrom( navbar() );
910 m_start_action->removeFrom( navbar() ); 1106 m_start_action->removeFrom( navbar() );
@@ -939,9 +1135,15 @@ void QTReaderApp::addtoolbars(Config* config)
939 1135
940 if (viewBar != NULL) 1136 if (viewBar != NULL)
941 { 1137 {
1138#ifdef USEQPE
942 if ((viewBar == fileBar) && (fileBar == menubar)) 1139 if ((viewBar == fileBar) && (fileBar == menubar))
1140#else
1141 if (viewBar == fileBar)
1142#endif
943 { 1143 {
944 m_actFullscreen->removeFrom( filebar() ); 1144 m_actFullscreen->removeFrom( filebar() );
1145 m_rotate_action->removeFrom( viewbar() );
1146 m_inverse_action->removeFrom( viewbar() );
945 m_zoomin_action->removeFrom( viewbar() ); 1147 m_zoomin_action->removeFrom( viewbar() );
946 m_zoomout_action->removeFrom( viewbar() ); 1148 m_zoomout_action->removeFrom( viewbar() );
947 m_setfont_action->removeFrom( viewbar() ); 1149 m_setfont_action->removeFrom( viewbar() );
@@ -955,6 +1157,8 @@ void QTReaderApp::addtoolbars(Config* config)
955 } 1157 }
956 1158
957 addviewbar(config, "Fullscreen", m_actFullscreen); 1159 addviewbar(config, "Fullscreen", m_actFullscreen);
1160 addviewbar(config, "Rotate", m_rotate_action);
1161 addviewbar(config, "Invert Action", m_inverse_action);
958 addviewbar(config, "Zoom In", m_zoomin_action); 1162 addviewbar(config, "Zoom In", m_zoomin_action);
959 addviewbar(config, "Zoom Out", m_zoomout_action); 1163 addviewbar(config, "Zoom Out", m_zoomout_action);
960 addviewbar(config, "Set Font", m_setfont_action); 1164 addviewbar(config, "Set Font", m_setfont_action);
@@ -963,7 +1167,11 @@ void QTReaderApp::addtoolbars(Config* config)
963 1167
964 if (markBar != NULL) 1168 if (markBar != NULL)
965 { 1169 {
1170#ifdef USEQPE
966 if ((markBar == fileBar) && (fileBar == menubar)) 1171 if ((markBar == fileBar) && (fileBar == menubar))
1172#else
1173 if (markBar == fileBar)
1174#endif
967 { 1175 {
968 m_mark_action->removeFrom( markbar() ); 1176 m_mark_action->removeFrom( markbar() );
969 m_annotate_action->removeFrom( markbar()); 1177 m_annotate_action->removeFrom( markbar());
@@ -1028,15 +1236,17 @@ QToolBar* QTReaderApp::filebar()
1028 { 1236 {
1029 switch (m_tbpol) 1237 switch (m_tbpol)
1030 { 1238 {
1239#ifdef USEQPE
1031 case cesSingle: 1240 case cesSingle:
1032// odebug << "Setting filebar to menubar" << oendl; 1241 // qDebug("Setting filebar to menubar");
1033 fileBar = menubar; 1242 fileBar = menubar;
1034 break; 1243 break;
1244#endif
1035 default: 1245 default:
1036 odebug << "Incorrect toolbar policy set" << oendl; 1246 qDebug("Incorrect toolbar policy set");
1037 case cesMenuTool: 1247 case cesMenuTool:
1038 case cesMultiple: 1248 case cesMultiple:
1039// odebug << "Creating new file bar" << oendl; 1249 // qDebug("Creating new file bar");
1040 fileBar = new QToolBar("File", this, m_tbposition); 1250 fileBar = new QToolBar("File", this, m_tbposition);
1041 break; 1251 break;
1042 } 1252 }
@@ -1054,8 +1264,10 @@ QToolBar* QTReaderApp::viewbar()
1054 viewBar = new QToolBar("View", this, m_tbposition); 1264 viewBar = new QToolBar("View", this, m_tbposition);
1055 break; 1265 break;
1056 default: 1266 default:
1057 odebug << "Incorrect toolbar policy set" << oendl; 1267 qDebug("Incorrect toolbar policy set");
1268#ifdef USEQPE
1058 case cesSingle: 1269 case cesSingle:
1270#endif
1059 case cesMenuTool: 1271 case cesMenuTool:
1060 viewBar = fileBar; 1272 viewBar = fileBar;
1061 break; 1273 break;
@@ -1070,15 +1282,17 @@ QToolBar* QTReaderApp::navbar()
1070 switch (m_tbpol) 1282 switch (m_tbpol)
1071 { 1283 {
1072 case cesMultiple: 1284 case cesMultiple:
1073// odebug << "Creating new nav bar" << oendl; 1285 // qDebug("Creating new nav bar");
1074 navBar = new QToolBar("Navigation", this, m_tbposition); 1286 navBar = new QToolBar("Navigation", this, m_tbposition);
1075 break; 1287 break;
1076 default: 1288 default:
1077 odebug << "Incorrect toolbar policy set" << oendl; 1289 qDebug("Incorrect toolbar policy set");
1290#ifdef USEQPE
1078 case cesSingle: 1291 case cesSingle:
1292#endif
1079 case cesMenuTool: 1293 case cesMenuTool:
1080 navBar = fileBar; 1294 navBar = fileBar;
1081// odebug << "Setting navbar to filebar" << oendl; 1295 // qDebug("Setting navbar to filebar");
1082 break; 1296 break;
1083 } 1297 }
1084 } 1298 }
@@ -1094,8 +1308,10 @@ QToolBar* QTReaderApp::markbar()
1094 markBar = new QToolBar("Marks", this, m_tbposition); 1308 markBar = new QToolBar("Marks", this, m_tbposition);
1095 break; 1309 break;
1096 default: 1310 default:
1097 odebug << "Incorrect toolbar policy set" << oendl; 1311 qDebug("Incorrect toolbar policy set");
1312#ifdef USEQPE
1098 case cesSingle: 1313 case cesSingle:
1314#endif
1099 case cesMenuTool: 1315 case cesMenuTool:
1100 markBar = fileBar; 1316 markBar = fileBar;
1101 break; 1317 break;
@@ -1123,13 +1339,23 @@ void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a)
1123 1339
1124void QTReaderApp::suspend() { reader->suspend(); } 1340void QTReaderApp::suspend() { reader->suspend(); }
1125 1341
1126#ifdef USEMSGS
1127void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) 1342void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
1128{ 1343{
1344#ifndef USEMSGS
1345 return;
1346#else
1129 QString msg = QString::fromUtf8(_msg); 1347 QString msg = QString::fromUtf8(_msg);
1130 1348
1131//// odebug << "Received:" << msg << "" << oendl; 1349 qDebug("Received:%s", (const char*)msg);
1132 1350 QDataStream stream( _data, IO_ReadOnly );
1351 if ( msg == "suspend()" )
1352 {
1353 qDebug("Suspending");
1354 suspend();
1355 qDebug("Suspendedb");
1356 }
1357 return;
1358 /*
1133 QDataStream stream( _data, IO_ReadOnly ); 1359 QDataStream stream( _data, IO_ReadOnly );
1134 if ( msg == "info(QString)" ) 1360 if ( msg == "info(QString)" )
1135 { 1361 {
@@ -1378,14 +1604,12 @@ void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
1378 stream >> info; 1604 stream >> info;
1379 onespace(info); 1605 onespace(info);
1380 } 1606 }
1381#ifdef REPALM
1382 else if ( msg == "Layout/Repalm(int)" ) 1607 else if ( msg == "Layout/Repalm(int)" )
1383 { 1608 {
1384 int info; 1609 int info;
1385 stream >> info; 1610 stream >> info;
1386 repalm(info); 1611 repalm(info);
1387 } 1612 }
1388#endif
1389 else if ( msg == "Layout/Unindent(int)" ) 1613 else if ( msg == "Layout/Unindent(int)" )
1390 { 1614 {
1391 int info; 1615 int info;
@@ -1459,8 +1683,10 @@ void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
1459 { 1683 {
1460 editCopy(); 1684 editCopy();
1461 } 1685 }
1462} 1686 */
1463#endif 1687#endif
1688}
1689
1464ActionTypes QTReaderApp::ActNameToInt(const QString& _enc) 1690ActionTypes QTReaderApp::ActNameToInt(const QString& _enc)
1465{ 1691{
1466 for (int i = 0; i < MAX_ACTIONS; i++) 1692 for (int i = 0; i < MAX_ACTIONS; i++)
@@ -1470,6 +1696,66 @@ ActionTypes QTReaderApp::ActNameToInt(const QString& _enc)
1470 return cesAutoScroll; 1696 return cesAutoScroll;
1471} 1697}
1472 1698
1699void QTReaderApp::setinverted(bool sfs)
1700{
1701 reader->setInverse(sfs);
1702 reader->setfilter(reader->getfilter());
1703 reader->refresh();
1704}
1705
1706void QTReaderApp::setrotated(bool sfs)
1707{
1708 reader->setrotated(sfs);
1709 if (sfs)
1710 {
1711 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::BottomToTop : QBoxLayout::TopToBottom );
1712 if (m_scrollbar != NULL)
1713 {
1714 scrollbar->disconnect();
1715 m_scrollbar->setOrientation(Qt::Horizontal);
1716 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineUp()) );
1717 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineDown()) );
1718 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopageup()) );
1719 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopagedn()) );
1720 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
1721 }
1722 //reader->repaint(0, reader->m_left_border, reader->width(), reader->height()-2*reader->m_border);
1723 reader->repaint();
1724 }
1725 else
1726 {
1727 m_layout->setDirection( (m_qtscroll == 2) ? QBoxLayout::RightToLeft : QBoxLayout::LeftToRight );
1728 if (m_scrollbar != NULL)
1729 {
1730 scrollbar->disconnect();
1731 m_scrollbar->setOrientation(Qt::Vertical);
1732 connect(scrollbar, SIGNAL(nextLine()), reader, SLOT(lineDown()) );
1733 connect(scrollbar, SIGNAL(prevLine()), reader, SLOT(lineUp()) );
1734 connect(scrollbar, SIGNAL(nextPage()), reader, SLOT(dopagedn()) );
1735 connect(scrollbar, SIGNAL(prevPage()), reader, SLOT(dopageup()) );
1736 connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) );
1737 }
1738 //reader->repaint(reader->m_border, 0, reader->width()-2*reader->m_border, reader->height());
1739 reader->repaint();
1740 }
1741 // reader->update();
1742}
1743
1744void QTReaderApp::setgrab(bool sfs)
1745{
1746#ifdef USEQPE
1747 m_grabkeyboard = sfs;
1748 if (m_grabkeyboard)
1749 {
1750 ((QPEApplication*)qApp)->grabKeyboard();
1751 }
1752 else
1753 {
1754 ((QPEApplication*)qApp)->ungrabKeyboard();
1755 }
1756#endif
1757}
1758
1473void QTReaderApp::setfullscreen(bool sfs) 1759void QTReaderApp::setfullscreen(bool sfs)
1474{ 1760{
1475 reader->bDoUpdates = false; 1761 reader->bDoUpdates = false;
@@ -1479,13 +1765,13 @@ void QTReaderApp::setfullscreen(bool sfs)
1479 reader->bDoUpdates = true; 1765 reader->bDoUpdates = true;
1480 reader->update(); 1766 reader->update();
1481} 1767}
1482 1768/*
1483void QTReaderApp::buttonActionSelected(QAction* _a) 1769void QTReaderApp::buttonActionSelected(QAction* _a)
1484{ 1770{
1485//// odebug << "es:" << _a << " : " << (const char *)(_a->text()) << " (" << ActNameToInt(_a->text()) << ")" << oendl; 1771//// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text()));
1486 m_spaceTarget = ActNameToInt(_a->text()); 1772 m_spaceTarget = ActNameToInt(_a->text());
1487} 1773}
1488 1774*/
1489QTReaderApp::~QTReaderApp() 1775QTReaderApp::~QTReaderApp()
1490{ 1776{
1491} 1777}
@@ -1499,18 +1785,23 @@ void QTReaderApp::autoScroll(bool _b)
1499void QTReaderApp::zoomin() 1785void QTReaderApp::zoomin()
1500{ 1786{
1501 reader->zoomin(); 1787 reader->zoomin();
1788 QFont f(reader->m_fontname, reader->m_fontControl.getsize(0));
1789 m_prog->setFont( f );
1502} 1790}
1503 1791
1504void QTReaderApp::zoomout() 1792void QTReaderApp::zoomout()
1505{ 1793{
1506 reader->zoomout(); 1794 reader->zoomout();
1795 QFont f(reader->m_fontname, reader->m_fontControl.getsize(0));
1796 m_prog->setFont( f );
1507} 1797}
1508 1798
1509void QTReaderApp::clearBkmkList() 1799void QTReaderApp::clearBkmkList()
1510{ 1800{
1511 delete pBkmklist; 1801 delete pBkmklist;
1512 pBkmklist = NULL; 1802 reader->pBkmklist = pBkmklist = NULL;
1513 m_fBkmksChanged = false; 1803 m_fBkmksChanged = false;
1804 reader->refresh(true);
1514} 1805}
1515 1806
1516void QTReaderApp::fileClose() 1807void QTReaderApp::fileClose()
@@ -1564,7 +1855,7 @@ void QTReaderApp::updatefileinfo()
1564 if (reader->m_lastfile.isEmpty()) return; 1855 if (reader->m_lastfile.isEmpty()) return;
1565 tchar* nm = fromQString(reader->m_string); 1856 tchar* nm = fromQString(reader->m_string);
1566 tchar* fl = fromQString(reader->m_lastfile); 1857 tchar* fl = fromQString(reader->m_lastfile);
1567// odebug << "Lastfile:" << fl << "" << oendl; 1858// qDebug("Lastfile:%x", fl);
1568 bool notadded = true; 1859 bool notadded = true;
1569 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>; 1860 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>;
1570 else 1861 else
@@ -1578,7 +1869,7 @@ void QTReaderApp::updatefileinfo()
1578 unsigned char* data; 1869 unsigned char* data;
1579 CFiledata fd(iter->anno()); 1870 CFiledata fd(iter->anno());
1580 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1871 reader->setSaveData(data, dlen, fd.content(), fd.length());
1581// odebug << "Filedata(1):" << fd.length() << ", " << dlen << "" << oendl; 1872 // qDebug("Filedata(1):%u, %u", fd.length(), dlen);
1582// getstate(data, dlen); 1873// getstate(data, dlen);
1583 iter->setAnno(data, dlen); 1874 iter->setAnno(data, dlen);
1584 notadded = false; 1875 notadded = false;
@@ -1587,7 +1878,7 @@ void QTReaderApp::updatefileinfo()
1587 } 1878 }
1588 } 1879 }
1589 } 1880 }
1590// odebug << "Added?:" << notadded << "" << oendl; 1881// qDebug("Added?:%x", notadded);
1591 if (notadded) 1882 if (notadded)
1592 { 1883 {
1593 struct stat fnstat; 1884 struct stat fnstat;
@@ -1597,7 +1888,7 @@ void QTReaderApp::updatefileinfo()
1597 unsigned char* data; 1888 unsigned char* data;
1598 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1889 reader->setSaveData(data, dlen, fd.content(), fd.length());
1599 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate())); 1890 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate()));
1600// odebug << "Filedata(2):" << fd.length() << ", " << dlen << "" << oendl; 1891 //qDebug("Filedata(2):%u, %u", fd.length(), dlen);
1601 delete [] data; 1892 delete [] data;
1602 } 1893 }
1603 delete [] nm; 1894 delete [] nm;
@@ -1612,7 +1903,7 @@ void QTReaderApp::fileOpen()
1612 if (regVisible) regBar->hide(); 1903 if (regVisible) regBar->hide();
1613 if (searchVisible) searchBar->hide(); 1904 if (searchVisible) searchBar->hide();
1614*/ 1905*/
1615// odebug << "fileOpen" << oendl; 1906// qDebug("fileOpen");
1616// if (!reader->m_lastfile.isEmpty()) 1907// if (!reader->m_lastfile.isEmpty())
1617 updatefileinfo(); 1908 updatefileinfo();
1618 fileOpen2(); 1909 fileOpen2();
@@ -1628,7 +1919,7 @@ void QTReaderApp::fileOpen2()
1628 savebkmks(); 1919 savebkmks();
1629 } 1920 }
1630 delete pBkmklist; 1921 delete pBkmklist;
1631 pBkmklist = NULL; 1922 reader->pBkmklist = pBkmklist = NULL;
1632 m_fBkmksChanged = false; 1923 m_fBkmksChanged = false;
1633 } 1924 }
1634 reader->disableAutoscroll(); 1925 reader->disableAutoscroll();
@@ -1653,7 +1944,7 @@ void QTReaderApp::fileOpen2()
1653 reader->setFocus(); 1944 reader->setFocus();
1654 } 1945 }
1655// reader->refresh(); 1946// reader->refresh();
1656// odebug << "HEIGHT:" << reader->m_lastheight << "" << oendl; 1947// qDebug("HEIGHT:%d", reader->m_lastheight);
1657} 1948}
1658 1949
1659QString QTReaderApp::usefilebrowser() 1950QString QTReaderApp::usefilebrowser()
@@ -1662,19 +1953,31 @@ QString QTReaderApp::usefilebrowser()
1662 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); 1953 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) );
1663 return s; 1954 return s;
1664#else 1955#else
1956 QString fn;
1957#ifdef OPIE
1958 QMap<QString, QStringList> mimeTypes;
1959 QStringList etypes;
1960 etypes << "etext/*";
1961 mimeTypes.insert( tr("eText"), etypes );
1962 QStringList types;
1963 types << "text/*";
1964 mimeTypes.insert( tr("Text"), types );
1965 mimeTypes.insert( tr("All"), "*/*" );
1966 fn = OFileDialog::getOpenFileName(OFileSelector::EXTENDED_ALL, QFileInfo(reader->m_lastfile).dirPath(true), QString::null, mimeTypes, 0, "OpieReader");
1967#else
1665 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, 1968 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog,
1666 0, 1969 0,
1667// WStyle_Customize | WStyle_NoBorderEx, 1970// WStyle_Customize | WStyle_NoBorderEx,
1668 "*", QFileInfo(reader->m_lastfile).dirPath(true)); 1971 "*", QFileInfo(reader->m_lastfile).dirPath(true));
1669 1972
1670 1973
1671 QString fn;
1672 if (fb->exec()) 1974 if (fb->exec())
1673 { 1975 {
1674 fn = fb->getCurrentFile(); 1976 fn = fb->getCurrentFile();
1675 } 1977 }
1676// odebug << "Selected " << fn << "" << oendl; 1978// qDebug("Selected %s", (const char*)fn);
1677 delete fb; 1979 delete fb;
1980#endif
1678 showEditTools(); 1981 showEditTools();
1679 return fn; 1982 return fn;
1680#endif 1983#endif
@@ -1682,18 +1985,36 @@ QString QTReaderApp::usefilebrowser()
1682 1985
1683void QTReaderApp::showgraphic(QImage& pm) 1986void QTReaderApp::showgraphic(QImage& pm)
1684{ 1987{
1685 QPixmap pc; 1988 m_graphicwin->setImage(pm);
1686 pc.convertFromImage(pm);
1687 m_graphicwin->setPixmap(pc);
1688 editorStack->raiseWidget( m_graphicwin ); 1989 editorStack->raiseWidget( m_graphicwin );
1990 hidetoolbars();
1689 m_graphicwin->setFocus(); 1991 m_graphicwin->setFocus();
1690} 1992}
1691 1993
1994void QTReaderApp::showbuttonprefs()
1995{
1996 editorStack->raiseWidget( m_buttonprefs );
1997 hidetoolbars();
1998 m_buttonprefs->setFocus();
1999 m_kmapchanged = true;
2000}
1692 2001
1693void QTReaderApp::showprefs() 2002void QTReaderApp::showprefs()
1694{ 2003{
1695 CPrefs* prefwin = new CPrefs(!m_bFloatingDialog, this); 2004 CPrefs* prefwin = new CPrefs(reader->width(), !m_bFloatingDialog, this);
1696 2005
2006 // prefwin->Debounce(m_debounce);
2007 prefwin->bgtype(m_bgtype);
2008 prefwin->repalm(reader->brepalm);
2009 prefwin->kern(reader->bkern);
2010 prefwin->hyphenate(reader->hyphenate);
2011 // prefwin->customhyphen(reader->buffdoc.getCustomHyphen());
2012 prefwin->scrolltype(reader->m_scrolltype);
2013 prefwin->scrollstep(reader->m_scrollstep);
2014 prefwin->scrollcolor(m_scrollcolor);
2015 prefwin->minibarcol(m_scrollbarcolor);
2016 prefwin->foreground(m_foreground);
2017 prefwin->background(m_background);
1697 prefwin->twotouch(m_twoTouch); 2018 prefwin->twotouch(m_twoTouch);
1698 prefwin->propfontchange(m_propogatefontchange); 2019 prefwin->propfontchange(m_propogatefontchange);
1699 prefwin->StripCR(reader->bstripcr); 2020 prefwin->StripCR(reader->bstripcr);
@@ -1705,9 +2026,15 @@ void QTReaderApp::showprefs()
1705 prefwin->Remap(reader->bremap); 2026 prefwin->Remap(reader->bremap);
1706 prefwin->Embolden(reader->bmakebold); 2027 prefwin->Embolden(reader->bmakebold);
1707 prefwin->FullJustify(reader->bfulljust); 2028 prefwin->FullJustify(reader->bfulljust);
2029 // prefwin->Inverse(reader->bInverse);
2030 // prefwin->Negative(reader->bNegative);
2031 prefwin->FixGraphics(reader->m_fontControl.FixGraphics());
1708 prefwin->ParaLead(reader->getextraspace()); 2032 prefwin->ParaLead(reader->getextraspace());
1709 prefwin->LineLead(reader->getlead()); 2033 prefwin->LineLead(reader->getlead());
1710 prefwin->Margin(reader->m_border); 2034 prefwin->TopMargin(reader->m_abstopmargin);
2035 prefwin->BottomMargin(reader->m_absbottommargin);
2036 prefwin->LeftMargin(reader->m_absleft_border);
2037 prefwin->RightMargin(reader->m_absright_border);
1711 prefwin->Indent(reader->bindenter); 2038 prefwin->Indent(reader->bindenter);
1712 if (reader->bautofmt) 2039 if (reader->bautofmt)
1713 { 2040 {
@@ -1736,18 +2063,12 @@ void QTReaderApp::showprefs()
1736 prefwin->dictApplication(m_targetapp); 2063 prefwin->dictApplication(m_targetapp);
1737 prefwin->dictMessage(m_targetmsg); 2064 prefwin->dictMessage(m_targetmsg);
1738 2065
1739 prefwin->spaceAction(m_spaceTarget); 2066 /*
1740 prefwin->escapeAction(m_escapeTarget);
1741 prefwin->returnAction(m_returnTarget);
1742 prefwin->leftAction(m_leftTarget);
1743 prefwin->rightAction(m_rightTarget);
1744 prefwin->upAction(m_upTarget);
1745 prefwin->downAction(m_downTarget);
1746
1747 prefwin->leftScroll(m_leftScroll); 2067 prefwin->leftScroll(m_leftScroll);
1748 prefwin->rightScroll(m_rightScroll); 2068 prefwin->rightScroll(m_rightScroll);
1749 prefwin->upScroll(m_upScroll); 2069 prefwin->upScroll(m_upScroll);
1750 prefwin->downScroll(m_downScroll); 2070 prefwin->downScroll(m_downScroll);
2071 */
1751 2072
1752 prefwin->miscannotation(m_doAnnotation); 2073 prefwin->miscannotation(m_doAnnotation);
1753 prefwin->miscdictionary(m_doDictionary); 2074 prefwin->miscdictionary(m_doDictionary);
@@ -1769,6 +2090,21 @@ void QTReaderApp::showprefs()
1769 2090
1770 if (prefwin->exec()) 2091 if (prefwin->exec())
1771 { 2092 {
2093 // m_debounce = prefwin->Debounce();
2094 reader->brepalm = prefwin->repalm();
2095 reader->bkern = prefwin->kern();
2096 reader->hyphenate = prefwin->hyphenate();
2097 // reader->buffdoc.setCustomHyphen(prefwin->customhyphen());
2098 reader->m_scrolltype = prefwin->scrolltype();
2099 reader->m_scrollstep = prefwin->scrollstep();
2100 m_scrollcolor = prefwin->scrollcolor();
2101 setscrollcolour();
2102 m_scrollbarcolor = prefwin->minibarcol();
2103 setscrollbarcolour();
2104 m_foreground = prefwin->foreground();
2105 reader->setForeground(getcolour(m_foreground));
2106 m_background = prefwin->background();
2107 reader->setBackground(getcolour(m_background));
1772 m_twoTouch = prefwin->twotouch(); 2108 m_twoTouch = prefwin->twotouch();
1773 reader->setTwoTouch(m_twoTouch); 2109 reader->setTwoTouch(m_twoTouch);
1774 m_touch_action->setOn(m_twoTouch); 2110 m_touch_action->setOn(m_twoTouch);
@@ -1782,9 +2118,16 @@ void QTReaderApp::showprefs()
1782 reader->bremap = prefwin->Remap(); 2118 reader->bremap = prefwin->Remap();
1783 reader->bmakebold = prefwin->Embolden(); 2119 reader->bmakebold = prefwin->Embolden();
1784 reader->bfulljust = prefwin->FullJustify(); 2120 reader->bfulljust = prefwin->FullJustify();
2121 //if (reader->bInverse != prefwin->Inverse()) reader->setInverse(prefwin->Inverse());
2122 //if (reader->bNegative != prefwin->Negative()) reader->setNegative();
2123 reader->m_fontControl.FixGraphics(prefwin->FixGraphics());
2124
1785 reader->setextraspace(prefwin->ParaLead()); 2125 reader->setextraspace(prefwin->ParaLead());
1786 reader->setlead(prefwin->LineLead()); 2126 reader->setlead(prefwin->LineLead());
1787 reader->m_border = prefwin->Margin(); 2127 reader->m_abstopmargin = prefwin->TopMargin();
2128 reader->m_absbottommargin = prefwin->BottomMargin();
2129 reader->m_absleft_border = prefwin->LeftMargin();
2130 reader->m_absright_border = prefwin->RightMargin();
1788 reader->bindenter = prefwin->Indent(); 2131 reader->bindenter = prefwin->Indent();
1789 reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false; 2132 reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false;
1790 switch (prefwin->Markup()) 2133 switch (prefwin->Markup())
@@ -1804,24 +2147,18 @@ void QTReaderApp::showprefs()
1804 reader->bpeanut = true; 2147 reader->bpeanut = true;
1805 break; 2148 break;
1806 default: 2149 default:
1807 odebug << "Format out of range" << oendl; 2150 qDebug("Format out of range");
1808 } 2151 }
1809 reader->bdepluck = prefwin->Depluck(); 2152 reader->bdepluck = prefwin->Depluck();
1810 reader->bdejpluck = prefwin->Dejpluck(); 2153 reader->bdejpluck = prefwin->Dejpluck();
1811 reader->setContinuous(prefwin->Continuous()); 2154 reader->setContinuous(prefwin->Continuous());
1812 2155
1813 m_spaceTarget = (ActionTypes)prefwin->spaceAction(); 2156 /*
1814 m_escapeTarget = (ActionTypes)prefwin->escapeAction();
1815 m_returnTarget = (ActionTypes)prefwin->returnAction();
1816 m_leftTarget = (ActionTypes)prefwin->leftAction();
1817 m_rightTarget = (ActionTypes)prefwin->rightAction();
1818 m_upTarget = (ActionTypes)prefwin->upAction();
1819 m_downTarget = (ActionTypes)prefwin->downAction();
1820 m_leftScroll = prefwin->leftScroll(); 2157 m_leftScroll = prefwin->leftScroll();
1821 m_rightScroll = prefwin->rightScroll(); 2158 m_rightScroll = prefwin->rightScroll();
1822 m_upScroll = prefwin->upScroll(); 2159 m_upScroll = prefwin->upScroll();
1823 m_downScroll = prefwin->downScroll(); 2160 m_downScroll = prefwin->downScroll();
1824 2161 */
1825 m_targetapp = prefwin->dictApplication(); 2162 m_targetapp = prefwin->dictApplication();
1826 m_targetmsg = prefwin->dictMessage(); 2163 m_targetmsg = prefwin->dictMessage();
1827 2164
@@ -1844,10 +2181,14 @@ void QTReaderApp::showprefs()
1844 m_propogatefontchange = prefwin->propfontchange(); 2181 m_propogatefontchange = prefwin->propfontchange();
1845 setfontHelper(prefwin->Font()); 2182 setfontHelper(prefwin->Font());
1846 } 2183 }
2184 if (m_bgtype != (bground)prefwin->bgtype())
2185 {
2186 m_bgtype = (bground)prefwin->bgtype();
2187 setBackgroundBitmap();
2188 }
1847 delete prefwin; 2189 delete prefwin;
1848 reader->setfilter(reader->getfilter()); 2190 reader->setfilter(reader->getfilter());
1849 reader->refresh(); 2191 reader->refresh();
1850
1851 } 2192 }
1852 else 2193 else
1853 { 2194 {
@@ -1864,7 +2205,7 @@ void QTReaderApp::showtoolbarprefs()
1864 QDir d = QDir::home(); // "/" 2205 QDir d = QDir::home(); // "/"
1865 if ( !d.cd(APPDIR) ) 2206 if ( !d.cd(APPDIR) )
1866 { // "/tmp" 2207 { // "/tmp"
1867 owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl; 2208 qWarning( "Cannot find the \"~/%s\" directory", APPDIR );
1868 d = QDir::home(); 2209 d = QDir::home();
1869 d.mkdir(APPDIR); 2210 d.mkdir(APPDIR);
1870 d.cd(APPDIR); 2211 d.cd(APPDIR);
@@ -1876,6 +2217,8 @@ void QTReaderApp::showtoolbarprefs()
1876 prefwin->tbposition(m_tbposition-2); 2217 prefwin->tbposition(m_tbposition-2);
1877 prefwin->tbmovable(m_tbmovesave); 2218 prefwin->tbmovable(m_tbmovesave);
1878 prefwin->floating(m_bFloatingDialog); 2219 prefwin->floating(m_bFloatingDialog);
2220 prefwin->qtscroll(m_qtscroll);
2221 prefwin->localscroll(m_localscroll);
1879 if (prefwin->exec()) 2222 if (prefwin->exec())
1880 { 2223 {
1881 m_bFloatingDialog = prefwin->floating(); 2224 m_bFloatingDialog = prefwin->floating();
@@ -1885,6 +2228,10 @@ void QTReaderApp::showtoolbarprefs()
1885 m_tbposition != (ToolBarDock)(prefwin->tbposition()+2) 2228 m_tbposition != (ToolBarDock)(prefwin->tbposition()+2)
1886 || 2229 ||
1887 m_tbmovesave != prefwin->tbmovable() 2230 m_tbmovesave != prefwin->tbmovable()
2231 ||
2232 m_qtscroll != prefwin->qtscroll()
2233 // ||
2234 // m_localscrollbar != prefwin->scrollonleft()
1888 ) 2235 )
1889 { 2236 {
1890 QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started"); 2237 QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started");
@@ -1892,6 +2239,20 @@ void QTReaderApp::showtoolbarprefs()
1892 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy(); 2239 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy();
1893 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2); 2240 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2);
1894 m_tbmovesave = prefwin->tbmovable(); 2241 m_tbmovesave = prefwin->tbmovable();
2242 reader->m_scrollpos = m_localscroll = prefwin->localscroll();
2243 if (m_qtscroll != prefwin->qtscroll())
2244 {
2245 m_qtscroll = prefwin->qtscroll();
2246 setrotated(reader->m_rotated);
2247 }
2248 if (m_scrollbar == NULL || m_scrollbar->isHidden())
2249 {
2250 reader->m_scrollpos = m_localscroll;
2251 }
2252 else
2253 {
2254 reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0;
2255 }
1895 bool isChanged = prefwin->isChanged(); 2256 bool isChanged = prefwin->isChanged();
1896 delete prefwin; 2257 delete prefwin;
1897#ifdef USEQPE 2258#ifdef USEQPE
@@ -1901,7 +2262,7 @@ void QTReaderApp::showtoolbarprefs()
1901 QDir d = QDir::home(); // "/" 2262 QDir d = QDir::home(); // "/"
1902 if ( !d.cd(APPDIR) ) 2263 if ( !d.cd(APPDIR) )
1903 { // "/tmp" 2264 { // "/tmp"
1904 owarn << "Cannot find the \"~/" << APPDIR << "\" directory" << oendl; 2265 qWarning( "Cannot find the \"~/%s\" directory", APPDIR );
1905 d = QDir::home(); 2266 d = QDir::home();
1906 d.mkdir(APPDIR); 2267 d.mkdir(APPDIR);
1907 d.cd(APPDIR); 2268 d.cd(APPDIR);
@@ -1919,7 +2280,7 @@ void QTReaderApp::showtoolbarprefs()
1919 2280
1920void QTReaderApp::showinfo() 2281void QTReaderApp::showinfo()
1921{ 2282{
1922 unsigned long fs, ts, pl; 2283 unsigned long ds, fs, ts, pl, dl;
1923 if (reader->empty()) 2284 if (reader->empty())
1924 { 2285 {
1925 QMessageBox::information(this, PROGNAME, "No file loaded", 1); 2286 QMessageBox::information(this, PROGNAME, "No file loaded", 1);
@@ -1927,20 +2288,28 @@ void QTReaderApp::showinfo()
1927 else 2288 else
1928 { 2289 {
1929 reader->sizes(fs,ts); 2290 reader->sizes(fs,ts);
2291 ds = reader->buffdoc.endSection() - reader->buffdoc.startSection();
1930 pl = reader->pagelocate(); 2292 pl = reader->pagelocate();
2293 dl = pl - reader->buffdoc.startSection();
1931 m_infoWin->setFileSize(fs); 2294 m_infoWin->setFileSize(fs);
1932 m_infoWin->setTextSize(ts); 2295 m_infoWin->setTextSize(ts);
1933 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); 2296 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts);
1934 m_infoWin->setLocation(pl); 2297 m_infoWin->setLocation(pl);
1935 m_infoWin->setRead((100*pl + (ts >> 1))/ts); 2298 m_infoWin->setRead((100*pl + (ts >> 1))/ts);
2299 m_infoWin->setDocSize(ds);
2300 m_infoWin->setDocLocation(dl);
2301 m_infoWin->setDocRead((100*dl + (ds >> 1))/ds);
2302 m_infoWin->setZoom(reader->m_fontControl.currentsize()*10);
2303 m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about());
1936 editorStack->raiseWidget( m_infoWin ); 2304 editorStack->raiseWidget( m_infoWin );
2305 hidetoolbars();
1937 m_infoWin->setFocus(); 2306 m_infoWin->setFocus();
1938 } 2307 }
1939} 2308}
1940 2309
1941void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn) 2310void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn, size_t posn2)
1942{ 2311{
1943 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; 2312 if (pBkmklist == NULL) reader->pBkmklist = pBkmklist = new CList<Bkmk>;
1944#ifdef _UNICODE 2313#ifdef _UNICODE
1945 CBuffer buff(name.length()+1); 2314 CBuffer buff(name.length()+1);
1946 int i; 2315 int i;
@@ -1955,7 +2324,14 @@ void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn)
1955 buff2[i] = text[i].unicode(); 2324 buff2[i] = text[i].unicode();
1956 } 2325 }
1957 buff2[i] = 0; 2326 buff2[i] = 0;
1958 pBkmklist->push_front(Bkmk(buff.data(), buff2.data(), posn)); 2327 Bkmk b(buff.data(), buff2.data(), posn, posn2);
2328 QColor c = m_annoWin->getColor();
2329 int red,green,blue;
2330 c.rgb(&red, &green, &blue);
2331 b.red(red);
2332 b.green(green);
2333 b.blue(blue);
2334 pBkmklist->push_front(b);
1959#else 2335#else
1960 pBkmklist->push_front(Bkmk((const tchar*)text,posn)); 2336 pBkmklist->push_front(Bkmk((const tchar*)text,posn));
1961#endif 2337#endif
@@ -1973,7 +2349,7 @@ void QTReaderApp::addAnno(const QString& name, const QString& text)
1973 } 2349 }
1974 else 2350 else
1975 { 2351 {
1976 addAnno(name, text, m_annoWin->getPosn()); 2352 addAnno(name, text, m_annoWin->getPosn(), m_annoWin->getPosn2());
1977 } 2353 }
1978 showEditTools(); 2354 showEditTools();
1979 } 2355 }
@@ -1991,11 +2367,18 @@ void QTReaderApp::addAnno(const QString& name, const QString& text)
1991 m_fBkmksChanged = true; 2367 m_fBkmksChanged = true;
1992 m_anno->setAnno(buff.data()); 2368 m_anno->setAnno(buff.data());
1993 } 2369 }
2370 QColor c = m_annoWin->getColor();
2371 int red,green,blue;
2372 c.rgb(&red, &green, &blue);
2373 m_anno->red(red);
2374 m_anno->green(green);
2375 m_anno->blue(blue);
1994 bool found = findNextBookmark(m_anno->value()+1); 2376 bool found = findNextBookmark(m_anno->value()+1);
1995 if (found) 2377 if (found)
1996 { 2378 {
1997 m_annoWin->setName(toQString(m_anno->name())); 2379 m_annoWin->setName(toQString(m_anno->name()));
1998 m_annoWin->setAnno(toQString(m_anno->anno())); 2380 m_annoWin->setAnno(toQString(m_anno->anno()));
2381 m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue()));
1999 } 2382 }
2000 else 2383 else
2001 { 2384 {
@@ -2035,6 +2418,7 @@ void QTReaderApp::addanno()
2035 m_annoWin->setPosn(reader->pagelocate()); 2418 m_annoWin->setPosn(reader->pagelocate());
2036 m_annoIsEditing = true; 2419 m_annoIsEditing = true;
2037 editorStack->raiseWidget( m_annoWin ); 2420 editorStack->raiseWidget( m_annoWin );
2421 hidetoolbars();
2038#ifdef USEQPE 2422#ifdef USEQPE
2039 Global::showInputMethod(); 2423 Global::showInputMethod();
2040#endif 2424#endif
@@ -2044,6 +2428,35 @@ void QTReaderApp::addanno()
2044 2428
2045void QTReaderApp::infoClose() 2429void QTReaderApp::infoClose()
2046{ 2430{
2431 m_debounce = m_buttonprefs->Debounce();
2432 if (m_kmapchanged)
2433 {
2434 m_kmapchanged = false;
2435#ifndef USEQPE
2436 QDir d = QDir::home(); // "/"
2437 d.cd(APPDIR);
2438 QFileInfo fi(d, ".keymap");
2439 FILE* f = fopen((const char *)fi.absFilePath(), "w");
2440#else /* USEQPE */
2441 FILE* f = fopen((const char *)Global::applicationFileName(APPDIR,".keymap"), "w");
2442#endif /* USEQPE */
2443 if (f != NULL)
2444 {
2445 uint cnt = KEYMAPVERSION;
2446 fwrite(&cnt, sizeof(cnt), 1, f);
2447 cnt = kmap.count();
2448 fwrite(&cnt, sizeof(cnt), 1, f);
2449 for (QMap<orKey,int>::Iterator i = kmap.begin(); i != kmap.end(); i++)
2450 {
2451 orKey key = i.key();
2452 int data = i.data();
2453 fwrite(&key, sizeof(key), 1, f);
2454 fwrite(&data, sizeof(data), 1, f);
2455 qDebug("Saved %s as %u", (const char*)key.text(), data);
2456 }
2457 fclose(f);
2458 }
2459 }
2047 showEditTools(); 2460 showEditTools();
2048} 2461}
2049 2462
@@ -2176,7 +2589,7 @@ void QTReaderApp::editFind()
2176 2589
2177void QTReaderApp::findNext() 2590void QTReaderApp::findNext()
2178{ 2591{
2179// // odebug << "findNext called\n" << oendl; 2592// // qDebug("findNext called\n");
2180#ifdef __ISEARCH 2593#ifdef __ISEARCH
2181 QString arg = searchEdit->text(); 2594 QString arg = searchEdit->text();
2182#else 2595#else
@@ -2272,12 +2685,12 @@ bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg)
2272 return false; 2685 return false;
2273 } 2686 }
2274 } 2687 }
2275// odebug << "Found it at " << pos << ":" << offset << "" << oendl; 2688// qDebug("Found it at %u:%u", pos, offset);
2276 pbar->hide(); 2689 pbar->hide();
2277// odebug << "Hid" << oendl; 2690// qDebug("Hid");
2278 reader->locate(pos+offset); 2691 reader->locate(pos+offset);
2279// odebug << "Loacted" << oendl; 2692// qDebug("Loacted");
2280// odebug << "page up" << oendl; 2693// qDebug("page up");
2281 ret = true; 2694 ret = true;
2282 } 2695 }
2283 else 2696 else
@@ -2334,7 +2747,7 @@ void QTReaderApp::search()
2334 2747
2335void QTReaderApp::openFile( const QString &f ) 2748void QTReaderApp::openFile( const QString &f )
2336{ 2749{
2337// odebug << "File:" << f << "" << oendl; 2750// qDebug("File:%s", (const char*)f);
2338// openFile(DocLnk(f)); 2751// openFile(DocLnk(f));
2339//} 2752//}
2340// 2753//
@@ -2355,16 +2768,20 @@ void QTReaderApp::openFile( const QString &f )
2355 } 2768 }
2356#endif 2769#endif
2357 clear(); 2770 clear();
2358
2359 reader->setText(fm.baseName(), fm.absFilePath()); 2771 reader->setText(fm.baseName(), fm.absFilePath());
2360 m_loadedconfig = readconfig(reader->m_string, false); 2772 m_loadedconfig = readconfig(APPDIR "/configs", reader->m_string, false);
2773 qDebug("Showing tools");
2361 showEditTools(); 2774 showEditTools();
2775 qDebug("Shown tools");
2362 readbkmks(); 2776 readbkmks();
2777 qDebug("read markss");
2363 m_savedpos = 0xffffffff; 2778 m_savedpos = 0xffffffff;
2364 } 2779 }
2365 else 2780 else
2366 { 2781 {
2367 QMessageBox::information(this, PROGNAME, "File does not exist"); 2782 QString msg = f;
2783 msg += "\nFile does not exist";
2784 QMessageBox::information(this, PROGNAME, msg);
2368 reader->m_lastfile = QString::null; 2785 reader->m_lastfile = QString::null;
2369 } 2786 }
2370 2787
@@ -2381,7 +2798,7 @@ void QTReaderApp::resizeEvent(QResizeEvent* e)
2381*/ 2798*/
2382void QTReaderApp::handlekey(QKeyEvent* e) 2799void QTReaderApp::handlekey(QKeyEvent* e)
2383{ 2800{
2384// odebug << "Keypress event" << oendl; 2801// qDebug("Keypress event");
2385 timeb now; 2802 timeb now;
2386 ftime(&now); 2803 ftime(&now);
2387 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; 2804 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm;
@@ -2389,11 +2806,10 @@ void QTReaderApp::handlekey(QKeyEvent* e)
2389 { 2806 {
2390 return; 2807 return;
2391 } 2808 }
2392 m_lastkeytime = now;
2393 switch(e->key()) 2809 switch(e->key())
2394 { 2810 {
2395 case Key_Escape: 2811 case Key_Escape:
2396// odebug << "escape event" << oendl; 2812 // qDebug("escape event");
2397 if (m_disableesckey) 2813 if (m_disableesckey)
2398 { 2814 {
2399 m_disableesckey = false; 2815 m_disableesckey = false;
@@ -2408,72 +2824,64 @@ void QTReaderApp::handlekey(QKeyEvent* e)
2408 } 2824 }
2409 else 2825 else
2410 { 2826 {
2411// odebug << "escape action" << oendl; 2827 // qDebug("escape action");
2412 doAction(m_escapeTarget, e); 2828 doAction(e);
2413 } 2829 }
2414 } 2830 }
2415 break; 2831 break;
2416 case Key_Space: 2832 /*
2417 {
2418 doAction(m_spaceTarget, e);
2419 }
2420 break;
2421 case Key_Return:
2422 {
2423 doAction(m_returnTarget, e);
2424 }
2425 break;
2426 case Key_Left: 2833 case Key_Left:
2427 { 2834 {
2428 if (reader->m_autoScroll && m_leftScroll) 2835 if (reader->m_autoScroll)
2429 { 2836 {
2430 reader->reduceScroll(); 2837 reader->reduceScroll();
2431 } 2838 }
2432 else 2839 else
2433 { 2840 {
2434 doAction(m_leftTarget, e); 2841 doAction(e);
2435 } 2842 }
2436 } 2843 }
2437 break; 2844 break;
2438 case Key_Right: 2845 case Key_Right:
2439 { 2846 {
2440 if (reader->m_autoScroll && m_rightScroll) 2847 if (reader->m_autoScroll)
2441 { 2848 {
2442 reader->increaseScroll(); 2849 reader->increaseScroll();
2443 } 2850 }
2444 else 2851 else
2445 { 2852 {
2446 doAction(m_rightTarget, e); 2853 doAction(e);
2447 } 2854 }
2448 } 2855 }
2449 break; 2856 break;
2450 case Key_Up: 2857 case Key_Up:
2451 { 2858 {
2452 if (reader->m_autoScroll && m_upScroll) 2859 if (reader->m_autoScroll)
2453 { 2860 {
2454 reader->increaseScroll(); 2861 reader->increaseScroll();
2455 } 2862 }
2456 else 2863 else
2457 { 2864 {
2458 doAction(m_upTarget, e); 2865 doAction(e);
2459 } 2866 }
2460 } 2867 }
2461 break; 2868 break;
2462 case Key_Down: 2869 case Key_Down:
2463 { 2870 {
2464 if (reader->m_autoScroll && m_downScroll) 2871 if (reader->m_autoScroll)
2465 { 2872 {
2466 reader->reduceScroll(); 2873 reader->reduceScroll();
2467 } 2874 }
2468 else 2875 else
2469 { 2876 {
2470 doAction(m_downTarget, e); 2877 doAction(e);
2471 } 2878 }
2472 } 2879 }
2473 break; 2880 break;
2881 */
2474 default: 2882 default:
2475 { 2883 {
2476 e->ignore(); 2884 doAction(e);
2477 } 2885 }
2478 2886
2479/* 2887/*
@@ -2483,41 +2891,104 @@ void QTReaderApp::handlekey(QKeyEvent* e)
2483 QMessageBox::information(this, PROGNAME, msg); 2891 QMessageBox::information(this, PROGNAME, msg);
2484*/ 2892*/
2485 } 2893 }
2894 ftime(&m_lastkeytime);
2895}
2896
2897#ifdef NEWFULLSCREEN
2898void QTReaderApp::enableFullscreen()
2899{
2900 setFixedSize(qApp->desktop()->size());
2901 showNormal();
2902 reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
2903 showFullScreen();
2486} 2904}
2487 2905
2906void QTReaderApp::resizeEvent(QResizeEvent *)
2907{
2908 if (m_fullscreen && (size() != qApp->desktop()->size()))
2909 {
2910 enableFullscreen();
2911 }
2912}
2913
2914void QTReaderApp::focusInEvent(QFocusEvent*)
2915{
2916 if (m_fullscreen)
2917 {
2918 enableFullscreen();
2919 raise();
2920 }
2921}
2922#endif
2923
2488void QTReaderApp::showEditTools() 2924void QTReaderApp::showEditTools()
2489{ 2925{
2490// if ( !doc ) 2926// if ( !doc )
2491// close(); 2927// close();
2492 if (m_fullscreen) 2928 if (m_fullscreen)
2493 { 2929 {
2930#ifdef USEQPE
2494 if (menubar != NULL) menubar->hide(); 2931 if (menubar != NULL) menubar->hide();
2932#endif
2495 if (fileBar != NULL) fileBar->hide(); 2933 if (fileBar != NULL) fileBar->hide();
2496 if (viewBar != NULL) viewBar->hide(); 2934 if (viewBar != NULL) viewBar->hide();
2497 if (navBar != NULL) navBar->hide(); 2935 if (navBar != NULL) navBar->hide();
2498 if (markBar != NULL) markBar->hide(); 2936 if (markBar != NULL) markBar->hide();
2937 if (m_prog != NULL)
2938 {
2939 // qDebug("Hiding status");
2940 m_prog->hide();
2941 }
2499 searchBar->hide(); 2942 searchBar->hide();
2500 regBar->hide(); 2943 regBar->hide();
2501#ifdef USEQPE 2944#ifdef USEQPE
2502 Global::hideInputMethod(); 2945 Global::hideInputMethod();
2503#endif 2946#endif
2947 if (m_scrollbar != NULL) m_scrollbar->hide();
2504 m_fontBar->hide(); 2948 m_fontBar->hide();
2505// showNormal(); 2949// showNormal();
2950#ifdef NEWFULLSCREEN
2951 enableFullscreen();
2952#else
2506 showFullScreen(); 2953 showFullScreen();
2954#endif
2507 } 2955 }
2508 else 2956 else
2509 { 2957 {
2510// odebug << "him" << oendl; 2958 //qDebug("him");
2511#ifdef USEQPE 2959#ifdef USEQPE
2512 Global::hideInputMethod(); 2960 Global::hideInputMethod();
2513#endif 2961#endif
2514// odebug << "eb" << oendl; 2962 //qDebug("eb");
2963 if (m_scrollbar != NULL)
2964 {
2965 if (m_scrollishidden)
2966 {
2967 m_scrollbar->hide();
2968 }
2969 else
2970 {
2971 m_scrollbar->show();
2972 }
2973 }
2974 if (!m_hidebars)
2975 {
2976#ifdef USEQPE
2515 menubar->show(); 2977 menubar->show();
2978#endif
2516 if (fileBar != NULL) fileBar->show(); 2979 if (fileBar != NULL) fileBar->show();
2517 if (viewBar != NULL) viewBar->show(); 2980 if (viewBar != NULL) viewBar->show();
2518 if (navBar != NULL) navBar->show(); 2981 if (navBar != NULL) navBar->show();
2519 if (markBar != NULL) markBar->show(); 2982 if (markBar != NULL) markBar->show();
2983 if (m_prog != NULL && !m_statusishidden)
2984 {
2985 // qDebug("Showing status");
2986 m_prog->show();
2987 // qDebug("Shown status");
2988 }
2989 // qDebug("Showing mb");
2520 mb->show(); 2990 mb->show();
2991 }
2521 if ( searchVisible ) 2992 if ( searchVisible )
2522 { 2993 {
2523#ifdef USEQPE 2994#ifdef USEQPE
@@ -2533,22 +3004,24 @@ void QTReaderApp::showEditTools()
2533 regBar->show(); 3004 regBar->show();
2534 } 3005 }
2535 if (m_fontVisible) m_fontBar->show(); 3006 if (m_fontVisible) m_fontBar->show();
2536// odebug << "sn" << oendl; 3007 //qDebug("sn");
2537 showNormal(); 3008 showNormal();
2538// odebug << "sm" << oendl; 3009 //qDebug("sm");
2539#ifdef USEQPE 3010#ifdef USEQPE
2540 showMaximized(); 3011 showMaximized();
2541#endif 3012#endif
2542// setCentralWidget(reader); 3013// setCentralWidget(reader);
2543 } 3014 }
2544 3015
2545// odebug << "uc" << oendl; 3016 // qDebug("uc");
2546 updateCaption(); 3017 updateCaption();
2547// odebug << "rw" << oendl; 3018 // qDebug("rw");
2548 editorStack->raiseWidget( reader ); 3019 editorStack->raiseWidget( reader );
2549// odebug << "sf" << oendl; 3020 // qDebug("sf");
2550 reader->setFocus(); 3021 reader->setFocus();
2551 reader->refresh(); 3022 // qDebug("ref");
3023 reader->refresh(true);
3024 // qDebug("done");
2552} 3025}
2553/* 3026/*
2554void QTReaderApp::save() 3027void QTReaderApp::save()
@@ -2601,13 +3074,12 @@ void QTReaderApp::updateCaption()
2601// QString s = doc->name(); 3074// QString s = doc->name();
2602// if ( s.isEmpty() ) 3075// if ( s.isEmpty() )
2603// s = tr( "Unnamed" ); 3076// s = tr( "Unnamed" );
2604 setCaption( reader->m_string + " - " + tr("Reader") ); 3077 setCaption( reader->m_string + " - " + tr(SHORTPROGNAME) );
2605// } 3078// }
2606} 3079}
2607 3080
2608void QTReaderApp::setDocument(const QString& fileref) 3081void QTReaderApp::setDocument(const QString& fileref)
2609{ 3082{
2610 bFromDocView = TRUE;
2611//QMessageBox::information(0, "setDocument", fileref); 3083//QMessageBox::information(0, "setDocument", fileref);
2612 openFile(fileref); 3084 openFile(fileref);
2613// showEditTools(); 3085// showEditTools();
@@ -2615,12 +3087,17 @@ void QTReaderApp::setDocument(const QString& fileref)
2615 3087
2616void QTReaderApp::closeEvent( QCloseEvent *e ) 3088void QTReaderApp::closeEvent( QCloseEvent *e )
2617{ 3089{
2618// odebug << "Close event" << oendl; 3090// qDebug("Close event");
2619 if (m_fullscreen) 3091 if (m_fullscreen)
2620 { 3092 {
2621 m_fullscreen = false; 3093 m_fullscreen = false;
2622 showEditTools(); 3094 showEditTools();
2623 e->accept(); 3095 e->ignore();
3096 }
3097 else if (editorStack->visibleWidget() == m_buttonprefs)
3098 {
3099 m_buttonprefs->mapkey(Qt::NoButton, Key_Escape);
3100 e->ignore();
2624 } 3101 }
2625 else if (m_dontSave) 3102 else if (m_dontSave)
2626 { 3103 {
@@ -2630,9 +3107,9 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
2630 { 3107 {
2631 if (editorStack->visibleWidget() == reader) 3108 if (editorStack->visibleWidget() == reader)
2632 { 3109 {
2633 if ((m_escapeTarget != cesNone) && m_bcloseDisabled) 3110 if ((kmap.find(orKey(Qt::NoButton,Key_Escape,false)) != kmap.end()) && m_bcloseDisabled)
2634 { 3111 {
2635// odebug << "Close disabled" << oendl; 3112 //qDebug("Close disabled");
2636 m_bcloseDisabled = false; 3113 m_bcloseDisabled = false;
2637 e->ignore(); 3114 e->ignore();
2638 } 3115 }
@@ -2642,6 +3119,8 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
2642 { 3119 {
2643 m_fontBar->hide(); 3120 m_fontBar->hide();
2644 m_fontVisible = false; 3121 m_fontVisible = false;
3122 e->ignore();
3123 return;
2645 } 3124 }
2646 if (regVisible) 3125 if (regVisible)
2647 { 3126 {
@@ -2650,6 +3129,7 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
2650 Global::hideInputMethod(); 3129 Global::hideInputMethod();
2651#endif 3130#endif
2652 regVisible = false; 3131 regVisible = false;
3132 e->ignore();
2653 return; 3133 return;
2654 } 3134 }
2655 if (searchVisible) 3135 if (searchVisible)
@@ -2659,6 +3139,7 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
2659 Global::hideInputMethod(); 3139 Global::hideInputMethod();
2660#endif 3140#endif
2661 searchVisible = false; 3141 searchVisible = false;
3142 e->ignore();
2662 return; 3143 return;
2663 } 3144 }
2664 if (m_fBkmksChanged && pBkmklist != NULL) 3145 if (m_fBkmksChanged && pBkmklist != NULL)
@@ -2666,10 +3147,9 @@ void QTReaderApp::closeEvent( QCloseEvent *e )
2666 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) 3147 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0)
2667 savebkmks(); 3148 savebkmks();
2668 delete pBkmklist; 3149 delete pBkmklist;
2669 pBkmklist = NULL; 3150 reader->pBkmklist = pBkmklist = NULL;
2670 m_fBkmksChanged = false; 3151 m_fBkmksChanged = false;
2671 } 3152 }
2672 bFromDocView = FALSE;
2673 updatefileinfo(); 3153 updatefileinfo();
2674 saveprefs(); 3154 saveprefs();
2675 e->accept(); 3155 e->accept();
@@ -2710,7 +3190,7 @@ bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab)
2710 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) 3190 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++)
2711 { 3191 {
2712#ifdef _UNICODE 3192#ifdef _UNICODE
2713// odebug << "Item:" << toQString(i->name()) << "" << oendl; 3193 // qDebug("Item:%s", (const char*)toQString(i->name()));
2714 bkmkselector->insertItem(toQString(i->name())); 3194 bkmkselector->insertItem(toQString(i->name()));
2715#else 3195#else
2716 bkmkselector->insertItem(i->name()); 3196 bkmkselector->insertItem(i->name());
@@ -2739,9 +3219,9 @@ void QTReaderApp::do_regedit()
2739{ 3219{
2740// fileBar->hide(); 3220// fileBar->hide();
2741 reader->bDoUpdates = false; 3221 reader->bDoUpdates = false;
2742// odebug << "Showing regbar" << oendl; 3222// qDebug("Showing regbar");
2743 regBar->show(); 3223 regBar->show();
2744// odebug << "Showing kbd" << oendl; 3224// qDebug("Showing kbd");
2745#ifdef USEQPE 3225#ifdef USEQPE
2746 Global::showInputMethod(); 3226 Global::showInputMethod();
2747#endif 3227#endif
@@ -2757,10 +3237,10 @@ bool QTReaderApp::openfrombkmk(Bkmk* bk)
2757 QString fn = toQString( 3237 QString fn = toQString(
2758 CFiledata(bk->anno()).name() 3238 CFiledata(bk->anno()).name()
2759 ); 3239 );
2760// odebug << "fileinfo" << oendl; 3240 //qDebug("fileinfo");
2761 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 3241 if (!fn.isEmpty() && QFileInfo(fn).isFile())
2762 { 3242 {
2763// odebug << "Opening" << oendl; 3243 //qDebug("Opening");
2764 openFile(fn); 3244 openFile(fn);
2765 struct stat fnstat; 3245 struct stat fnstat;
2766 stat((const char *)reader->m_lastfile, &fnstat); 3246 stat((const char *)reader->m_lastfile, &fnstat);
@@ -2782,7 +3262,7 @@ bool QTReaderApp::openfrombkmk(Bkmk* bk)
2782 { 3262 {
2783 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); 3263 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?");
2784 } 3264 }
2785// odebug << "updating" << oendl; 3265 // qDebug("updating");
2786// showEditTools(); 3266// showEditTools();
2787 reader->locate(bk->value()); 3267 reader->locate(bk->value());
2788 } 3268 }
@@ -2796,6 +3276,7 @@ bool QTReaderApp::openfrombkmk(Bkmk* bk)
2796 3276
2797void QTReaderApp::gotobkmk(int ind) 3277void QTReaderApp::gotobkmk(int ind)
2798{ 3278{
3279 qDebug("gbkmk");
2799 showEditTools(); 3280 showEditTools();
2800 switch (m_nBkmkAction) 3281 switch (m_nBkmkAction)
2801 { 3282 {
@@ -2810,12 +3291,14 @@ void QTReaderApp::gotobkmk(int ind)
2810 } 3291 }
2811 break; 3292 break;
2812 case cGotoBkmk: 3293 case cGotoBkmk:
3294 reader->buffdoc.saveposn(reader->m_lastfile, reader->pagelocate());
2813 reader->locate((*pBkmklist)[ind]->value()); 3295 reader->locate((*pBkmklist)[ind]->value());
2814 break; 3296 break;
2815 case cDelBkmk: 3297 case cDelBkmk:
2816//// odebug << "Deleting:" << (*pBkmklist)[ind]->name() << "\n" << oendl; 3298 //// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name());
2817 pBkmklist->erase(ind); 3299 pBkmklist->erase(ind);
2818 m_fBkmksChanged = true; 3300 m_fBkmksChanged = true;
3301 reader->refresh(true);
2819// pBkmklist->sort(); 3302// pBkmklist->sort();
2820 break; 3303 break;
2821 case cRmBkmkFile: 3304 case cRmBkmkFile:
@@ -2830,7 +3313,12 @@ void QTReaderApp::gotobkmk(int ind)
2830 } 3313 }
2831 break; 3314 break;
2832 case cLdConfig: 3315 case cLdConfig:
2833 readconfig(bkmkselector->text(ind), false); 3316 readconfig(APPDIR "/configs", bkmkselector->text(ind), false);
3317 break;
3318 case cLdTheme:
3319 m_themename = bkmkselector->text(ind);
3320 readconfig(QString(APPDIR "/Themes/")+m_themename , "config", false);
3321 setBackgroundBitmap();
2834 break; 3322 break;
2835 case cRmConfig: 3323 case cRmConfig:
2836 { 3324 {
@@ -2881,6 +3369,29 @@ void QTReaderApp::gotobkmk(int ind)
2881 if (fin != NULL) 3369 if (fin != NULL)
2882 { 3370 {
2883 bool allok = false; 3371 bool allok = false;
3372#ifdef OPIE
3373 QString outfile = OFileDialog::getSaveFileName(OFileSelector::EXTENDED_ALL, QString::null, QString::null, MimeTypes(), 0, "OpieReader");
3374 if (!outfile.isEmpty())
3375 {
3376 FILE* fout = fopen((const char *)outfile, "w");
3377 if (fout != NULL)
3378 {
3379 fprintf(fout, "<html><body>\n");
3380 int ch = 0;
3381 while ((ch = fgetc(fin)) != EOF)
3382 {
3383 fputc(ch, fout);
3384 }
3385 fprintf(fout, "</html></body>\n");
3386 fclose(fout);
3387 allok = true;
3388 }
3389 else
3390 QMessageBox::information(this, PROGNAME, "Couldn't open output");
3391 }
3392 fclose(fin);
3393 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)));
3394#else
2884 fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null); 3395 fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null);
2885 if (fb->exec()) 3396 if (fb->exec())
2886 { 3397 {
@@ -2904,6 +3415,7 @@ void QTReaderApp::gotobkmk(int ind)
2904 delete fb; 3415 delete fb;
2905 fclose(fin); 3416 fclose(fin);
2906 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); 3417 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)));
3418#endif
2907 } 3419 }
2908 else 3420 else
2909 { 3421 {
@@ -2913,7 +3425,7 @@ void QTReaderApp::gotobkmk(int ind)
2913/* 3425/*
2914 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE ); 3426 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE );
2915 int ret = f->exec(); 3427 int ret = f->exec();
2916 odebug << "Return:" << ret << "" << oendl; 3428 qDebug("Return:%d", ret);
2917 DocLnk* doc = f->getDoc(); 3429 DocLnk* doc = f->getDoc();
2918 if (doc != NULL) 3430 if (doc != NULL)
2919 { 3431 {
@@ -2933,11 +3445,11 @@ void QTReaderApp::gotobkmk(int ind)
2933 } 3445 }
2934 FileManager fm; 3446 FileManager fm;
2935 fm.saveFile( *doc, rt ); 3447 fm.saveFile( *doc, rt );
2936 odebug << "YES" << oendl; 3448 qDebug("YES");
2937 } 3449 }
2938 else 3450 else
2939 { 3451 {
2940 odebug << "NO" << oendl; 3452 qDebug("NO");
2941 } 3453 }
2942 delete f; 3454 delete f;
2943*/ 3455*/
@@ -2958,6 +3470,23 @@ void QTReaderApp::cancelbkmk()
2958 showEditTools(); 3470 showEditTools();
2959} 3471}
2960 3472
3473void QTReaderApp::reparastring()
3474{
3475 m_nRegAction = cRepara;
3476 regEdit->setText(reader->m_reparastring);
3477 do_regedit();
3478}
3479
3480void QTReaderApp::do_reparastring(const QString& _lcn)
3481{
3482 reader->m_reparastring = _lcn;
3483 if (reader->brepara)
3484 {
3485 reader->bDoUpdates = true;
3486 reader->setfilter(reader->getfilter());
3487 }
3488}
3489
2961void QTReaderApp::jump() 3490void QTReaderApp::jump()
2962{ 3491{
2963 m_nRegAction = cJump; 3492 m_nRegAction = cJump;
@@ -2967,14 +3496,40 @@ void QTReaderApp::jump()
2967 do_regedit(); 3496 do_regedit();
2968} 3497}
2969 3498
2970void QTReaderApp::do_jump(const QString& lcn) 3499void QTReaderApp::do_jump(const QString& _lcn)
2971{ 3500{
2972 bool ok; 3501 bool ok;
3502 QString lcn = _lcn.stripWhiteSpace();
2973 unsigned long ulcn = lcn.toULong(&ok); 3503 unsigned long ulcn = lcn.toULong(&ok);
3504 if (!ok)
3505 {
3506 double pc = 0.0;
3507#ifdef _WINDOWS
3508 if (lcn.at(lcn.length()-1) == '%')
3509#else
3510 if (lcn[lcn.length()-1] == '%')
3511#endif
3512 {
3513 lcn = lcn.left(lcn.length()-1);
3514 pc = lcn.toDouble(&ok);
3515 }
3516 else
3517 {
3518 pc = lcn.toDouble(&ok);
3519 }
3520 if (ok && 0 <= pc && pc <= 100)
3521 {
3522 ulcn = (pc*(reader->buffdoc.endSection()-reader->buffdoc.startSection()))/100 + reader->buffdoc.startSection();
3523 }
3524 else
3525 {
3526 ok = false;
3527 }
3528 }
2974 if (ok) 3529 if (ok)
2975 reader->locate(ulcn); 3530 reader->locate(ulcn);
2976 else 3531 else
2977 QMessageBox::information(this, PROGNAME, "Must be a number"); 3532 QMessageBox::information(this, PROGNAME, "Must be a number\nor a percentage");
2978} 3533}
2979 3534
2980void QTReaderApp::do_regaction() 3535void QTReaderApp::do_regaction()
@@ -2993,6 +3548,9 @@ void QTReaderApp::do_regaction()
2993 case cAddBkmk: 3548 case cAddBkmk:
2994 do_addbkmk(regEdit->text()); 3549 do_addbkmk(regEdit->text());
2995 break; 3550 break;
3551 case cRepara:
3552 do_reparastring(regEdit->text());
3553 break;
2996 case cJump: 3554 case cJump:
2997 do_jump(regEdit->text()); 3555 do_jump(regEdit->text());
2998 break; 3556 break;
@@ -3010,7 +3568,7 @@ void QTReaderApp::do_regaction()
3010 break; 3568 break;
3011#endif 3569#endif
3012 case cSetConfigName: 3570 case cSetConfigName:
3013// odebug << "Saving config" << oendl; 3571 // qDebug("Saving config");
3014 do_saveconfig(regEdit->text(), false); 3572 do_saveconfig(regEdit->text(), false);
3015 break; 3573 break;
3016 } 3574 }
@@ -3060,11 +3618,7 @@ void QTReaderApp::setfont()
3060{ 3618{
3061 m_fontSelector->clear(); 3619 m_fontSelector->clear();
3062 { 3620 {
3063#ifdef USEQPE
3064 FontDatabase f;
3065#else
3066 QFontDatabase f; 3621 QFontDatabase f;
3067#endif
3068 QStringList flist = f.families(); 3622 QStringList flist = f.families();
3069 m_fontSelector->insertStringList(flist); 3623 m_fontSelector->insertStringList(flist);
3070 } // delete the FontDatabase!!! 3624 } // delete the FontDatabase!!!
@@ -3102,7 +3656,7 @@ void QTReaderApp::setfontHelper(const QString& lcn, int size)
3102 3656
3103void QTReaderApp::do_setencoding(int i) 3657void QTReaderApp::do_setencoding(int i)
3104{ 3658{
3105// odebug << "setencoding:" << i << "" << oendl; 3659 qDebug("setencoding:%d", i);
3106 if (m_fontAction == cChooseEncoding) 3660 if (m_fontAction == cChooseEncoding)
3107 { 3661 {
3108 reader->setencoding(i); 3662 reader->setencoding(i);
@@ -3110,9 +3664,9 @@ void QTReaderApp::do_setencoding(int i)
3110 reader->refresh(); 3664 reader->refresh();
3111 m_fontBar->hide(); 3665 m_fontBar->hide();
3112 m_fontVisible = false; 3666 m_fontVisible = false;
3113// odebug << "showedit" << oendl; 3667// qDebug("showedit");
3114 if (reader->isVisible()) showEditTools(); 3668 if (reader->isVisible()) showEditTools();
3115// odebug << "showeditdone" << oendl; 3669// qDebug("showeditdone");
3116} 3670}
3117 3671
3118void QTReaderApp::do_setfont(const QString& lcn) 3672void QTReaderApp::do_setfont(const QString& lcn)
@@ -3124,22 +3678,22 @@ void QTReaderApp::do_setfont(const QString& lcn)
3124 reader->refresh(); 3678 reader->refresh();
3125 m_fontBar->hide(); 3679 m_fontBar->hide();
3126 m_fontVisible = false; 3680 m_fontVisible = false;
3127// odebug << "showedit" << oendl; 3681 // qDebug("setfont");
3128 //if (reader->isVisible()) 3682 //if (reader->isVisible())
3129 showEditTools(); 3683 showEditTools();
3130// odebug << "showeditdone" << oendl; 3684// qDebug("showeditdone");
3131} 3685}
3132 3686
3133void QTReaderApp::do_autogen(const QString& regText) 3687void QTReaderApp::do_autogen(const QString& regText)
3134{ 3688{
3135 unsigned long fs, ts; 3689 unsigned long fs, ts;
3136 reader->sizes(fs,ts); 3690 reader->sizes(fs,ts);
3137// // odebug << "Reg:" << (const tchar*)(regEdit->text()) << "\n" << oendl; 3691// // qDebug("Reg:%s\n", (const tchar*)(regEdit->text()));
3138 m_autogenstr = regText; 3692 m_autogenstr = regText;
3139 QRegExp re(regText); 3693 QRegExp re(regText);
3140 CBuffer buff; 3694 CBuffer buff;
3141 if (pBkmklist != NULL) delete pBkmklist; 3695 if (pBkmklist != NULL) delete pBkmklist;
3142 pBkmklist = new CList<Bkmk>; 3696 reader->pBkmklist = pBkmklist = new CList<Bkmk>;
3143 m_fBkmksChanged = true; 3697 m_fBkmksChanged = true;
3144 3698
3145 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height()); 3699 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height());
@@ -3181,92 +3735,18 @@ void QTReaderApp::do_autogen(const QString& regText)
3181 3735
3182void QTReaderApp::saveprefs() 3736void QTReaderApp::saveprefs()
3183{ 3737{
3184// odebug << "saveprefs" << oendl;
3185// reader->saveprefs("uqtreader");
3186// if (!m_loadedconfig)
3187 do_saveconfig( APPDIR, true ); 3738 do_saveconfig( APPDIR, true );
3188
3189/*
3190 Config config( APPDIR );
3191 config.setGroup( "View" );
3192
3193 reader->m_lastposn = reader->pagelocate();
3194
3195 config.writeEntry("FloatDialogs", m_bFloatingDialog);
3196 config.writeEntry( "StripCr", reader->bstripcr );
3197 config.writeEntry( "AutoFmt", reader->bautofmt );
3198 config.writeEntry( "TextFmt", reader->btextfmt );
3199 config.writeEntry( "StripHtml", reader->bstriphtml );
3200 config.writeEntry( "Dehyphen", reader->bdehyphen );
3201 config.writeEntry( "Depluck", reader->bdepluck );
3202 config.writeEntry( "Dejpluck", reader->bdejpluck );
3203 config.writeEntry( "OneSpace", reader->bonespace );
3204 config.writeEntry( "Unindent", reader->bunindent );
3205 config.writeEntry( "Repara", reader->brepara );
3206 config.writeEntry( "DoubleSpace", reader->bdblspce );
3207 config.writeEntry( "Indent", reader->bindenter );
3208 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) );
3209 config.writeEntry( "ScrollDelay", reader->m_delay);
3210 config.writeEntry( "LastFile", reader->m_lastfile );
3211 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) );
3212 config.writeEntry( "PageMode", reader->m_bpagemode );
3213 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced );
3214 config.writeEntry( "SwapMouse", reader->m_swapmouse);
3215 config.writeEntry( "Fontname", reader->m_fontname );
3216 config.writeEntry( "Encoding", reader->m_encd );
3217 config.writeEntry( "CharSpacing", reader->m_charpc );
3218 config.writeEntry( "Overlap", (int)(reader->m_overlap) );
3219 config.writeEntry( "Margin", (int)reader->m_border );
3220 config.writeEntry( "TargetApp", m_targetapp );
3221 config.writeEntry( "TargetMsg", m_targetmsg );
3222#ifdef _SCROLLPIPE
3223 config.writeEntry( "PipeTarget", reader->m_pipetarget );
3224 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
3225#endif
3226 config.writeEntry( "TwoTouch", m_twoTouch );
3227 config.writeEntry( "Annotation", m_doAnnotation);
3228 config.writeEntry( "Dictionary", m_doDictionary);
3229 config.writeEntry( "Clipboard", m_doClipboard);
3230 config.writeEntry( "SpaceTarget", m_spaceTarget);
3231 config.writeEntry( "EscapeTarget", m_escapeTarget);
3232 config.writeEntry( "ReturnTarget", m_returnTarget);
3233 config.writeEntry( "LeftTarget", m_leftTarget);
3234 config.writeEntry( "RightTarget", m_rightTarget);
3235 config.writeEntry( "UpTarget", m_upTarget);
3236 config.writeEntry( "DownTarget", m_downTarget);
3237 config.writeEntry("LeftScroll", m_leftScroll);
3238 config.writeEntry("RightScroll", m_rightScroll);
3239 config.writeEntry("UpScroll", m_upScroll);
3240 config.writeEntry("DownScroll", m_downScroll);
3241#ifdef REPALM
3242 config.writeEntry( "Repalm", reader->brepalm );
3243#endif
3244 config.writeEntry( "Remap", reader->bremap );
3245 config.writeEntry( "Peanut", reader->bpeanut );
3246 config.writeEntry( "MakeBold", reader->bmakebold );
3247 config.writeEntry( "Continuous", reader->m_continuousDocument );
3248 config.writeEntry( "FullJust", reader->bfulljust );
3249 config.writeEntry( "ExtraSpace", reader->getextraspace() );
3250 config.writeEntry( "ExtraLead", reader->getlead() );
3251 config.writeEntry( "Basesize", (int)reader->getBaseSize());
3252 config.writeEntry( "RequestorFontChange", m_propogatefontchange);
3253
3254 config.setGroup( "Toolbar" );
3255 config.writeEntry("Movable", m_tbmovesave);
3256 config.writeEntry("Policy", m_tbpolsave);
3257 config.writeEntry("Position", m_tbposition);
3258*/
3259 savefilelist(); 3739 savefilelist();
3260} 3740}
3261 3741
3262/* 3742/*
3263void QTReaderApp::oldFile() 3743void QTReaderApp::oldFile()
3264{ 3744{
3265// odebug << "oldFile called" << oendl; 3745// qDebug("oldFile called");
3266 reader->setText(true); 3746 reader->setText(true);
3267// odebug << "settext called" << oendl; 3747// qDebug("settext called");
3268 showEditTools(); 3748 showEditTools();
3269// odebug << "showedit called" << oendl; 3749// qDebug("showedit called");
3270} 3750}
3271*/ 3751*/
3272 3752
@@ -3323,9 +3803,9 @@ void QTReaderApp::savebkmks()
3323 QDir d = QDir::home(); // "/" 3803 QDir d = QDir::home(); // "/"
3324 d.cd(APPDIR); 3804 d.cd(APPDIR);
3325 QFileInfo fi(d, reader->m_string); 3805 QFileInfo fi(d, reader->m_string);
3326 BkmkFile bf((const char *)fi.absFilePath(), true); 3806 BkmkFile bf((const char *)fi.absFilePath(), true, true);
3327#else /* USEQPE */ 3807#else /* USEQPE */
3328 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true); 3808 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true, true);
3329#endif /* USEQPE */ 3809#endif /* USEQPE */
3330 bf.write(*pBkmklist); 3810 bf.write(*pBkmklist);
3331 } 3811 }
@@ -3338,14 +3818,14 @@ void QTReaderApp::readfilelist()
3338 QDir d = QDir::home(); // "/" 3818 QDir d = QDir::home(); // "/"
3339 d.cd(APPDIR); 3819 d.cd(APPDIR);
3340 QFileInfo fi(d, ".openfiles"); 3820 QFileInfo fi(d, ".openfiles");
3341 BkmkFile bf((const char *)fi.absFilePath()); 3821 BkmkFile bf((const char *)fi.absFilePath(), false, false);
3342#else /* USEQPE */ 3822#else /* USEQPE */
3343 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles")); 3823 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), false, false);
3344#endif /* USEQPE */ 3824#endif /* USEQPE */
3345// odebug << "Reading open files" << oendl; 3825// qDebug("Reading open files");
3346 pOpenlist = bf.readall(); 3826 pOpenlist = bf.readall();
3347// if (pOpenlist != NULL) odebug << "...with success" << oendl; 3827// if (pOpenlist != NULL) qDebug("...with success");
3348// else odebug << "...without success!" << oendl; 3828// else qDebug("...without success!");
3349} 3829}
3350 3830
3351void QTReaderApp::savefilelist() 3831void QTReaderApp::savefilelist()
@@ -3356,11 +3836,11 @@ void QTReaderApp::savefilelist()
3356 QDir d = QDir::home(); // "/" 3836 QDir d = QDir::home(); // "/"
3357 d.cd(APPDIR); 3837 d.cd(APPDIR);
3358 QFileInfo fi(d, ".openfiles"); 3838 QFileInfo fi(d, ".openfiles");
3359 BkmkFile bf((const char *)fi.absFilePath(), true); 3839 BkmkFile bf((const char *)fi.absFilePath(), true, false);
3360#else /* USEQPE */ 3840#else /* USEQPE */
3361 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true); 3841 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true, false);
3362#endif /* USEQPE */ 3842#endif /* USEQPE */
3363// odebug << "Writing open files" << oendl; 3843 //qDebug("Writing open files");
3364 bf.write(*pOpenlist); 3844 bf.write(*pOpenlist);
3365 } 3845 }
3366} 3846}
@@ -3399,16 +3879,16 @@ void QTReaderApp::readbkmks()
3399 } 3879 }
3400 3880
3401#ifndef USEQPE 3881#ifndef USEQPE
3402 BkmkFile bf((const char *)fi.absFilePath()); 3882 BkmkFile bf((const char *)fi.absFilePath(), false, true);
3403#else /* USEQPE */ 3883#else /* USEQPE */
3404 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string)); 3884 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), false, true);
3405#endif /* USEQPE */ 3885#endif /* USEQPE */
3406 3886
3407 pBkmklist = bf.readall(); 3887 reader->pBkmklist = pBkmklist = bf.readall();
3408 m_fBkmksChanged = bf.upgraded(); 3888 m_fBkmksChanged = bf.upgraded();
3409 if (pBkmklist == NULL) 3889 if (pBkmklist == NULL)
3410 { 3890 {
3411 pBkmklist = reader->getbkmklist(); 3891 reader->pBkmklist = pBkmklist = reader->getbkmklist();
3412 } 3892 }
3413 if (pBkmklist != NULL) 3893 if (pBkmklist != NULL)
3414 pBkmklist->sort(); 3894 pBkmklist->sort();
@@ -3429,7 +3909,7 @@ void QTReaderApp::do_addbkmk(const QString& text)
3429 } 3909 }
3430 else 3910 else
3431 { 3911 {
3432 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; 3912 if (pBkmklist == NULL) reader->pBkmklist = pBkmklist = new CList<Bkmk>;
3433#ifdef _UNICODE 3913#ifdef _UNICODE
3434 CBuffer buff; 3914 CBuffer buff;
3435 int i = 0; 3915 int i = 0;
@@ -3444,9 +3924,75 @@ void QTReaderApp::do_addbkmk(const QString& text)
3444#endif 3924#endif
3445 m_fBkmksChanged = true; 3925 m_fBkmksChanged = true;
3446 pBkmklist->sort(); 3926 pBkmklist->sort();
3927 reader->refresh(true);
3447 } 3928 }
3448} 3929}
3449 3930
3931void QTReaderApp::UpdateStatus()
3932{
3933 QString status;
3934 for (int i = 0; i < m_statusstring.length(); i++)
3935 {
3936 if (m_statusstring[i].unicode() == '%')
3937 {
3938 i++;
3939 if (i < m_statusstring.length())
3940 {
3941 switch (m_statusstring[i].unicode())
3942 {
3943 case 'F':
3944 {
3945 unsigned long fs,ts;
3946 reader->sizes(fs,ts);
3947 status += filesize(ts);
3948 }
3949 break;
3950 case 'f':
3951 {
3952 status += filesize(reader->pagelocate());
3953 }
3954 break;
3955 case 'D':
3956 {
3957 status += filesize(reader->buffdoc.endSection()-reader->buffdoc.startSection());
3958 }
3959 break;
3960 case 'd':
3961 {
3962 status += filesize(reader->pagelocate()-reader->buffdoc.startSection());
3963 }
3964 break;
3965 case 'P':
3966 {
3967 unsigned long fs,ts;
3968 reader->sizes(fs,ts);
3969 status += percent(reader->pagelocate(),ts);
3970 }
3971 break;
3972 case 'p':
3973 {
3974 status += percent(reader->pagelocate()-reader->buffdoc.startSection(),reader->buffdoc.endSection()-reader->buffdoc.startSection());
3975 }
3976 break;
3977 case 'z':
3978 {
3979 // qDebug("case d");
3980 status += QString().setNum(reader->m_fontControl.currentsize()*10);
3981 }
3982 break;
3983 default:
3984 status += m_statusstring[i];
3985 }
3986 }
3987 }
3988 else
3989 {
3990 status += m_statusstring[i];
3991 }
3992 }
3993 m_prog->setText(status);
3994}
3995
3450void QTReaderApp::OnRedraw() 3996void QTReaderApp::OnRedraw()
3451{ 3997{
3452 if ((pBkmklist != NULL) && (m_bkmkAvail != NULL)) 3998 if ((pBkmklist != NULL) && (m_bkmkAvail != NULL))
@@ -3454,23 +4000,40 @@ void QTReaderApp::OnRedraw()
3454 bool found = findNextBookmark(reader->pagelocate()); 4000 bool found = findNextBookmark(reader->pagelocate());
3455 m_bkmkAvail->setEnabled(found); 4001 m_bkmkAvail->setEnabled(found);
3456 } 4002 }
4003 if (m_scrollbar != NULL)
4004 {
4005 //qDebug("OnRedraw:[%u, %u]", reader->buffdoc.startSection(), reader->buffdoc.endSection());
4006 scrollbar->setRange(reader->buffdoc.startSection(), reader->buffdoc.endSection()-1);
4007 scrollbar->setPageStep(reader->locate()-reader->pagelocate());
4008 scrollbar->setValue((reader->m_rotated) ?
4009 (reader->buffdoc.endSection() - reader->locate()+reader->buffdoc.startSection()) :
4010 reader->pagelocate());
4011 }
4012 if (m_prog->isVisible())
4013 {
4014 // qDebug("updating status");
4015 UpdateStatus();
4016 // qDebug("updated status");
4017 }
3457} 4018}
3458 4019
3459void QTReaderApp::showAnnotation() 4020void QTReaderApp::showAnnotation()
3460{ 4021{
3461 m_annoWin->setName(toQString(m_anno->name())); 4022 m_annoWin->setName(toQString(m_anno->name()));
3462 m_annoWin->setAnno(toQString(m_anno->anno())); 4023 m_annoWin->setAnno(toQString(m_anno->anno()));
4024 m_annoWin->setColor(QColor(m_anno->red(), m_anno->green(), m_anno->blue()));
3463 m_annoIsEditing = false; 4025 m_annoIsEditing = false;
3464#ifdef USEQPE 4026#ifdef USEQPE
3465 Global::showInputMethod(); 4027 Global::showInputMethod();
3466#endif 4028#endif
3467 editorStack->raiseWidget( m_annoWin ); 4029 editorStack->raiseWidget( m_annoWin );
4030 hidetoolbars();
3468 m_annoWin->setFocus(); 4031 m_annoWin->setFocus();
3469} 4032}
3470 4033
3471void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line) 4034void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2, const QString& line)
3472{ 4035{
3473//// odebug << "OnWordSelected(" << posn << "):" << wrd << "" << oendl; 4036//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd);
3474 4037
3475 if (m_doClipboard) 4038 if (m_doClipboard)
3476 { 4039 {
@@ -3493,11 +4056,13 @@ void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString&
3493 m_annoWin->setName(line); 4056 m_annoWin->setName(line);
3494 m_annoWin->setAnno(""); 4057 m_annoWin->setAnno("");
3495 m_annoWin->setPosn(posn); 4058 m_annoWin->setPosn(posn);
4059 m_annoWin->setPosn2(posn2);
3496 m_annoIsEditing = true; 4060 m_annoIsEditing = true;
3497#ifdef USEQPE 4061#ifdef USEQPE
3498 Global::showInputMethod(); 4062 Global::showInputMethod();
3499#endif 4063#endif
3500 editorStack->raiseWidget( m_annoWin ); 4064 editorStack->raiseWidget( m_annoWin );
4065 hidetoolbars();
3501 } 4066 }
3502#ifdef USEQPE 4067#ifdef USEQPE
3503 if (m_doDictionary) 4068 if (m_doDictionary)
@@ -3511,20 +4076,105 @@ void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString&
3511#endif 4076#endif
3512} 4077}
3513 4078
3514void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e) 4079void QTReaderApp::doAction(QKeyEvent* e)
4080{
4081 QMap<orKey,int>::Iterator f = kmap.end();
4082
4083 if (reader->m_autoScroll)
3515{ 4084{
3516 if (a == 0) 4085 f = kmap.find(orKey(e->state(), e->key(), true));
4086 }
4087 if (f == kmap.end())
4088 {
4089 f = kmap.find(orKey(e->state(), e->key(), false));
4090 }
4091
4092 if (f == kmap.end())
3517 { 4093 {
4094 qDebug("doaction (no action) : %d %d %d", e->key(), e->state(), f.data());
3518 e->ignore(); 4095 e->ignore();
3519 } 4096 }
3520 else 4097 else
3521 { 4098 {
4099 qDebug("doaction (some action) : %d %d %d", e->key(), e->state(), f.data());
4100 ActionTypes a = (ActionTypes)f.data();
3522 e->accept(); 4101 e->accept();
3523// odebug << "Accepted" << oendl; 4102 //qDebug("Accepted");
3524 switch (a) 4103 switch (a)
3525 { 4104 {
4105 case cesGotoLink:
4106 {
4107 reader->gotoLink();
4108 }
4109 break;
4110 case cesNextLink:
4111 {
4112 reader->getNextLink();
4113 }
4114 break;
4115 case cesInvertColours:
4116 m_inverse_action->setOn(!reader->bInverse);
4117 break;
4118 case cesToggleBars:
4119 m_hidebars = !m_hidebars;
4120 if (m_hidebars)
4121 {
4122#ifdef USEQPE
4123 menubar->hide();
4124#endif
4125 if (fileBar != NULL) fileBar->hide();
4126 if (viewBar != NULL) viewBar->hide();
4127 if (navBar != NULL) navBar->hide();
4128 if (markBar != NULL) markBar->hide();
4129 mb->hide();
4130 }
4131 else
4132 {
4133#ifdef USEQPE
4134 menubar->show();
4135#endif
4136 if (fileBar != NULL) fileBar->show();
4137 if (viewBar != NULL) viewBar->show();
4138 if (navBar != NULL) navBar->show();
4139 if (markBar != NULL) markBar->show();
4140 mb->show();
4141 }
4142 break;
4143 case cesToggleScrollBar:
4144 if (m_scrollbar != NULL)
4145 {
4146 if (m_scrollbar->isHidden())
4147 {
4148 m_scrollishidden = false;
4149 m_scrollbar->show();
4150 reader->m_scrollpos = (m_qtscroll == 0) ? m_localscroll : 0;
4151 }
4152 else
4153 {
4154 m_scrollishidden = true;
4155 m_scrollbar->hide();
4156 reader->m_scrollpos = m_localscroll;
4157 }
4158 }
4159 break;
4160 case cesToggleStatusBar:
4161 if (m_prog != NULL)
4162 {
4163 if (m_prog->isHidden())
4164 {
4165 m_statusishidden = false;
4166 m_prog->show();
4167 }
4168 else
4169 {
4170 m_statusishidden = true;
4171 m_prog->hide();
4172 }
4173 }
4174 break;
3526 case cesOpenFile: 4175 case cesOpenFile:
3527 { 4176 {
4177 qDebug("Open file");
3528 fileOpen(); 4178 fileOpen();
3529 } 4179 }
3530 break; 4180 break;
@@ -3544,6 +4194,11 @@ void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3544 m_actFullscreen->setOn(!m_fullscreen); 4194 m_actFullscreen->setOn(!m_fullscreen);
3545 } 4195 }
3546 break; 4196 break;
4197 case cesRotate:
4198 {
4199 m_rotate_action->setOn(!reader->m_rotated);
4200 }
4201 break;
3547 case cesActionAnno: 4202 case cesActionAnno:
3548 { 4203 {
3549 addanno(); 4204 addanno();
@@ -3566,9 +4221,30 @@ void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3566 break; 4221 break;
3567 case cesPageUp: 4222 case cesPageUp:
3568 reader->dopageup(); 4223 reader->dopageup();
4224 /*
4225 ftime(&m_lastkeytime);
4226 m_fndelay = m_debounce;
4227 //
4228 {
4229 timeb now;
4230 ftime(&now);
4231 m_fndelay = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm+100;
4232 }
4233 */
3569 break; 4234 break;
3570 case cesPageDown: 4235 case cesPageDown:
3571 reader->dopagedn(); 4236 reader->dopagedn();
4237 /*
4238 ftime(&m_lastkeytime);
4239 m_fndelay = m_debounce;
4240 //
4241 if (m_debounce != 0)
4242 {
4243 timeb now;
4244 ftime(&now);
4245 m_fndelay = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm+10;
4246 }
4247 */
3572 break; 4248 break;
3573 case cesLineUp: 4249 case cesLineUp:
3574 reader->lineUp(); 4250 reader->lineUp();
@@ -3582,8 +4258,14 @@ void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3582 case cesEndDoc: 4258 case cesEndDoc:
3583 gotoEnd(); 4259 gotoEnd();
3584 break; 4260 break;
4261 case cesScrollMore:
4262 reader->increaseScroll();
4263 break;
4264 case cesScrollLess:
4265 reader->reduceScroll();
4266 break;
3585 default: 4267 default:
3586 odebug << "Unknown ActionType:" << a << "" << oendl; 4268 qDebug("Unknown ActionType:%u", a);
3587 break; 4269 break;
3588 } 4270 }
3589 } 4271 }
@@ -3601,7 +4283,7 @@ void QTReaderApp::SaveConfig()
3601 4283
3602void QTReaderApp::do_saveconfig(const QString& _txt, bool full) 4284void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3603{ 4285{
3604// odebug << "do_saveconfig:" << _txt << "" << oendl; 4286// qDebug("do_saveconfig:%s", (const char*)_txt);
3605#ifdef USEQPE 4287#ifdef USEQPE
3606 QString configname; 4288 QString configname;
3607 Config::Domain dom; 4289 Config::Domain dom;
@@ -3624,11 +4306,11 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3624 QFileInfo fi; 4306 QFileInfo fi;
3625 if (full) 4307 if (full)
3626 { 4308 {
3627// odebug << "full:" << _txt << "" << oendl; 4309 // qDebug("full:%s", (const char*)_txt);
3628 QDir d = QDir::home(); // "/" 4310 QDir d = QDir::home(); // "/"
3629 if ( !d.cd(_txt) ) 4311 if ( !d.cd(_txt) )
3630 { // "/tmp" 4312 { // "/tmp"
3631 owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl; 4313 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt );
3632 d = QDir::home(); 4314 d = QDir::home();
3633 d.mkdir(_txt); 4315 d.mkdir(_txt);
3634 d.cd(_txt); 4316 d.cd(_txt);
@@ -3640,14 +4322,14 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3640 QDir d = QDir::home(); // "/" 4322 QDir d = QDir::home(); // "/"
3641 if ( !d.cd(APPDIR) ) 4323 if ( !d.cd(APPDIR) )
3642 { // "/tmp" 4324 { // "/tmp"
3643 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; 4325 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
3644 d = QDir::home(); 4326 d = QDir::home();
3645 d.mkdir(APPDIR); 4327 d.mkdir(APPDIR);
3646 d.cd(APPDIR); 4328 d.cd(APPDIR);
3647 } 4329 }
3648 if ( !d.cd("configs") ) 4330 if ( !d.cd("configs") )
3649 { // "/tmp" 4331 { // "/tmp"
3650 owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl; 4332 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" );
3651 d = QDir::home(); 4333 d = QDir::home();
3652 d.cd(APPDIR); 4334 d.cd(APPDIR);
3653 d.mkdir("configs"); 4335 d.mkdir("configs");
@@ -3655,7 +4337,7 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3655 } 4337 }
3656 fi.setFile(d, _txt); 4338 fi.setFile(d, _txt);
3657 } 4339 }
3658// odebug << "Path:" << fi.absFilePath() << "" << oendl; 4340 //qDebug("Path:%s", (const char*)fi.absFilePath());
3659 Config config(fi.absFilePath()); 4341 Config config(fi.absFilePath());
3660#endif 4342#endif
3661 4343
@@ -3670,10 +4352,15 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3670 config.writeEntry( "OneSpace", reader->bonespace ); 4352 config.writeEntry( "OneSpace", reader->bonespace );
3671 config.writeEntry( "Unindent", reader->bunindent ); 4353 config.writeEntry( "Unindent", reader->bunindent );
3672 config.writeEntry( "Repara", reader->brepara ); 4354 config.writeEntry( "Repara", reader->brepara );
4355 config.writeEntry( "ReparaString", reader->m_reparastring);
4356 config.writeEntry( "BackgroundType" , (int)m_bgtype );
4357 config.writeEntry( "Theme", m_themename );
3673 config.writeEntry( "DoubleSpace", reader->bdblspce ); 4358 config.writeEntry( "DoubleSpace", reader->bdblspce );
3674 config.writeEntry( "Indent", reader->bindenter ); 4359 config.writeEntry( "Indent", reader->bindenter );
3675 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); 4360 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) );
3676 config.writeEntry( "ScrollDelay", reader->m_delay); 4361 config.writeEntry( "ScrollDelay", reader->m_delay);
4362 config.writeEntry( "ScrollStep", reader->m_scrollstep);
4363 config.writeEntry( "ScrollType", reader->m_scrolltype );
3677 if (full) 4364 if (full)
3678 { 4365 {
3679 config.writeEntry("Debounce", m_debounce); 4366 config.writeEntry("Debounce", m_debounce);
@@ -3685,11 +4372,23 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3685 config.writeEntry( "PageMode", reader->m_bpagemode ); 4372 config.writeEntry( "PageMode", reader->m_bpagemode );
3686 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); 4373 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced );
3687 config.writeEntry( "SwapMouse", reader->m_swapmouse); 4374 config.writeEntry( "SwapMouse", reader->m_swapmouse);
4375 config.writeEntry( "IsRotated", reader->m_rotated );
4376 config.writeEntry("StatusContent", m_statusstring);
4377 config.writeEntry("StatusHidden", m_statusishidden);
4378 config.writeEntry( "Background", m_background );
4379 config.writeEntry( "Foreground", m_foreground );
4380 config.writeEntry( "ScrollColour", m_scrollcolor );
4381 config.writeEntry( "ScrollBarColour", m_scrollbarcolor );
4382 config.writeEntry( "Hyphenate", reader->hyphenate );
4383 // config.writeEntry( "CustomHyphen", reader->buffdoc.getCustomHyphen() );
3688 config.writeEntry( "Fontname", reader->m_fontname ); 4384 config.writeEntry( "Fontname", reader->m_fontname );
3689 config.writeEntry( "Encoding", reader->m_encd ); 4385 config.writeEntry( "Encoding", reader->m_encd );
3690 config.writeEntry( "CharSpacing", reader->m_charpc ); 4386 config.writeEntry( "CharSpacing", reader->m_charpc );
3691 config.writeEntry( "Overlap", (int)(reader->m_overlap) ); 4387 config.writeEntry( "Overlap", (int)(reader->m_overlap) );
3692 config.writeEntry( "Margin", (int)reader->m_border ); 4388 config.writeEntry( "Top Margin", (int)reader->m_abstopmargin );
4389 config.writeEntry( "Bottom Margin", (int)reader->m_absbottommargin );
4390 config.writeEntry( "Left Margin", (int)reader->m_absleft_border );
4391 config.writeEntry( "Right Margin", (int)reader->m_absright_border );
3693 config.writeEntry( "TargetApp", m_targetapp ); 4392 config.writeEntry( "TargetApp", m_targetapp );
3694 config.writeEntry( "TargetMsg", m_targetmsg ); 4393 config.writeEntry( "TargetMsg", m_targetmsg );
3695#ifdef _SCROLLPIPE 4394#ifdef _SCROLLPIPE
@@ -3700,6 +4399,7 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3700 config.writeEntry( "Annotation", m_doAnnotation); 4399 config.writeEntry( "Annotation", m_doAnnotation);
3701 config.writeEntry( "Dictionary", m_doDictionary); 4400 config.writeEntry( "Dictionary", m_doDictionary);
3702 config.writeEntry( "Clipboard", m_doClipboard); 4401 config.writeEntry( "Clipboard", m_doClipboard);
4402 /*
3703 config.writeEntry( "SpaceTarget", m_spaceTarget); 4403 config.writeEntry( "SpaceTarget", m_spaceTarget);
3704 config.writeEntry( "EscapeTarget", m_escapeTarget); 4404 config.writeEntry( "EscapeTarget", m_escapeTarget);
3705 config.writeEntry( "ReturnTarget", m_returnTarget); 4405 config.writeEntry( "ReturnTarget", m_returnTarget);
@@ -3711,176 +4411,46 @@ void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3711 config.writeEntry("RightScroll", m_rightScroll); 4411 config.writeEntry("RightScroll", m_rightScroll);
3712 config.writeEntry("UpScroll", m_upScroll); 4412 config.writeEntry("UpScroll", m_upScroll);
3713 config.writeEntry("DownScroll", m_downScroll); 4413 config.writeEntry("DownScroll", m_downScroll);
3714#ifdef REPALM 4414 */
3715 config.writeEntry( "Repalm", reader->brepalm ); 4415 config.writeEntry( "Repalm", reader->brepalm );
3716#endif 4416 config.writeEntry( "HideScrollBar", m_scrollishidden );
4417 config.writeEntry( "Kern", reader->bkern );
3717 config.writeEntry( "Remap", reader->bremap ); 4418 config.writeEntry( "Remap", reader->bremap );
3718 config.writeEntry( "Peanut", reader->bpeanut ); 4419 config.writeEntry( "Peanut", reader->bpeanut );
3719 config.writeEntry( "MakeBold", reader->bmakebold ); 4420 config.writeEntry( "MakeBold", reader->bmakebold );
3720 config.writeEntry( "Continuous", reader->m_continuousDocument ); 4421 config.writeEntry( "Continuous", reader->m_continuousDocument );
3721 config.writeEntry( "FullJust", reader->bfulljust ); 4422 config.writeEntry( "FullJust", reader->bfulljust );
4423 // config.writeEntry( "Negative", reader->bNegative );
4424 config.writeEntry( "Inverse", reader->bInverse );
4425 config.writeEntry( "FixGraphics", reader->m_fontControl.FixGraphics());
3722 config.writeEntry( "ExtraSpace", reader->getextraspace() ); 4426 config.writeEntry( "ExtraSpace", reader->getextraspace() );
3723 config.writeEntry( "ExtraLead", reader->getlead() ); 4427 config.writeEntry( "ExtraLead", reader->getlead() );
3724 config.writeEntry( "Basesize", (int)reader->getBaseSize()); 4428 config.writeEntry( "Basesize", (int)reader->getBaseSize());
3725 config.writeEntry( "RequestorFontChange", m_propogatefontchange); 4429 config.writeEntry( "RequestorFontChange", m_propogatefontchange);
4430#ifdef USEQPE
4431 config.writeEntry( "GrabKeyboard", m_grabkeyboard );
4432#endif
3726 if (full) 4433 if (full)
3727 { 4434 {
3728 config.setGroup( "Toolbar" ); 4435 config.setGroup( "Toolbar" );
4436 config.writeEntry("QTScrollBar", m_qtscroll);
4437 config.writeEntry("LocalScrollBar", m_localscroll);
3729 config.writeEntry("Movable", m_tbmovesave); 4438 config.writeEntry("Movable", m_tbmovesave);
3730 config.writeEntry("Policy", m_tbpolsave); 4439 config.writeEntry("Policy", m_tbpolsave);
3731 config.writeEntry("Position", m_tbposition); 4440 config.writeEntry("Position", m_tbposition);
3732#ifndef USEQPE 4441#ifndef USEQPE
4442 if (!isMaximized() && !isMinimized())
4443 {
3733 config.setGroup( "Geometry" ); 4444 config.setGroup( "Geometry" );
3734 config.writeEntry( "x", x() ); 4445 config.writeEntry( "x", x() );
3735 config.writeEntry( "y", y() ); 4446 config.writeEntry( "y", y() );
3736 config.writeEntry( "width", width() ); 4447 config.writeEntry( "width", width() );
3737 config.writeEntry( "height", height() ); 4448 config.writeEntry( "height", height() );
3738#endif
3739 }
3740} 4449}
3741
3742/*
3743void QTReaderApp::setstate(unsigned char* _sd, unsigned short _sdlen)
3744{
3745 unsigned short sdlen;
3746 memcpy(&sdlen, _sd, sizeof(sdlen));
3747 sdlen -= sizeof(sdlen);
3748 _sd += sizeof(sdlen);
3749 statedata* sd;
3750 char* data;
3751 if (sdlen < sizeof(statedata)+1)
3752 {
3753 sdlen = sizeof(statedata)+1;
3754 }
3755 data = new char[sdlen];
3756 sd = (statedata*)data;
3757 memcpy(sd, _sd, sdlen);
3758 data[sdlen] = 0;
3759 reader->setstate(*sd);
3760 delete [] data;
3761}
3762
3763void QTReaderApp::getstate(unsigned char*& data, unsigned short& len)
3764{
3765 unsigned char* olddata = data;
3766 unsigned short oldlen = len;
3767 len = oldlen+sizeof(unsigned short)+sizeof(statedata)+reader->m_fontname.length();
3768 data = new unsigned char[len];
3769 memcpy(data, olddata, oldlen);
3770 delete [] olddata;
3771 memcpy(data+oldlen, &len, sizeof(len));
3772 statedata* sd = (statedata*)(data+oldlen+sizeof(unsigned short));
3773
3774 sd->bstripcr = reader->bstripcr;
3775 sd->btextfmt = reader->btextfmt;
3776 sd->bautofmt = reader->bautofmt;
3777 sd->bstriphtml = reader->bstriphtml;
3778 sd->bpeanut = reader->bpeanut;
3779 sd->bdehyphen = reader->bdehyphen;
3780 sd->bdepluck = reader->bdepluck;
3781 sd->bdejpluck = reader->bdejpluck;
3782 sd->bonespace = reader->bonespace;
3783 sd->bunindent = reader->bunindent;
3784 sd->brepara = reader->brepara;
3785 sd->bdblspce = reader->bdblspce;
3786 sd->m_bpagemode = reader->m_bpagemode;
3787 sd->m_bMonoSpaced = reader->m_bMonoSpaced;
3788 sd->bremap = reader->bremap;
3789 sd->bmakebold = reader->bmakebold;
3790 sd->Continuous = reader->m_continuousDocument;
3791#ifdef REPALM
3792 sd->brepalm = reader->brepalm;
3793#endif 4450#endif
3794 sd->bindenter = reader->bindenter;
3795 sd->m_textsize = reader->m_textsize; //reader->m_fontControl.currentsize()
3796 sd->m_encd = reader->m_encd;
3797 sd->m_charpc = reader->m_charpc;
3798 strcpy(sd->m_fontname, reader->m_fontname.latin1());
3799}
3800*/
3801#ifdef _SCRIPT
3802void QTReaderApp::RunScript()
3803{
3804 fileBrowser* fb = new fileBrowser(this,"OpieReader",!m_bFloatingDialog,
3805 0,
3806// WStyle_Customize | WStyle_NoBorderEx,
3807 "*", Global::applicationFileName(APPDIR "/scripts", ""));
3808
3809 QString fn;
3810 if (fb->exec())
3811 {
3812 fn = fb->fileList[0];
3813 }
3814 delete fb;
3815 if ( !fn.isEmpty() && fork() == 0 )
3816 {
3817 execlp((const char *)fn,(const char *)fn,NULL);
3818 } 4451 }
3819} 4452}
3820 4453
3821void QTReaderApp::SaveScript(const char* sname)
3822{
3823 FILE* f = fopen(sname,"w");
3824 if (f != NULL)
3825 {
3826#ifdef OPIE
3827 fprintf(f, "#!/bin/sh\nmsg() {\n\tqcop QPE/Application/reader \"$1\" \"$2\" \"$3\"\n}\n");
3828#else
3829 fprintf(f, "#!/bin/bash\nmsg() {\n\tqcop QPE/Application/uqtreader \"$1\" \"$2\" \"$3\"\n}\n");
3830#endif
3831 fprintf(f, "msg \"Update(int)\" 0\n");
3832 fprintf(f, "msg \"Layout/StripCR(int)\" %d\n", (reader->bstripcr) ? 1:0);
3833 if (reader->btextfmt) fprintf(f, "msg \"Markup(QString)\" \"Text\"\n");
3834 else if (reader->bautofmt) fprintf(f, "msg \"Markup(QString)\" \"Auto\"\n");
3835 else if (reader->bstriphtml) fprintf(f, "msg \"Markup(QString)\" \"HTML\"\n");
3836 else if (reader->bpeanut) fprintf(f, "msg \"Markup(QString)\" \"Peanut/PML\"\n");
3837 else fprintf(f, "msg \"Markup(QString)\" \"None\"\n");
3838 fprintf(f, "msg \"Layout/Dehyphen(int)\" %d\n", (reader->bdehyphen) ? 1:0);
3839 fprintf(f, "msg \"Layout/Depluck(int)\" %d\n", (reader->bdepluck) ? 1:0);
3840 fprintf(f, "msg \"Layout/Dejpluck(int)\" %d\n", (reader->bdejpluck) ? 1:0);
3841 fprintf(f, "msg \"Layout/SingleSpace(int)\" %d\n", (reader->bonespace) ? 1:0);
3842 fprintf(f, "msg \"Layout/Unindent(int)\" %d\n", (reader->bunindent) ? 1:0);
3843 fprintf(f, "msg \"Layout/Re-paragraph(int)\" %d\n", (reader->brepara) ? 1:0);
3844 fprintf(f, "msg \"Layout/DoubleSpace(int)\" %d\n", (reader->bdblspce) ? 1:0);
3845 fprintf(f, "msg \"Layout/Indent(int)\" %d\n", reader->bindenter);
3846 fprintf(f, "msg \"Format/SetFont(QString,int)\" \"%s\" %d\n", (const char*)reader->m_fontname, reader->m_textsize);
3847 fprintf(f, "msg \"Navigation/Page/LineScroll(int)\" %d\n", (reader->m_bpagemode) ? 1:0);
3848 fprintf(f, "msg \"Format/Ideogram/Word(int)\" %d\n", (reader->m_bMonoSpaced) ? 1:0);
3849 fprintf(f, "msg \"Format/Encoding(QString)\" \"%s\"\n", (const char*)m_EncodingAction[reader->m_encd]->text());
3850 fprintf(f, "msg \"Format/SetWidth(int)\" %d\n", reader->m_charpc);
3851 fprintf(f, "msg \"Navigation/SetOverlap(int)\" %d\n", reader->m_overlap);
3852 fprintf(f, "msg \"Layout/Remap(int)\" %d\n", (reader->bremap) ? 1:0);
3853 fprintf(f, "msg \"Layout/Embolden(int)\" %d\n", (reader->bmakebold) ? 1:0);
3854 fprintf(f, "msg \"File/Continuous(int)\" %d\n", (reader->m_continuousDocument) ? 1:0);
3855 fprintf(f, "msg \"File/SetDictionary(QString)\" \"%s/%s\"\n", (const char *)m_targetapp, (const char *)m_targetmsg);
3856#ifdef _SCROLLPIPE
3857 fprintf(f, "msg \"File/SetScrollTarget(QString)\" \"%s\"\n", (const char *)reader->m_pipetarget);
3858#endif
3859 fprintf(f, "msg \"File/Two/OneTouch(int)\" %d\n", (m_twoTouch) ? 1:0);
3860 fprintf(f, "msg \"Target/Annotation(int)\" %d\n", (m_doAnnotation) ? 1:0);
3861 fprintf(f, "msg \"Target/Dictionary(int)\" %d\n", (m_doDictionary) ? 1:0);
3862 fprintf(f, "msg \"Target/Clipboard(int)\" %d\n", (m_doClipboard) ? 1:0);
3863 fprintf(f, "msg \"File/Action(QString)\" \"%s\"\n", (const char *)m_buttonAction[m_spaceTarget]->text());
3864 fprintf(f, "msg \"Update(int)\" 1\n");
3865 fprintf(f, "msg \"info(QString)\" \"All Done\"\n");
3866 fclose(f);
3867 chmod(sname, S_IXUSR | S_IXGRP | S_IXOTH);
3868 }
3869}
3870
3871void QTReaderApp::SaveConfig()
3872{
3873 m_nRegAction = cSetConfigName;
3874 regEdit->setText("");
3875 do_regedit();
3876}
3877
3878void QTReaderApp::do_saveconfig(const QString& _txt)
3879{
3880 SaveScript(Global::applicationFileName(APPDIR "/scripts", _txt));
3881}
3882#endif
3883
3884#ifdef _SCROLLPIPE 4454#ifdef _SCROLLPIPE
3885void QTReaderApp::setpipetarget() 4455void QTReaderApp::setpipetarget()
3886{ 4456{
@@ -3906,7 +4476,7 @@ void QTReaderApp::monospace(bool _b)
3906 reader->setmono(_b); 4476 reader->setmono(_b);
3907} 4477}
3908 4478
3909bool QTReaderApp::readconfig(const QString& _txt, bool full=false) 4479bool QTReaderApp::readconfig(const QString& dirname, const QString& _txt, bool full=false)
3910{ 4480{
3911#ifdef USEQPE 4481#ifdef USEQPE
3912 QString configname; 4482 QString configname;
@@ -3919,7 +4489,7 @@ bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
3919 } 4489 }
3920 else 4490 else
3921 { 4491 {
3922 configname = Global::applicationFileName(APPDIR "/configs", _txt); 4492 configname = Global::applicationFileName(dirname, _txt);
3923 QFileInfo fm(configname); 4493 QFileInfo fm(configname);
3924 if ( !fm.exists() ) return false; 4494 if ( !fm.exists() ) return false;
3925 dom = Config::File; 4495 dom = Config::File;
@@ -3929,116 +4499,104 @@ bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
3929 config.setGroup( "View" ); 4499 config.setGroup( "View" );
3930 4500
3931#else 4501#else
3932 QFileInfo fi; 4502 QString fullname;
3933 if (full) 4503 if (full)
3934 { 4504 {
3935 QDir d = QDir::home(); // "/" 4505 fullname = QDir::homeDirPath() + "/" + _txt + "/" + INIFILE;
3936 if ( !d.cd(_txt) )
3937 { // "/tmp"
3938 owarn << "Cannot find the \"~/" << _txt << "\" directory" << oendl;
3939 d = QDir::home();
3940 d.mkdir(_txt);
3941 d.cd(_txt);
3942 }
3943 fi.setFile(d, INIFILE);
3944 } 4506 }
3945 else 4507 else
3946 { 4508 {
3947 QDir d = QDir::home(); // "/" 4509 fullname = QDir::homeDirPath() + "/" + dirname + "/" + _txt;
3948 if ( !d.cd(APPDIR) )
3949 { // "/tmp"
3950 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl;
3951 d = QDir::home();
3952 d.mkdir(APPDIR);
3953 d.cd(APPDIR);
3954 } 4510 }
3955 if ( !d.cd("configs") ) 4511 if (!QFile::exists(fullname)) return false;
3956 { // "/tmp" 4512
3957 owarn << "Cannot find the \"~/" APPDIR "/configs\" directory" << oendl; 4513 Config config(fullname);
3958 d = QDir::home();
3959 d.mkdir("configs");
3960 d.cd("configs");
3961 }
3962 fi.setFile(d, _txt);
3963 }
3964#ifdef _WINDOWS
3965 struct stat fnstat;
3966 if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows
3967#else
3968 if (!fi.exists()) return false;
3969#endif
3970 Config config(fi.absFilePath());
3971#endif 4514#endif
3972 if (full) 4515 if (full)
3973 { 4516 {
3974 config.setGroup("Toolbar"); 4517 config.setGroup("Toolbar");
3975 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 4518 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", m_tbmovesave);
3976 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 4519 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", m_tbpolsave);
3977 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 4520 m_tbposition = (ToolBarDock)config.readNumEntry("Position", m_tbposition);
3978 } 4521 }
3979 config.setGroup( "View" ); 4522 config.setGroup( "View" );
3980 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 4523 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", m_bFloatingDialog);
3981 reader->bstripcr = config.readBoolEntry( "StripCr", true ); 4524 reader->bstripcr = config.readBoolEntry( "StripCr", reader->bstripcr );
3982 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 4525 reader->bfulljust = config.readBoolEntry( "FullJust", reader->bfulljust );
3983 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 4526 reader->bInverse = config.readBoolEntry( "Inverse", reader->bInverse );
3984 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 4527 // reader->bNegative = config.readBoolEntry( "Negative", false );
3985 reader->btextfmt = config.readBoolEntry( "TextFmt", false ); 4528 reader->m_fontControl.FixGraphics(config.readBoolEntry( "FixGraphics", reader->m_fontControl.FixGraphics() ));
3986 reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); 4529 reader->setextraspace(config.readNumEntry( "ExtraSpace", reader->getextraspace() ));
3987 reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); 4530 reader->setlead(config.readNumEntry( "ExtraLead", reader->getlead() ));
3988 reader->bpeanut = config.readBoolEntry( "Peanut", false ); 4531 reader->btextfmt = config.readBoolEntry( "TextFmt", reader->btextfmt );
3989 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); 4532 reader->bautofmt = config.readBoolEntry( "AutoFmt", reader->bautofmt );
3990 reader->bdepluck = config.readBoolEntry( "Depluck", false ); 4533 reader->bstriphtml = config.readBoolEntry( "StripHtml", reader->bstriphtml );
3991 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); 4534 reader->bpeanut = config.readBoolEntry( "Peanut", reader->bpeanut );
3992 reader->bonespace = config.readBoolEntry( "OneSpace", false ); 4535 reader->bdehyphen = config.readBoolEntry( "Dehyphen", reader->bdehyphen );
3993 reader->bunindent = config.readBoolEntry( "Unindent", false ); 4536 reader->bdepluck = config.readBoolEntry( "Depluck", reader->bdepluck );
3994 reader->brepara = config.readBoolEntry( "Repara", false ); 4537 reader->bdejpluck = config.readBoolEntry( "Dejpluck", reader->bdejpluck );
3995 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); 4538 reader->bonespace = config.readBoolEntry( "OneSpace", reader->bonespace );
3996 reader->bindenter = config.readNumEntry( "Indent", 0 ); 4539 reader->bunindent = config.readBoolEntry( "Unindent", reader->bunindent );
3997 reader->m_textsize = config.readNumEntry( "FontSize", 12 ); 4540 reader->brepara = config.readBoolEntry( "Repara", reader->brepara );
3998 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); 4541 reader->m_reparastring = config.readEntry( "ReparaString", reader->m_reparastring);
4542 m_bgtype = (bground)config.readNumEntry( "BackgroundType" , m_bgtype );
4543 m_themename = config.readEntry("Theme", m_themename );
4544 reader->bdblspce = config.readBoolEntry( "DoubleSpace", reader->bdblspce );
4545 reader->bindenter = config.readNumEntry( "Indent", reader->bindenter );
4546 reader->m_textsize = config.readNumEntry( "FontSize", reader->m_textsize );
4547 reader->m_delay = config.readNumEntry( "ScrollDelay", reader->m_delay);
4548 reader->m_scrollstep = config.readNumEntry( "ScrollStep", reader->m_scrollstep);
4549 reader->m_scrolltype = config.readNumEntry( "ScrollType", reader->m_scrolltype);
3999 if (full) 4550 if (full)
4000 { 4551 {
4001 reader->m_lastfile = config.readEntry( "LastFile", QString::null ); 4552 reader->m_lastfile = config.readEntry( "LastFile", reader->m_lastfile );
4002 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); 4553 reader->m_lastposn = config.readNumEntry( "LastPosn", reader->m_lastposn );
4003 } 4554 }
4004 reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); 4555 reader->m_bpagemode = config.readBoolEntry( "PageMode", reader->m_bpagemode );
4005 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); 4556 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", reader->m_bMonoSpaced);
4006 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); 4557 reader->m_rotated = config.readBoolEntry( "IsRotated", reader->m_rotated );
4007 reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); 4558 m_statusstring = config.readEntry("StatusContent", m_statusstring);
4008 reader->m_encd = config.readNumEntry( "Encoding", 0 ); 4559 m_statusishidden = config.readBoolEntry("StatusHidden", m_statusishidden);
4009 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); 4560 m_background = config.readNumEntry( "Background", m_background );
4010 reader->m_overlap = config.readNumEntry( "Overlap", 0 ); 4561 reader->setBackground(getcolour(m_background));
4011 reader->m_border = config.readNumEntry( "Margin", 6 ); 4562 m_foreground = config.readNumEntry( "Foreground", m_foreground );
4012#ifdef REPALM 4563 reader->setForeground(getcolour(m_foreground));
4013 reader->brepalm = config.readBoolEntry( "Repalm", true ); 4564 m_scrollcolor = config.readNumEntry( "ScrollColour", m_scrollcolor);
4014#endif 4565 setscrollcolour();
4015 reader->bremap = config.readBoolEntry( "Remap", true ); 4566 m_scrollbarcolor = config.readNumEntry( "ScrollBarColour", m_scrollbarcolor);
4016 reader->bmakebold = config.readBoolEntry( "MakeBold", false ); 4567 setscrollbarcolour();
4017 reader->setContinuous(config.readBoolEntry( "Continuous", true )); 4568 reader->hyphenate = config.readBoolEntry( "Hyphenate", reader->hyphenate );
4018 m_targetapp = config.readEntry( "TargetApp", QString::null ); 4569 // reader->buffdoc.setCustomHyphen(config.readBoolEntry( "CustomHyphen", false ));
4019 m_targetmsg = config.readEntry( "TargetMsg", QString::null ); 4570 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", reader->m_swapmouse);
4571 reader->m_fontname = config.readEntry( "Fontname", reader->m_fontname );
4572 reader->m_encd = config.readNumEntry( "Encoding", reader->m_encd );
4573 reader->m_charpc = config.readNumEntry( "CharSpacing", reader->m_charpc );
4574 reader->m_overlap = config.readNumEntry( "Overlap", reader->m_overlap );
4575 reader->m_abstopmargin = config.readNumEntry( "Top Margin", reader->m_abstopmargin );
4576 reader->m_absbottommargin = config.readNumEntry( "Bottom Margin", reader->m_absbottommargin );
4577 reader->m_absleft_border = config.readNumEntry( "Left Margin", reader->m_absleft_border );
4578 reader->m_absright_border = config.readNumEntry( "Right Margin", reader->m_absright_border );
4579 m_scrollishidden = config.readBoolEntry( "HideScrollBar", m_scrollishidden );
4580 reader->brepalm = config.readBoolEntry( "Repalm", reader->brepalm );
4581 reader->bkern = config.readBoolEntry( "Kern", reader->bkern );
4582 reader->bremap = config.readBoolEntry( "Remap", reader->bremap );
4583 reader->bmakebold = config.readBoolEntry( "MakeBold", reader->bmakebold );
4584 reader->setContinuous(config.readBoolEntry( "Continuous", reader->m_continuousDocument ));
4585 m_targetapp = config.readEntry( "TargetApp", m_targetapp );
4586 m_targetmsg = config.readEntry( "TargetMsg", m_targetmsg );
4020#ifdef _SCROLLPIPE 4587#ifdef _SCROLLPIPE
4021 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); 4588 reader->m_pipetarget = config.readEntry( "PipeTarget", reader->m_pipetarget );
4022 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); 4589 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
4023#endif 4590#endif
4024 m_twoTouch = config.readBoolEntry( "TwoTouch", false); 4591 m_twoTouch = config.readBoolEntry( "TwoTouch", m_twoTouch);
4025 m_doAnnotation = config.readBoolEntry( "Annotation", false); 4592 m_doAnnotation = config.readBoolEntry( "Annotation", m_doAnnotation);
4026 m_doDictionary = config.readBoolEntry( "Dictionary", false); 4593 m_doDictionary = config.readBoolEntry( "Dictionary", m_doDictionary);
4027 m_doClipboard = config.readBoolEntry( "Clipboard", false); 4594 m_doClipboard = config.readBoolEntry( "Clipboard", m_doClipboard);
4028 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); 4595#ifdef USEQPE
4029 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); 4596 m_grabkeyboard = config.readBoolEntry( "GrabKeyboard", m_grabkeyboard);
4030 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); 4597#endif
4031 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); 4598 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", m_propogatefontchange);
4032 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); 4599 reader->setBaseSize(config.readNumEntry( "Basesize", reader->getBaseSize() ));
4033 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp);
4034 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown);
4035
4036 m_leftScroll = config.readBoolEntry("LeftScroll", false);
4037 m_rightScroll = config.readBoolEntry("RightScroll", false);
4038 m_upScroll = config.readBoolEntry("UpScroll", true);
4039 m_downScroll = config.readBoolEntry("DownScroll", true);
4040 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false);
4041 reader->setBaseSize(config.readNumEntry( "Basesize", 10 ));
4042 reader->setTwoTouch(m_twoTouch); 4600 reader->setTwoTouch(m_twoTouch);
4043 4601
4044 m_touch_action->setOn(m_twoTouch); 4602 m_touch_action->setOn(m_twoTouch);
@@ -4053,7 +4611,7 @@ bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
4053 return true; 4611 return true;
4054} 4612}
4055 4613
4056bool QTReaderApp::PopulateConfig(const char* tgtdir) 4614bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs)
4057{ 4615{
4058 bkmkselector->clear(); 4616 bkmkselector->clear();
4059 bkmkselector->setText("Cancel"); 4617 bkmkselector->setText("Cancel");
@@ -4062,18 +4620,18 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir)
4062 4620
4063 QDir d = QDir::home(); // "/" 4621 QDir d = QDir::home(); // "/"
4064 if ( !d.cd(APPDIR) ) { // "/tmp" 4622 if ( !d.cd(APPDIR) ) { // "/tmp"
4065 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; 4623 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
4066 d = QDir::home(); 4624 d = QDir::home();
4067 d.mkdir(APPDIR); 4625 d.mkdir(APPDIR);
4068 d.cd(APPDIR); 4626 d.cd(APPDIR);
4069 } 4627 }
4070 if ( !d.cd(tgtdir) ) { // "/tmp" 4628 if ( !d.cd(tgtdir) ) { // "/tmp"
4071 owarn << "Cannot find the \"~/" APPDIR "/" << tgtdir << "\" directory" << oendl; 4629 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir );
4072 d = QDir::home(); 4630 d = QDir::home();
4073 d.mkdir(tgtdir); 4631 d.mkdir(tgtdir);
4074 d.cd(tgtdir); 4632 d.cd(tgtdir);
4075 } 4633 }
4076 d.setFilter( QDir::Files | QDir::NoSymLinks ); 4634 d.setFilter( ((usedirs) ? QDir::Dirs : QDir::Files) | QDir::NoSymLinks );
4077// d.setSorting( QDir::Size | QDir::Reversed ); 4635// d.setSorting( QDir::Size | QDir::Reversed );
4078 4636
4079 const QFileInfoList *list = d.entryInfoList(); 4637 const QFileInfoList *list = d.entryInfoList();
@@ -4085,7 +4643,7 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir)
4085 bkmkselector->insertItem(fi->fileName()); 4643 bkmkselector->insertItem(fi->fileName());
4086 cnt++; 4644 cnt++;
4087 4645
4088 //odebug << "" << fi->size() << " " << fi->fileName().data() << "" << oendl; 4646 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
4089 ++it; // goto next list element 4647 ++it; // goto next list element
4090 } 4648 }
4091 4649
@@ -4106,7 +4664,7 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir)
4106 de = readdir(d); 4664 de = readdir(d);
4107 if (de == NULL) break; 4665 if (de == NULL) break;
4108 4666
4109 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) 4667 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && ((usedirs && S_ISDIR(buf.st_mode)) || (!usedirs && S_ISREG(buf.st_mode))))
4110 { 4668 {
4111 bkmkselector->insertItem(de->d_name); 4669 bkmkselector->insertItem(de->d_name);
4112 cnt++; 4670 cnt++;
@@ -4118,6 +4676,18 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir)
4118 return (cnt > 0); 4676 return (cnt > 0);
4119} 4677}
4120 4678
4679void QTReaderApp::LoadTheme()
4680{
4681 if (PopulateConfig("Themes", true))
4682 {
4683 editorStack->raiseWidget( bkmkselector );
4684 hidetoolbars();
4685 m_nBkmkAction = cLdTheme;
4686 }
4687 else
4688 QMessageBox::information(this, PROGNAME, "No config files");
4689}
4690
4121void QTReaderApp::LoadConfig() 4691void QTReaderApp::LoadConfig()
4122{ 4692{
4123 if (PopulateConfig("configs")) 4693 if (PopulateConfig("configs"))
@@ -4154,7 +4724,26 @@ void QTReaderApp::ExportLinks()
4154 QMessageBox::information(this, PROGNAME, "No url files"); 4724 QMessageBox::information(this, PROGNAME, "No url files");
4155} 4725}
4156 4726
4157void QTReaderApp::OnURLSelected(const QString& href) 4727void QTReaderApp::OnURLSelected(const QString& href, const size_t tgt)
4728{
4729#ifndef USEQPE
4730 qDebug("URL:%s", (const char*)href);
4731 int col = href.find(':');
4732 if (col > 0)
4733 {
4734 QString type = href.left(col);
4735 qDebug("Type:%s", (const char*)type);
4736 }
4737 else
4738 {
4739 qDebug("No type");
4740 }
4741#else
4742 if (href.isEmpty())
4743 {
4744 QMessageBox::information(this, PROGNAME, "No URL information supplied");
4745 }
4746 else
4158{ 4747{
4159 CURLDialog* urld = new CURLDialog(href, false, this); 4748 CURLDialog* urld = new CURLDialog(href, false, this);
4160 urld->clipboard(m_url_clipboard); 4749 urld->clipboard(m_url_clipboard);
@@ -4169,7 +4758,7 @@ void QTReaderApp::OnURLSelected(const QString& href)
4169 { 4758 {
4170 QClipboard* cb = QApplication::clipboard(); 4759 QClipboard* cb = QApplication::clipboard();
4171 cb->setText(href); 4760 cb->setText(href);
4172 odebug << "<a href=\"" << href << "\">" << href << "</a>" << oendl; 4761 qDebug("<a href=\"%s\">%s</a>", (const char*)href, (const char*)href);
4173 } 4762 }
4174 if (m_url_localfile) 4763 if (m_url_localfile)
4175 { 4764 {
@@ -4182,6 +4771,8 @@ void QTReaderApp::OnURLSelected(const QString& href)
4182 } 4771 }
4183 delete urld; 4772 delete urld;
4184} 4773}
4774#endif
4775}
4185 4776
4186void QTReaderApp::writeUrl(const QString& file, const QString& href) 4777void QTReaderApp::writeUrl(const QString& file, const QString& href)
4187{ 4778{
@@ -4193,14 +4784,14 @@ void QTReaderApp::writeUrl(const QString& file, const QString& href)
4193 QDir d = QDir::home(); // "/" 4784 QDir d = QDir::home(); // "/"
4194 if ( !d.cd(APPDIR) ) 4785 if ( !d.cd(APPDIR) )
4195 { // "/tmp" 4786 { // "/tmp"
4196 owarn << "Cannot find the \"~/" APPDIR "\" directory" << oendl; 4787 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
4197 d = QDir::home(); 4788 d = QDir::home();
4198 d.mkdir(APPDIR); 4789 d.mkdir(APPDIR);
4199 d.cd(APPDIR); 4790 d.cd(APPDIR);
4200 } 4791 }
4201 if ( !d.cd("urls") ) 4792 if ( !d.cd("urls") )
4202 { // "/tmp" 4793 { // "/tmp"
4203 owarn << "Cannot find the \"~/" APPDIR "/urls\" directory" << oendl; 4794 qWarning( "Cannot find the \"~/" APPDIR "/urls\" directory" );
4204 d = QDir::home(); 4795 d = QDir::home();
4205 d.cd(APPDIR); 4796 d.cd(APPDIR);
4206 d.mkdir("urls"); 4797 d.mkdir("urls");
@@ -4220,3 +4811,156 @@ void QTReaderApp::writeUrl(const QString& file, const QString& href)
4220 QMessageBox::warning(this, PROGNAME, "Problem with writing URL"); 4811 QMessageBox::warning(this, PROGNAME, "Problem with writing URL");
4221 } 4812 }
4222} 4813}
4814
4815QColor QTReaderApp::getcolour(int _c)
4816{
4817 QColor c = white;
4818 switch (_c)
4819 {
4820 case 0:
4821 c = white;
4822 break;
4823 case 1:
4824 c = black;
4825 break;
4826 case 2:
4827 c = darkGray;
4828 break;
4829 case 3:
4830 c = gray;
4831 break;
4832 case 4:
4833 c = lightGray;
4834 break;
4835 case 5:
4836 c = red;
4837 break;
4838 case 6:
4839 c = green;
4840 break;
4841 case 7:
4842 c = blue;
4843 break;
4844 case 8:
4845 c = cyan;
4846 break;
4847 case 9:
4848 c = magenta;
4849 break;
4850 case 10:
4851 c = yellow;
4852 break;
4853 case 11:
4854 c = darkRed;
4855 break;
4856 case 12:
4857 c = darkGreen;
4858 break;
4859 case 13:
4860 c = darkBlue;
4861 break;
4862 case 14:
4863 c = darkCyan;
4864 break;
4865 case 15:
4866 c = darkMagenta;
4867 break;
4868 case 16:
4869 c = darkYellow;
4870 break;
4871 default:
4872 c = lightGray;
4873 break;
4874 }
4875 return c;
4876}
4877
4878void QTReaderApp::setscrollcolour()
4879{
4880 /*
4881 QColor xc = getcolour(m_scrollcolor);
4882 int r,g,b;
4883 xc.rgb(&r,&g,&b);
4884 reader->m_scrollcolor.setRgb(255^r, 255^g, 255^b);
4885 */
4886 reader->m_scrollcolor = getcolour(m_scrollcolor);
4887}
4888
4889void QTReaderApp::setscrollbarcolour()
4890{
4891 /*
4892 QColor xc = getcolour(m_scrollcolor);
4893 int r,g,b;
4894 xc.rgb(&r,&g,&b);
4895 reader->m_scrollcolor.setRgb(255^r, 255^g, 255^b);
4896 */
4897 reader->m_scrollbarcolor = getcolour(m_scrollbarcolor);
4898}
4899
4900void QTReaderApp::forceopen(const QString& filename)
4901{
4902 /*
4903 QFileInfo fi(reader->m_lastfile);
4904 fi = QFileInfo(filename);
4905 QString flnm = fi.absFilePath();
4906 */
4907 if (!filename.isEmpty())
4908 {
4909 updatefileinfo();
4910 if (pBkmklist != NULL)
4911 {
4912 if (m_fBkmksChanged)
4913 {
4914 savebkmks();
4915 }
4916 delete pBkmklist;
4917 pBkmklist = NULL;
4918 m_fBkmksChanged = false;
4919 }
4920 reader->disableAutoscroll();
4921 openFile(filename);
4922 reader->setFocus();
4923 }
4924}
4925
4926void QTReaderApp::actionscroll(int v)
4927{
4928 if (reader->m_rotated)
4929 {
4930 reader->dopageup(reader->buffdoc.startSection()+reader->buffdoc.endSection()-v);
4931 }
4932 else
4933 {
4934 /*
4935 if (reader->pagelocate() < v)
4936 {
4937 while (reader->pagelocate() < v) reader->lineDown();
4938 }
4939 else
4940 */
4941 reader->locate(v);
4942 }
4943}
4944
4945void QTReaderApp::setBackgroundBitmap()
4946{
4947#ifdef USEQPE
4948 QString file = APPDIR "/Themes/";
4949 file += m_themename;
4950 QString tgt = Global::applicationFileName(file,"background");
4951#else
4952 QString tgt(QDir::homeDirPath());
4953 tgt += QString("/" APPDIR "/Themes/") + m_themename + "/background";
4954#endif
4955 qDebug("Trying to load %s", (const char *)tgt);
4956 QPixmap pm(tgt);
4957 reader->setBackgroundBitmap(pm, m_bgtype);
4958}
4959
4960/*
4961
4962 myChannel = new QCopChannel( "QPE/FooBar", this );
4963 connect( myChannel, SIGNAL(received(const QCString &, const QByteArray &)),
4964 this, SLOT(fooBarMessage( const QCString &, const QByteArray &)) );
4965
4966*/