summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/QTReaderApp.cpp
authorchicken <chicken>2004-03-01 19:23:21 (UTC)
committer chicken <chicken>2004-03-01 19:23:21 (UTC)
commite6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a (patch) (unidiff)
tree35b7298eb0d91fa038f84814205f415102975f3f /noncore/apps/opie-reader/QTReaderApp.cpp
parentddc3d749af5f7afebf69488b79641771fe246b5b (diff)
downloadopie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.zip
opie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.tar.gz
opie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.tar.bz2
fix includes
Diffstat (limited to 'noncore/apps/opie-reader/QTReaderApp.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp8443
1 files changed, 4221 insertions, 4222 deletions
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp
index 07af597..e759249 100644
--- a/noncore/apps/opie-reader/QTReaderApp.cpp
+++ b/noncore/apps/opie-reader/QTReaderApp.cpp
@@ -1,4222 +1,4221 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. Allrights reserved. 2** Copyright (C) 2000 Trolltech AS. Allrights reserved.
3** 3**
4** This file is part of Qt Palmtop Environment. 4** This file is part of Qt Palmtop Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "useqpe.h" 20#include "useqpe.h"
21#include <qregexp.h> 21#include <qregexp.h>
22#include <qclipboard.h> 22#include <qclipboard.h>
23#include <qwidgetstack.h> 23#include <qwidgetstack.h>
24#ifdef USEQPE 24#ifdef USEQPE
25#include <qmenubar.h> 25#include <qmenubar.h>
26#include <qpe/qpetoolbar.h> 26#include <qpe/qpetoolbar.h>
27#endif 27#endif
28#include <qmenubar.h> 28#include <qmenubar.h>
29#include <qtoolbar.h> 29#include <qtoolbar.h>
30#ifdef USEQPE 30#ifdef USEQPE
31#include <qpe/menubutton.h> 31#include <qpe/menubutton.h>
32#include <qpe/fontdatabase.h> 32#include <qpe/fontdatabase.h>
33#endif 33#endif
34#include <qcombobox.h> 34#include <qcombobox.h>
35#include <qpopupmenu.h> 35#include <qpopupmenu.h>
36#include <qaction.h> 36#include <qaction.h>
37#include <qapplication.h> 37#include <qapplication.h>
38#include <qlineedit.h> 38#include <qlineedit.h>
39#include <qtoolbutton.h> 39#include <qtoolbutton.h>
40#include <qspinbox.h> 40#include <qspinbox.h>
41#include <qobjectlist.h> 41#include <qobjectlist.h>
42#ifdef USEQPE 42#ifdef USEQPE
43#include <qpe/global.h> 43#include <qpe/global.h>
44#include <qpe/applnk.h> 44#include <qpe/applnk.h>
45#endif 45#endif
46#include <qfileinfo.h> 46#include <qfileinfo.h>
47#include <stdlib.h> //getenv 47#include <stdlib.h> //getenv
48#include <qprogressbar.h> 48#include <qprogressbar.h>
49#ifdef USEQPE 49#ifdef USEQPE
50#include <qpe/config.h> 50#include <qpe/config.h>
51#endif 51#endif
52#include <qbuttongroup.h> 52#include <qbuttongroup.h>
53#include <qradiobutton.h> 53#include <qradiobutton.h>
54#ifdef USEQPE 54#ifdef USEQPE
55#include <qpe/qcopenvelope_qws.h> 55#include <qpe/qcopenvelope_qws.h>
56#endif 56#endif
57#include "QTReader.h" 57#include "QTReader.h"
58#include "GraphicWin.h" 58#include "GraphicWin.h"
59#include "Bkmks.h" 59#include "Bkmks.h"
60#include "cbkmkselector.h" 60#include "cbkmkselector.h"
61#include "infowin.h" 61#include "infowin.h"
62#include "ToolbarPrefs.h" 62#include "ToolbarPrefs.h"
63#include "Prefs.h" 63#include "Prefs.h"
64#include "CAnnoEdit.h" 64#include "CAnnoEdit.h"
65#include "QFloatBar.h" 65#include "QFloatBar.h"
66#include "FixedFont.h" 66#include "FixedFont.h"
67#include "URLDialog.h" 67#include "URLDialog.h"
68//#include <qpe/fontdatabase.h> 68//#include <qpe/fontdatabase.h>
69 69
70#ifdef USEQPE 70#ifdef USEQPE
71#include <qpe/resource.h> 71#include <qpe/resource.h>
72#include <qpe/qpeapplication.h> 72#include <qpe/qpeapplication.h>
73#include "fileBrowser.h" 73#include "fileBrowser.h"
74#else 74#else
75#include "qfiledialog.h" 75#include "qfiledialog.h"
76#endif 76#endif
77 77
78#include "QTReaderApp.h" 78#include "QTReaderApp.h"
79#include "CDrawBuffer.h" 79#include "CDrawBuffer.h"
80#include "Filedata.h" 80#include "Filedata.h"
81#include "opie.h" 81#include "opie.h"
82#include "useqpe.h" 82#include "names.h"
83#include "names.h" 83#include "CEncoding_tables.h"
84#include "CEncoding_tables.h" 84#include "CloseDialog.h"
85#include "CloseDialog.h" 85
86 86bool CheckVersion(int&, int&, char&);
87bool CheckVersion(int&, int&, char&); 87
88 88#ifdef _WINDOWS
89#ifdef _WINDOWS 89#define PICDIR "c:\\uqtreader\\pics\\"
90#define PICDIR "c:\\uqtreader\\pics\\" 90#else
91#else 91#ifdef USEQPE
92#ifdef USEQPE 92#define PICDIR "opie-reader/"
93#define PICDIR "opie-reader/" 93#else
94#else 94#define PICDIR "/home/tim/uqtreader/pics/"
95#define PICDIR "/home/tim/uqtreader/pics/" 95#endif
96#endif 96#endif
97#endif 97
98 98unsigned long QTReaderApp::m_uid = 0;
99unsigned long QTReaderApp::m_uid = 0; 99
100 100void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); }
101void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); } 101
102 102#ifdef USEQPE
103#ifdef USEQPE 103#define geticon(iconname) Resource::loadPixmap( iconname )
104#define geticon(iconname) Resource::loadPixmap( iconname ) 104#define getmyicon(iconname) Resource::loadPixmap( PICDIR iconname )
105#define getmyicon(iconname) Resource::loadPixmap( PICDIR iconname ) 105#else
106#else 106#define geticon(iconname) QPixmap(PICDIR iconname ".png")
107#define geticon(iconname) QPixmap(PICDIR iconname ".png") 107#define getmyicon(iconname) geticon(iconname)
108#define getmyicon(iconname) geticon(iconname) 108//#define geticon(iconname) QIconSet( QPixmap(PICDIR iconname) )
109//#define geticon(iconname) QIconSet( QPixmap(PICDIR iconname) ) 109#endif
110#endif 110
111 111#ifndef _WINDOWS
112#ifndef _WINDOWS 112#include <unistd.h>
113#include <unistd.h> 113#endif
114#endif 114#include <stddef.h>
115#include <stddef.h> 115#ifndef _WINDOWS
116#ifndef _WINDOWS 116#include <dirent.h>
117#include <dirent.h> 117#endif
118#endif 118
119 119void QTReaderApp::listBkmkFiles()
120void QTReaderApp::listBkmkFiles() 120{
121{ 121 bkmkselector->clear();
122 bkmkselector->clear(); 122 bkmkselector->setText("Cancel");
123 bkmkselector->setText("Cancel"); 123#ifndef USEQPE
124#ifndef USEQPE 124 int cnt = 0;
125 int cnt = 0; 125
126 126 QDir d = QDir::home(); // "/"
127 QDir d = QDir::home(); // "/" 127 if ( !d.cd(APPDIR) ) { // "/tmp"
128 if ( !d.cd(APPDIR) ) { // "/tmp" 128 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
129 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 129 d = QDir::home();
130 d = QDir::home(); 130 d.mkdir(APPDIR);
131 d.mkdir(APPDIR); 131 d.cd(APPDIR);
132 d.cd(APPDIR); 132 }
133 } 133
134 134
135 135
136 136
137 137 d.setFilter( QDir::Files | QDir::NoSymLinks );
138 d.setFilter( QDir::Files | QDir::NoSymLinks ); 138// d.setSorting( QDir::Size | QDir::Reversed );
139// d.setSorting( QDir::Size | QDir::Reversed ); 139
140 140 const QFileInfoList *list = d.entryInfoList();
141 const QFileInfoList *list = d.entryInfoList(); 141 QFileInfoListIterator it( *list ); // create list iterator
142 QFileInfoListIterator it( *list ); // create list iterator 142 QFileInfo *fi; // pointer for traversing
143 QFileInfo *fi; // pointer for traversing 143
144 144 while ( (fi=it.current()) ) { // for each file...
145 while ( (fi=it.current()) ) { // for each file... 145
146 146 bkmkselector->insertItem(fi->fileName());
147 bkmkselector->insertItem(fi->fileName()); 147 cnt++;
148 cnt++; 148
149 149 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
150 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 150 ++it; // goto next list element
151 ++it; // goto next list element 151 }
152 } 152
153 153#else /* USEQPE */
154#else /* USEQPE */ 154 int cnt = 0;
155 int cnt = 0; 155 DIR *d;
156 DIR *d; 156 d = opendir((const char *)Global::applicationFileName(APPDIR,""));
157 d = opendir((const char *)Global::applicationFileName(APPDIR,"")); 157
158 158 while(1)
159 while(1) 159 {
160 { 160 struct dirent* de;
161 struct dirent* de; 161 struct stat buf;
162 struct stat buf; 162 de = readdir(d);
163 de = readdir(d); 163 if (de == NULL) break;
164 if (de == NULL) break; 164
165 165 if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode))
166 if (lstat((const char *)Global::applicationFileName(APPDIR,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) 166 {
167 { 167 bkmkselector->insertItem(de->d_name);
168 bkmkselector->insertItem(de->d_name); 168 cnt++;
169 cnt++; 169 }
170 } 170 }
171 } 171
172 172 closedir(d);
173 closedir(d); 173#endif
174#endif 174 if (cnt > 0)
175 if (cnt > 0) 175 {
176 { 176//tjw menu->hide();
177//tjw menu->hide(); 177 editorStack->raiseWidget( bkmkselector );
178 editorStack->raiseWidget( bkmkselector ); 178 hidetoolbars();
179 hidetoolbars(); 179 m_nBkmkAction = cRmBkmkFile;
180 m_nBkmkAction = cRmBkmkFile; 180 }
181 } 181 else
182 else 182 QMessageBox::information(this, PROGNAME, "No bookmark files");
183 QMessageBox::information(this, PROGNAME, "No bookmark files"); 183}
184} 184
185 185void QTReaderApp::hidetoolbars()
186void QTReaderApp::hidetoolbars() 186{
187{ 187 menubar->hide();
188 menubar->hide(); 188 if (fileBar != NULL) fileBar->hide();
189 if (fileBar != NULL) fileBar->hide(); 189 if (viewBar != NULL) viewBar->hide();
190 if (viewBar != NULL) viewBar->hide(); 190 if (navBar != NULL) navBar->hide();
191 if (navBar != NULL) navBar->hide(); 191 if (markBar != NULL) markBar->hide();
192 if (markBar != NULL) markBar->hide(); 192 if (m_fontVisible) m_fontBar->hide();
193 if (m_fontVisible) m_fontBar->hide(); 193 if (regVisible)
194 if (regVisible) 194 {
195 { 195#ifdef USEQPE
196#ifdef USEQPE 196 Global::hideInputMethod();
197 Global::hideInputMethod(); 197#endif
198#endif 198 regBar->hide();
199 regBar->hide(); 199 }
200 } 200 if (searchVisible)
201 if (searchVisible) 201 {
202 { 202#ifdef USEQPE
203#ifdef USEQPE 203 Global::hideInputMethod();
204 Global::hideInputMethod(); 204#endif
205#endif 205 searchBar->hide();
206 searchBar->hide(); 206 }
207 } 207}
208} 208
209 209QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f )
210QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) 210 : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false),
211 : QMainWindow( parent, name, f ), bFromDocView( FALSE ), m_dontSave(false), 211 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL)
212 fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL) 212{
213{ 213 m_url_clipboard = false;
214 m_url_clipboard = false; 214 m_url_localfile = false;
215 m_url_localfile = false; 215 m_url_globalfile = false;
216 m_url_globalfile = false; 216 ftime(&m_lastkeytime);
217 ftime(&m_lastkeytime); 217//// qDebug("Application directory = %s", (const tchar *)QPEApplication::documentDir());
218//// qDebug("Application directory = %s", (const tchar *)QPEApplication::documentDir()); 218//// qDebug("Application directory = %s", (const tchar *)Global::applicationFileName("uqtreader","bkmks.xml"));
219//// qDebug("Application directory = %s", (const tchar *)Global::applicationFileName("uqtreader","bkmks.xml")); 219
220 220 m_bcloseDisabled = true;
221 m_bcloseDisabled = true; 221 m_disableesckey = false;
222 m_disableesckey = false; 222 pBkmklist = NULL;
223 pBkmklist = NULL; 223 pOpenlist = NULL;
224 pOpenlist = NULL; 224// doc = 0;
225// doc = 0; 225
226 226 m_fBkmksChanged = false;
227 m_fBkmksChanged = false; 227
228 228 QString lang = getenv( "LANG" );
229 QString lang = getenv( "LANG" ); 229 QString rot = getenv( "QWS_DISPLAY" );
230 QString rot = getenv( "QWS_DISPLAY" ); 230
231 231/*
232/* 232 int m_rot = 0;
233 int m_rot = 0; 233 if (rot.contains("Rot90"))
234 if (rot.contains("Rot90")) 234 {
235 { 235 m_rot = 90;
236 m_rot = 90; 236 }
237 } 237 else if (rot.contains("Rot180"))
238 else if (rot.contains("Rot180")) 238 {
239 { 239 m_rot = 180;
240 m_rot = 180; 240 }
241 } 241 else if (rot.contains("Rot270"))
242 else if (rot.contains("Rot270")) 242 {
243 { 243 m_rot = 270;
244 m_rot = 270; 244 }
245 } 245
246 246// qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot);
247// qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot); 247*/
248*/ 248 m_autogenstr = "^ *[A-Z].*[a-z] *$";
249 m_autogenstr = "^ *[A-Z].*[a-z] *$"; 249
250 250#ifdef USEQPE
251#ifdef USEQPE 251 setIcon( Resource::loadPixmap( PICDIR "uqtreader") );
252 setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); 252#else
253#else 253 setIcon( QPixmap (PICDIR "uqtreader.png") );
254 setIcon( QPixmap (PICDIR "uqtreader.png") ); 254#endif /* USEQPE */
255#endif /* USEQPE */ 255
256 256// QToolBar *bar = new QToolBar( this );
257// QToolBar *bar = new QToolBar( this ); 257// menubar = new QToolBar( this );
258// menubar = new QToolBar( this ); 258#ifdef USEQPE
259#ifdef USEQPE 259 Config config( APPDIR );
260 Config config( APPDIR ); 260#else
261#else 261 QDir d = QDir::home(); // "/"
262 QDir d = QDir::home(); // "/" 262 if ( !d.cd(APPDIR) ) { // "/tmp"
263 if ( !d.cd(APPDIR) ) { // "/tmp" 263 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
264 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 264 d = QDir::home();
265 d = QDir::home(); 265 d.mkdir(APPDIR);
266 d.mkdir(APPDIR); 266 d.cd(APPDIR);
267 d.cd(APPDIR); 267 }
268 } 268 QFileInfo fi(d, INIFILE);
269 QFileInfo fi(d, INIFILE); 269// qDebug("Path:%s", (const char*)fi.absFilePath());
270// qDebug("Path:%s", (const char*)fi.absFilePath()); 270 Config config(fi.absFilePath());
271 Config config(fi.absFilePath()); 271#endif
272#endif 272 config.setGroup("Toolbar");
273 config.setGroup("Toolbar"); 273 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false);
274 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 274 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1);
275 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 275 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2);
276 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 276 menubar = new QToolBar("Menus", this, m_tbposition);
277 menubar = new QToolBar("Menus", this, m_tbposition); 277
278 278// fileBar = new QToolBar("File", this);
279// fileBar = new QToolBar("File", this); 279// QToolBar* viewBar = new QToolBar("File", this);
280// QToolBar* viewBar = new QToolBar("File", this); 280// QToolBar* navBar = new QToolBar("File", this);
281// QToolBar* navBar = new QToolBar("File", this); 281// QToolBar* markBar = new QToolBar("File", this);
282// QToolBar* markBar = new QToolBar("File", this); 282
283 283#ifdef USEQPE
284#ifdef USEQPE 284 mb = new QMenuBar( menubar );
285 mb = new QMenuBar( menubar ); 285#else
286#else 286 mb = new QMenuBar( menubar );
287 mb = new QMenuBar( menubar ); 287#endif
288#endif 288
289 289//#ifdef USEQPE
290//#ifdef USEQPE 290 QPopupMenu* tmp = new QPopupMenu(mb);
291 QPopupMenu* tmp = new QPopupMenu(mb); 291 mb->insertItem( geticon( "AppsIcon" ), tmp );
292 mb->insertItem( geticon( "AppsIcon" ), tmp ); 292//#else
293//#else 293// QMenuBar* tmp = mb;
294// QMenuBar* tmp = mb; 294//#endif
295//#endif 295
296 296 QPopupMenu *file = new QPopupMenu( mb );
297 QPopupMenu *file = new QPopupMenu( mb ); 297 tmp->insertItem( tr( "File" ), file );
298 tmp->insertItem( tr( "File" ), file ); 298
299 299 QPopupMenu *navigation = new QPopupMenu(mb);
300 QPopupMenu *navigation = new QPopupMenu(mb); 300 tmp->insertItem( tr( "Navigation" ), navigation );
301 tmp->insertItem( tr( "Navigation" ), navigation ); 301
302 302 QPopupMenu *view = new QPopupMenu( mb );
303 QPopupMenu *view = new QPopupMenu( mb ); 303 tmp->insertItem( tr( "View" ), view );
304 tmp->insertItem( tr( "View" ), view ); 304
305 305 QPopupMenu *marks = new QPopupMenu( this );
306 QPopupMenu *marks = new QPopupMenu( this ); 306 tmp->insertItem( tr( "Marks" ), marks );
307 tmp->insertItem( tr( "Marks" ), marks ); 307
308 308 QPopupMenu *settings = new QPopupMenu( this );
309 QPopupMenu *settings = new QPopupMenu( this ); 309 tmp->insertItem( tr( "Settings" ), settings );
310 tmp->insertItem( tr( "Settings" ), settings ); 310
311 311// addToolBar(menubar, "Menus",QMainWindow::Top);
312// addToolBar(menubar, "Menus",QMainWindow::Top); 312// addToolBar(fileBar, "Toolbar",QMainWindow::Top);
313// addToolBar(fileBar, "Toolbar",QMainWindow::Top); 313
314 314 // QPopupMenu *edit = new QPopupMenu( this );
315 // QPopupMenu *edit = new QPopupMenu( this ); 315
316 316 /*
317 /* 317 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 );
318 QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); 318 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) );
319 connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); 319 a->addTo( bar );
320 a->addTo( bar ); 320 a->addTo( file );
321 a->addTo( file ); 321 */
322 */ 322
323 323 editorStack = new QWidgetStack( this );
324 editorStack = new QWidgetStack( this ); 324 setCentralWidget( editorStack );
325 setCentralWidget( editorStack ); 325
326 326 searchVisible = FALSE;
327 searchVisible = FALSE; 327 regVisible = FALSE;
328 regVisible = FALSE; 328 m_fontVisible = false;
329 m_fontVisible = false; 329
330 330 m_annoWin = new CAnnoEdit(editorStack);
331 m_annoWin = new CAnnoEdit(editorStack); 331 editorStack->addWidget(m_annoWin, get_unique_id());
332 editorStack->addWidget(m_annoWin, get_unique_id()); 332 connect( m_annoWin, SIGNAL( finished(const QString&, const QString&) ), this, SLOT( addAnno(const QString&, const QString&) ) );
333 connect( m_annoWin, SIGNAL( finished(const QString&, const QString&) ), this, SLOT( addAnno(const QString&, const QString&) ) ); 333 connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) );
334 connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) ); 334
335 335 m_infoWin = new infowin(editorStack);
336 m_infoWin = new infowin(editorStack); 336 editorStack->addWidget(m_infoWin, get_unique_id());
337 editorStack->addWidget(m_infoWin, get_unique_id()); 337 connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) );
338 connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) ); 338
339 339 m_graphicwin = new GraphicWin(editorStack);
340 m_graphicwin = new GraphicWin(editorStack); 340 editorStack->addWidget(m_graphicwin, get_unique_id());
341 editorStack->addWidget(m_graphicwin, get_unique_id()); 341 connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) );
342 connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); 342
343 343// bkmkselector = new QListBox(editorStack, "Bookmarks");
344// bkmkselector = new QListBox(editorStack, "Bookmarks"); 344 bkmkselector = new CBkmkSelector(editorStack, "Bookmarks");
345 bkmkselector = new CBkmkSelector(editorStack, "Bookmarks"); 345 // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) );
346 // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) ); 346 connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) );
347 connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) ); 347 connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) );
348 connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); 348 editorStack->addWidget( bkmkselector, get_unique_id() );
349 editorStack->addWidget( bkmkselector, get_unique_id() ); 349
350 350/*
351/* 351 importSelector = new FileSelector( "*", editorStack, "importselector", false );
352 importSelector = new FileSelector( "*", editorStack, "importselector", false ); 352 connect( importSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( importFile( const DocLnk & ) ) );
353 connect( importSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( importFile( const DocLnk & ) ) ); 353
354 354 editorStack->addWidget( importSelector, get_unique_id() );
355 editorStack->addWidget( importSelector, get_unique_id() ); 355
356 356 // don't need the close visible, it is redundant...
357 // don't need the close visible, it is redundant... 357 importSelector->setCloseVisible( FALSE );
358 importSelector->setCloseVisible( FALSE ); 358*/
359*/ 359// qDebug("Reading file list");
360// qDebug("Reading file list"); 360 readfilelist();
361 readfilelist(); 361
362 362 reader = new QTReader( editorStack );
363 reader = new QTReader( editorStack ); 363
364 364 reader->bDoUpdates = false;
365 reader->bDoUpdates = false; 365
366 366#ifdef USEQPE
367#ifdef USEQPE 367 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold);
368 ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); 368#endif
369#endif 369
370 370// qDebug("Reading config");
371// qDebug("Reading config"); 371// Config config( APPDIR );
372// Config config( APPDIR ); 372 config.setGroup( "View" );
373 config.setGroup( "View" ); 373 m_debounce = config.readNumEntry("Debounce", 0);
374 m_debounce = config.readNumEntry("Debounce", 0); 374#ifdef USEQPE
375#ifdef USEQPE 375 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
376 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 376#else
377#else 377 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true);
378 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); 378#endif
379#endif 379 reader->bstripcr = config.readBoolEntry( "StripCr", true );
380 reader->bstripcr = config.readBoolEntry( "StripCr", true ); 380 reader->bfulljust = config.readBoolEntry( "FullJust", false );
381 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 381 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 ));
382 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 382 reader->setlead(config.readNumEntry( "ExtraLead", 0 ));
383 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 383 reader->btextfmt = config.readBoolEntry( "TextFmt", false );
384 reader->btextfmt = config.readBoolEntry( "TextFmt", false ); 384 reader->bautofmt = config.readBoolEntry( "AutoFmt", true );
385 reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); 385 reader->bstriphtml = config.readBoolEntry( "StripHtml", false );
386 reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); 386 reader->bpeanut = config.readBoolEntry( "Peanut", false );
387 reader->bpeanut = config.readBoolEntry( "Peanut", false ); 387 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false );
388 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); 388 reader->bdepluck = config.readBoolEntry( "Depluck", false );
389 reader->bdepluck = config.readBoolEntry( "Depluck", false ); 389 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false );
390 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); 390 reader->bonespace = config.readBoolEntry( "OneSpace", false );
391 reader->bonespace = config.readBoolEntry( "OneSpace", false ); 391 reader->bunindent = config.readBoolEntry( "Unindent", false );
392 reader->bunindent = config.readBoolEntry( "Unindent", false ); 392 reader->brepara = config.readBoolEntry( "Repara", false );
393 reader->brepara = config.readBoolEntry( "Repara", false ); 393 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false );
394 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); 394 reader->bindenter = config.readNumEntry( "Indent", 0 );
395 reader->bindenter = config.readNumEntry( "Indent", 0 ); 395 reader->m_textsize = config.readNumEntry( "FontSize", 12 );
396 reader->m_textsize = config.readNumEntry( "FontSize", 12 ); 396 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184);
397 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); 397 reader->m_lastfile = config.readEntry( "LastFile", QString::null );
398 reader->m_lastfile = config.readEntry( "LastFile", QString::null ); 398 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 );
399 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); 399 reader->m_bpagemode = config.readBoolEntry( "PageMode", true );
400 reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); 400 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false);
401 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); 401 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false);
402 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); 402 reader->m_fontname = config.readEntry( "Fontname", "helvetica" );
403 reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); 403 reader->m_encd = config.readNumEntry( "Encoding", 0 );
404 reader->m_encd = config.readNumEntry( "Encoding", 0 ); 404 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 );
405 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); 405 reader->m_overlap = config.readNumEntry( "Overlap", 0 );
406 reader->m_overlap = config.readNumEntry( "Overlap", 0 ); 406 reader->m_border = config.readNumEntry( "Margin", 6 );
407 reader->m_border = config.readNumEntry( "Margin", 6 ); 407#ifdef REPALM
408#ifdef REPALM 408 reader->brepalm = config.readBoolEntry( "Repalm", true );
409 reader->brepalm = config.readBoolEntry( "Repalm", true ); 409#endif
410#endif 410 reader->bremap = config.readBoolEntry( "Remap", true );
411 reader->bremap = config.readBoolEntry( "Remap", true ); 411 reader->bmakebold = config.readBoolEntry( "MakeBold", false );
412 reader->bmakebold = config.readBoolEntry( "MakeBold", false ); 412 reader->setContinuous(config.readBoolEntry( "Continuous", true ));
413 reader->setContinuous(config.readBoolEntry( "Continuous", true )); 413 m_targetapp = config.readEntry( "TargetApp", QString::null );
414 m_targetapp = config.readEntry( "TargetApp", QString::null ); 414 m_targetmsg = config.readEntry( "TargetMsg", QString::null );
415 m_targetmsg = config.readEntry( "TargetMsg", QString::null ); 415#ifdef _SCROLLPIPE
416#ifdef _SCROLLPIPE 416 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null );
417 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); 417 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true );
418 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); 418#endif
419#endif 419 m_twoTouch = config.readBoolEntry( "TwoTouch", false);
420 m_twoTouch = config.readBoolEntry( "TwoTouch", false); 420 m_doAnnotation = config.readBoolEntry( "Annotation", false);
421 m_doAnnotation = config.readBoolEntry( "Annotation", false); 421 m_doDictionary = config.readBoolEntry( "Dictionary", false);
422 m_doDictionary = config.readBoolEntry( "Dictionary", false); 422 m_doClipboard = config.readBoolEntry( "Clipboard", false);
423 m_doClipboard = config.readBoolEntry( "Clipboard", false); 423 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll);
424 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); 424 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone);
425 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); 425 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen);
426 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); 426 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut);
427 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); 427 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn);
428 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); 428 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp);
429 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); 429 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown);
430 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); 430
431 431 m_leftScroll = config.readBoolEntry("LeftScroll", false);
432 m_leftScroll = config.readBoolEntry("LeftScroll", false); 432 m_rightScroll = config.readBoolEntry("RightScroll", false);
433 m_rightScroll = config.readBoolEntry("RightScroll", false); 433 m_upScroll = config.readBoolEntry("UpScroll", true);
434 m_upScroll = config.readBoolEntry("UpScroll", true); 434 m_downScroll = config.readBoolEntry("DownScroll", true);
435 m_downScroll = config.readBoolEntry("DownScroll", true); 435
436 436 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false);
437 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); 437 reader->setBaseSize(config.readNumEntry( "Basesize", 10 ));
438 reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); 438
439 439#ifndef USEQPE
440#ifndef USEQPE 440 config.setGroup( "Geometry" );
441 config.setGroup( "Geometry" ); 441 setGeometry(0,0,
442 setGeometry(0,0, 442 config.readNumEntry( "width", QApplication::desktop()->width()/2 ),
443 config.readNumEntry( "width", QApplication::desktop()->width()/2 ), 443 config.readNumEntry( "height", QApplication::desktop()->height()/2 ));
444 config.readNumEntry( "height", QApplication::desktop()->height()/2 )); 444 move(
445 move( 445 config.readNumEntry( "x", 20 ),
446 config.readNumEntry( "x", 20 ), 446 config.readNumEntry( "y", 20 ));
447 config.readNumEntry( "y", 20 )); 447#endif
448#endif 448
449 449
450 450
451 451 setTwoTouch(m_twoTouch);
452 setTwoTouch(m_twoTouch); 452
453 453 connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) );
454 connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) ); 454
455 455 connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) );
456 connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) ); 456 connect( reader, SIGNAL( OnWordSelected(const QString&, size_t, const QString&) ), this, SLOT( OnWordSelected(const QString&, size_t, const QString&) ) );
457 connect( reader, SIGNAL( OnWordSelected(const QString&, size_t, const QString&) ), this, SLOT( OnWordSelected(const QString&, size_t, const QString&) ) ); 457 connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) );
458 connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) ); 458 editorStack->addWidget( reader, get_unique_id() );
459 editorStack->addWidget( reader, get_unique_id() ); 459
460 460 m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL);
461 m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); 461 connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) );
462 connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) ); 462 m_preferences_action->addTo( settings );
463 m_preferences_action->addTo( settings ); 463
464 464 m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL);
465 m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL); 465 connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) );
466 connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) ); 466 m_saveconfig_action->addTo( settings );
467 m_saveconfig_action->addTo( settings ); 467
468 468 m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL);
469 m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL); 469 connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) );
470 connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) ); 470 m_loadconfig_action->addTo( settings );
471 m_loadconfig_action->addTo( settings ); 471
472 472 m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL);
473 m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL); 473 connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) );
474 connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) ); 474 m_tidyconfig_action->addTo( settings );
475 m_tidyconfig_action->addTo( settings ); 475
476 476 settings->insertSeparator();
477 settings->insertSeparator(); 477 m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL);
478 m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL); 478 connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) );
479 connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) ); 479 m_toolbarprefs_action->addTo( settings );
480 m_toolbarprefs_action->addTo( settings ); 480
481 481 m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 );
482 m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); 482 connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
483 connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); 483 m_open_action->addTo( file );
484 m_open_action->addTo( file ); 484
485 485 m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 );
486 m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 ); 486 connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) );
487 connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) ); 487 m_close_action->addTo( file );
488 m_close_action->addTo( file ); 488
489 489#ifdef _SCRIPT
490#ifdef _SCRIPT 490 a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL);
491 a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL); 491 connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) );
492 connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) ); 492 a->addTo( file );
493 a->addTo( file ); 493#endif
494#endif 494 /*
495 /* 495 a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 );
496 a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 ); 496 connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) );
497 connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) ); 497 a->addTo( file );
498 a->addTo( file ); 498
499 499 a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 );
500 a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 ); 500 connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) );
501 connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); 501 a->addTo( filebar() );
502 a->addTo( filebar() ); 502 a->addTo( edit );
503 a->addTo( edit ); 503 */
504 */ 504
505 505 m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL);
506 m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL); 506 connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) );
507 connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) ); 507 m_info_action->addTo( file );
508 m_info_action->addTo( file ); 508
509 509 m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true );
510 m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true ); 510 connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) );
511 connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) ); 511 m_touch_action->setOn(m_twoTouch);
512 m_touch_action->setOn(m_twoTouch); 512 m_touch_action->addTo( file );
513 m_touch_action->addTo( file ); 513
514 514 m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL);
515 m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL); 515 connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) );
516 connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) ); 516 file->insertSeparator();
517 file->insertSeparator(); 517// a->addTo( bar );
518// a->addTo( bar ); 518 m_find_action->addTo( file );
519 m_find_action->addTo( file ); 519
520 520 m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL);
521 m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL); 521 connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) );
522 connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) ); 522 m_exportlinks_action->addTo( file );
523 m_exportlinks_action->addTo( file ); 523
524 524 m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true );
525 m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true ); 525 connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) );
526 connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) ); 526 m_scrollButton->addTo(navigation);
527 m_scrollButton->addTo(navigation); 527 m_scrollButton->setOn(false);
528 m_scrollButton->setOn(false); 528
529 529 m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL);
530 m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); 530 connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) );
531 connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) ); 531 m_start_action->addTo(navigation);
532 m_start_action->addTo(navigation); 532
533 533 m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL);
534 m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); 534 connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) );
535 connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) ); 535 m_end_action->addTo(navigation);
536 m_end_action->addTo(navigation); 536
537 537 m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL);
538 m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); 538 connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) );
539 connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) ); 539 m_jump_action->addTo(navigation);
540 m_jump_action->addTo(navigation); 540
541 541 m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true );
542 m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); 542 connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) );
543 connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) ); 543 m_pageline_action->addTo(navigation);
544 m_pageline_action->addTo(navigation); 544 m_pageline_action->setOn(reader->m_bpagemode);
545 m_pageline_action->setOn(reader->m_bpagemode); 545
546 546 m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 );
547 m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); 547 connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) );
548 connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) ); 548 m_pageup_action->addTo( navigation );
549 m_pageup_action->addTo( navigation ); 549
550 550 m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 );
551 m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); 551 connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) );
552 connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) ); 552 m_pagedn_action->addTo( navigation );
553 m_pagedn_action->addTo( navigation ); 553
554 554 m_back_action = new QAction( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 );
555 m_back_action = new QAction( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 ); 555 connect( m_back_action, SIGNAL( activated() ), reader, SLOT( goBack() ) );
556 connect( m_back_action, SIGNAL( activated() ), reader, SLOT( goBack() ) ); 556 m_back_action->addTo( navigation );
557 m_back_action->addTo( navigation ); 557
558 558 m_home_action = new QAction( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 );
559 m_home_action = new QAction( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 ); 559 connect( m_home_action, SIGNAL( activated() ), reader, SLOT( goHome() ) );
560 connect( m_home_action, SIGNAL( activated() ), reader, SLOT( goHome() ) ); 560 m_home_action->addTo( navigation );
561 m_home_action->addTo( navigation ); 561
562 562 m_forward_action = new QAction( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 );
563 m_forward_action = new QAction( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 ); 563 connect( m_forward_action, SIGNAL( activated() ), reader, SLOT( goForward() ) );
564 connect( m_forward_action, SIGNAL( activated() ), reader, SLOT( goForward() ) ); 564 m_forward_action->addTo( navigation );
565 m_forward_action->addTo( navigation ); 565
566 566 /*
567 /* 567 a = new QAction( tr( "Find" ), QString::null, 0, this, NULL, true );
568 a = new QAction( tr( "Find" ), QString::null, 0, this, NULL, true ); 568 // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) );
569 // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); 569 a->addTo( file );
570 a->addTo( file ); 570
571 571 a = new QAction( tr( "Find Again" ), QString::null, 0, this, NULL, true );
572 a = new QAction( tr( "Find Again" ), QString::null, 0, this, NULL, true ); 572 // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) );
573 // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); 573 a->addTo( file );
574 a->addTo( file ); 574 */
575 */ 575
576 576// file->insertSeparator();
577// file->insertSeparator(); 577
578 578#ifdef _SCROLLPIPE
579#ifdef _SCROLLPIPE 579
580 580 QActionGroup* ag = new QActionGroup(this);
581 QActionGroup* ag = new QActionGroup(this); 581 ag->setExclusive(false);
582 ag->setExclusive(false); 582 spacemenu = new QPopupMenu(this);
583 spacemenu = new QPopupMenu(this); 583 file->insertItem( tr( "Scrolling" ), spacemenu );
584 file->insertItem( tr( "Scrolling" ), spacemenu ); 584
585 585 a = new QAction( tr( "Set Target" ), QString::null, 0, ag, NULL);
586 a = new QAction( tr( "Set Target" ), QString::null, 0, ag, NULL); 586 connect( a, SIGNAL( activated() ), this, SLOT( setpipetarget() ) );
587 connect( a, SIGNAL( activated() ), this, SLOT( setpipetarget() ) ); 587
588 588 a = new QAction( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true );
589 a = new QAction( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true ); 589 connect( a, SIGNAL( toggled(bool) ), this, SLOT( setpause(bool) ) );
590 connect( a, SIGNAL( toggled(bool) ), this, SLOT( setpause(bool) ) ); 590 a->setOn(reader->m_pauseAfterEachPara);
591 a->setOn(reader->m_pauseAfterEachPara); 591
592 592 ag->addTo(spacemenu);
593 ag->addTo(spacemenu); 593// file->insertSeparator();
594// file->insertSeparator(); 594
595 595#endif
596#endif 596
597 597/*
598/* 598 a = new QAction( tr( "Import" ), QString::null, 0, this, NULL );
599 a = new QAction( tr( "Import" ), QString::null, 0, this, NULL ); 599 connect( a, SIGNAL( activated() ), this, SLOT( importFiles() ) );
600 connect( a, SIGNAL( activated() ), this, SLOT( importFiles() ) ); 600 a->addTo( file );
601 a->addTo( file ); 601*/
602*/ 602
603 603 /*
604 /* 604 a = new QAction( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 );
605 a = new QAction( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 ); 605 connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) );
606 connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); 606 a->addTo( fileBar );
607 a->addTo( fileBar ); 607 a->addTo( edit );
608 a->addTo( edit ); 608 */
609 */ 609
610 610// a = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 );
611// a = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 ); 611
612 612 m_fullscreen = false;
613 m_fullscreen = false; 613 m_actFullscreen = new QAction( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true );
614 m_actFullscreen = new QAction( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true ); 614 connect( m_actFullscreen, SIGNAL( toggled(bool) ), this, SLOT( setfullscreen(bool) ) );
615 connect( m_actFullscreen, SIGNAL( toggled(bool) ), this, SLOT( setfullscreen(bool) ) ); 615 m_actFullscreen->setOn(m_fullscreen);
616 m_actFullscreen->setOn(m_fullscreen); 616 m_actFullscreen->addTo( view );
617 m_actFullscreen->addTo( view ); 617
618 618 view->insertSeparator();
619 view->insertSeparator(); 619
620 620 m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this);
621 m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this); 621 connect( m_zoomin_action, SIGNAL( activated() ), this, SLOT( zoomin() ) );
622 connect( m_zoomin_action, SIGNAL( activated() ), this, SLOT( zoomin() ) ); 622 m_zoomin_action->addTo( view );
623 m_zoomin_action->addTo( view ); 623
624 624 m_zoomout_action = new QAction( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this);
625 m_zoomout_action = new QAction( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this); 625 connect( m_zoomout_action, SIGNAL( activated() ), this, SLOT( zoomout() ) );
626 connect( m_zoomout_action, SIGNAL( activated() ), this, SLOT( zoomout() ) ); 626 m_zoomout_action->addTo( view );
627 m_zoomout_action->addTo( view ); 627
628 628 view->insertSeparator();
629 view->insertSeparator(); 629 m_setfont_action = new QAction( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this);
630 m_setfont_action = new QAction( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this); 630 connect( m_setfont_action, SIGNAL( activated() ), this, SLOT( setfont() ) );
631 connect( m_setfont_action, SIGNAL( activated() ), this, SLOT( setfont() ) ); 631 m_setfont_action->addTo( view );
632 m_setfont_action->addTo( view ); 632
633 633 view->insertSeparator();
634 view->insertSeparator(); 634 m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this);
635 m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this); 635 connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) );
636 connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) ); 636 m_setenc_action->addTo( view );
637 m_setenc_action->addTo( view ); 637
638 638 m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true);
639 m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true); 639 connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) );
640 connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); 640 m_setmono_action->addTo( view );
641 m_setmono_action->addTo( view ); 641 m_setmono_action->setOn(reader->m_bMonoSpaced);
642 m_setmono_action->setOn(reader->m_bMonoSpaced); 642
643 643
644 644 // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true );
645 // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true ); 645 // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 );
646 // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 ); 646
647 647
648 648
649 649 // a->addTo( filebar() );
650 // a->addTo( filebar() ); 650// view->insertSeparator();
651// view->insertSeparator(); 651
652 652/*
653/* 653 a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true );
654 a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true ); 654 connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) );
655 connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); 655 a->setOn(reader->m_bMonoSpaced);
656 a->setOn(reader->m_bMonoSpaced); 656 a->addTo( view );
657 a->addTo( view ); 657*/
658*/ 658/*
659/* 659 a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL);
660 a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL); 660 connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) );
661 connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) ); 661 a->addTo( view );
662 a->addTo( view ); 662*/
663*/ 663
664 664 m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL);
665 m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL); 665 connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) );
666 connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) ); 666 m_mark_action->addTo( marks );
667 m_mark_action->addTo( marks ); 667
668 668 m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL);
669 m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL); 669 connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) );
670 connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) ); 670 m_annotate_action->addTo( marks );
671 m_annotate_action->addTo( marks ); 671
672 672 m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false );
673 m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false ); 673 connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) );
674 connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) ); 674 m_goto_action->addTo( marks );
675 m_goto_action->addTo( marks ); 675
676 676 m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL);
677 m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL); 677 connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) );
678 connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) ); 678 m_delete_action->addTo( marks );
679 m_delete_action->addTo( marks ); 679
680 680 m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false );
681 m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false ); 681 connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) );
682 connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) ); 682 marks->insertSeparator();
683 marks->insertSeparator(); 683 m_autogen_action->addTo( marks );
684 m_autogen_action->addTo( marks ); 684
685 685 m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL);
686 m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL); 686 connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) );
687 connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) ); 687 m_clear_action->addTo( marks );
688 m_clear_action->addTo( marks ); 688
689 689 m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL );
690 m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL ); 690 connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) );
691 connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) ); 691 m_save_action->addTo( marks );
692 m_save_action->addTo( marks ); 692
693 693 m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL);
694 m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL); 694 connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) );
695 connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) ); 695 marks->insertSeparator();
696 marks->insertSeparator(); 696 m_tidy_action->addTo( marks );
697 m_tidy_action->addTo( marks ); 697
698 698 m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL);
699 m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); 699 connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) );
700 connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) ); 700 marks->insertSeparator();
701 marks->insertSeparator(); 701 m_startBlock_action->addTo( marks );
702 m_startBlock_action->addTo( marks ); 702
703 703 m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL);
704 m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); 704 connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) );
705 connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) ); 705 m_endBlock_action->addTo( marks );
706 m_endBlock_action->addTo( marks ); 706
707 707 m_bkmkAvail = NULL;
708 m_bkmkAvail = NULL; 708
709 709
710 710 setToolBarsMovable(m_tbmove);
711 setToolBarsMovable(m_tbmove); 711 addtoolbars(&config);
712 addtoolbars(&config); 712
713 713 pbar = new QProgressBar(this);
714 pbar = new QProgressBar(this); 714 pbar->hide();
715 pbar->hide(); 715
716 716 searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE );
717 searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); 717
718 718 searchBar->setHorizontalStretchable( TRUE );
719 searchBar->setHorizontalStretchable( TRUE ); 719
720 720 connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() ));
721 connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); 721
722 722 searchEdit = new QLineEdit( searchBar, "searchEdit" );
723 searchEdit = new QLineEdit( searchBar, "searchEdit" ); 723// QFont f("unifont", 16 /*, QFont::Bold*/);
724// QFont f("unifont", 16 /*, QFont::Bold*/); 724// searchEdit->setFont( f );
725// searchEdit->setFont( f ); 725 searchBar->setStretchableWidget( searchEdit );
726 searchBar->setStretchableWidget( searchEdit ); 726
727 727
728 728#ifdef __ISEARCH
729#ifdef __ISEARCH 729 connect( searchEdit, SIGNAL( textChanged( const QString & ) ),
730 connect( searchEdit, SIGNAL( textChanged( const QString & ) ), 730 this, SLOT( search( const QString& ) ) );
731 this, SLOT( search( const QString& ) ) ); 731#else
732#else 732 connect( searchEdit, SIGNAL( returnPressed( ) ),
733 connect( searchEdit, SIGNAL( returnPressed( ) ), 733 this, SLOT( search( ) ) );
734 this, SLOT( search( ) ) ); 734#endif
735#endif 735 QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 );
736 QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); 736 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) );
737 connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); 737 a->addTo( searchBar );
738 a->addTo( searchBar ); 738
739 739 a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 );
740 a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); 740 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) );
741 connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); 741 a->addTo( searchBar );
742 a->addTo( searchBar ); 742
743 743 searchBar->hide();
744 searchBar->hide(); 744
745 745 regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE );
746 regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE ); 746 connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() ));
747 connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); 747
748 748 regBar->setHorizontalStretchable( TRUE );
749 regBar->setHorizontalStretchable( TRUE ); 749
750 750 regEdit = new QLineEdit( regBar, "regEdit" );
751 regEdit = new QLineEdit( regBar, "regEdit" ); 751// regEdit->setFont( f );
752// regEdit->setFont( f ); 752
753 753 regBar->setStretchableWidget( regEdit );
754 regBar->setStretchableWidget( regEdit ); 754
755 755 connect( regEdit, SIGNAL( returnPressed( ) ),
756 connect( regEdit, SIGNAL( returnPressed( ) ), 756 this, SLOT( do_regaction() ) );
757 this, SLOT( do_regaction() ) ); 757
758 758 a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 );
759 a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); 759 connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) );
760 connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) ); 760 a->addTo( regBar );
761 a->addTo( regBar ); 761
762 762 a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 );
763 a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); 763 connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) );
764 connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); 764 a->addTo( regBar );
765 a->addTo( regBar ); 765
766 766 regBar->hide();
767 regBar->hide(); 767
768 768 m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE );
769 m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); 769
770 770 m_fontBar->setHorizontalStretchable( TRUE );
771 m_fontBar->setHorizontalStretchable( TRUE ); 771
772 772// qDebug("Font selector");
773// qDebug("Font selector"); 773 m_fontSelector = new QComboBox(false, m_fontBar);
774 m_fontSelector = new QComboBox(false, m_fontBar); 774 m_fontBar->setStretchableWidget( m_fontSelector );
775 m_fontBar->setStretchableWidget( m_fontSelector ); 775 {
776 { 776#ifndef USEQPE
777#ifndef USEQPE 777 QFontDatabase f;
778 QFontDatabase f; 778#else
779#else 779 FontDatabase f;
780 FontDatabase f; 780#endif
781#endif 781 QStringList flist = f.families();
782 QStringList flist = f.families(); 782 bool realfont = false;
783 bool realfont = false; 783 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++)
784 for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) 784 {
785 { 785 if (reader->m_fontname == *nm)
786 if (reader->m_fontname == *nm) 786 {
787 { 787 realfont = true;
788 realfont = true; 788 }
789 } 789 if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm);
790 if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); 790 }
791 } 791 if (!realfont) reader->m_fontname = flist[0];
792 if (!realfont) reader->m_fontname = flist[0]; 792 } // delete the FontDatabase!!!
793 } // delete the FontDatabase!!! 793 connect( m_fontSelector, SIGNAL( activated(const QString& ) ),
794 connect( m_fontSelector, SIGNAL( activated(const QString& ) ), 794 this, SLOT( do_setfont(const QString&) ) );
795 this, SLOT( do_setfont(const QString&) ) ); 795 connect( m_fontSelector, SIGNAL( activated(int ) ),
796 connect( m_fontSelector, SIGNAL( activated(int ) ), 796 this, SLOT( do_setencoding(int) ) );
797 this, SLOT( do_setencoding(int) ) ); 797
798 798 m_fontBar->hide();
799 m_fontBar->hide(); 799 m_fontVisible = false;
800 m_fontVisible = false; 800#ifdef USEMSGS
801#ifdef USEMSGS 801 connect(qApp, SIGNAL( appMessage(const QCString&, const QByteArray& ) ),
802 connect(qApp, SIGNAL( appMessage(const QCString&, const QByteArray& ) ), 802 this, SLOT( msgHandler(const QCString&, const QByteArray&) ) );
803 this, SLOT( msgHandler(const QCString&, const QByteArray&) ) ); 803#endif
804#endif 804// qDebug("Initing");
805// qDebug("Initing"); 805 reader->init();
806 reader->init(); 806// qDebug("Inited");
807// qDebug("Inited"); 807// m_buttonAction[m_spaceTarget]->setOn(true);
808// m_buttonAction[m_spaceTarget]->setOn(true); 808// qDebug("fonting");
809// qDebug("fonting"); 809 do_setfont(reader->m_fontname);
810 do_setfont(reader->m_fontname); 810 if (!reader->m_lastfile.isEmpty())
811 if (!reader->m_lastfile.isEmpty()) 811 {
812 { 812 //qDebug("doclnk");
813 //qDebug("doclnk"); 813 //doc = new DocLnk(reader->m_lastfile);
814 //doc = new DocLnk(reader->m_lastfile); 814 //qDebug("doclnk done");
815 //qDebug("doclnk done"); 815 if (pOpenlist != NULL)
816 if (pOpenlist != NULL) 816 {
817 { 817
818 818/*
819/* 819 int ind = 0;
820 int ind = 0; 820 Bkmk* p = (*pOpenlist)[ind];
821 Bkmk* p = (*pOpenlist)[ind]; 821 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile)
822 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) 822 {
823 { 823 p = (*pOpenlist)[++ind];
824 p = (*pOpenlist)[++ind]; 824 }
825 } 825*/
826*/ 826 Bkmk* p = NULL;
827 Bkmk* p = NULL; 827 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++)
828 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) 828 {
829 { 829 p = iter.pContent();
830 p = iter.pContent(); 830 if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile)
831 if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) 831 {
832 { 832 break;
833 break; 833 }
834 } 834 // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name()));
835 // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name())); 835 p = NULL;
836 p = NULL; 836 }
837 } 837 if (p != NULL)
838 if (p != NULL) 838 {
839 { 839 //qDebug("openfrombkmk");
840 //qDebug("openfrombkmk"); 840 if (!openfrombkmk(p))
841 if (!openfrombkmk(p)) 841 showEditTools();
842 showEditTools(); 842 }
843 } 843 else
844 else 844 {
845 { 845 //qDebug("openfile");
846 //qDebug("openfile"); 846 openFile( reader->m_lastfile );
847 openFile( reader->m_lastfile ); 847 }
848 } 848 }
849 } 849 else
850 else 850 {
851 { 851 // qDebug("Openfile 2");
852 // qDebug("Openfile 2"); 852 if (!reader->m_lastfile.isEmpty())
853 if (!reader->m_lastfile.isEmpty()) 853 openFile( reader->m_lastfile );
854 openFile( reader->m_lastfile ); 854 }
855 } 855 }
856 } 856 else
857 else 857 {
858 { 858 showEditTools();
859 showEditTools(); 859 }
860 } 860// qApp->processEvents();
861// qApp->processEvents(); 861 reader->bDoUpdates = true;
862 reader->bDoUpdates = true; 862 reader->update();
863 reader->update(); 863 config.setGroup("Version");
864 config.setGroup("Version"); 864 int major = config.readNumEntry("Major", 0);
865 int major = config.readNumEntry("Major", 0); 865 int bkmktype = config.readNumEntry("BkmkType", 0);
866 int bkmktype = config.readNumEntry("BkmkType", 0); 866 char minor = config.readNumEntry("Minor", 0);
867 char minor = config.readNumEntry("Minor", 0); 867 if (CheckVersion(major, bkmktype, minor))
868 if (CheckVersion(major, bkmktype, minor)) 868 {
869 { 869 config.writeEntry("Major", major);
870 config.writeEntry("Major", major); 870 config.writeEntry("BkmkType", bkmktype);
871 config.writeEntry("BkmkType", bkmktype); 871 config.writeEntry("Minor", (int)minor);
872 config.writeEntry("Minor", (int)minor); 872 }
873 } 873// qDebug("finished update");
874// qDebug("finished update"); 874}
875} 875
876 876void QTReaderApp::addtoolbars(Config* config)
877void QTReaderApp::addtoolbars(Config* config) 877{
878{ 878 config->setGroup("Toolbar");
879 config->setGroup("Toolbar"); 879
880 880 if (fileBar != NULL)
881 if (fileBar != NULL) 881 {
882 { 882 if (fileBar != menubar)
883 if (fileBar != menubar) 883 {
884 { 884 fileBar->clear();
885 fileBar->clear(); 885 }
886 } 886 else
887 else 887 {
888 { 888 m_preferences_action->removeFrom( filebar() );
889 m_preferences_action->removeFrom( filebar() ); 889 m_open_action->removeFrom( filebar() );
890 m_open_action->removeFrom( filebar() ); 890 m_close_action->removeFrom( filebar() );
891 m_close_action->removeFrom( filebar() ); 891 m_info_action->removeFrom( filebar() );
892 m_info_action->removeFrom( filebar() ); 892 m_touch_action->removeFrom( filebar() );
893 m_touch_action->removeFrom( filebar() ); 893 m_find_action->removeFrom( filebar() );
894 m_find_action->removeFrom( filebar() ); 894 }
895 } 895 }
896 } 896
897 897 m_preferences_action->addTo( filebar() );
898 m_preferences_action->addTo( filebar() ); 898 addfilebar(config, "Open", m_open_action);
899 addfilebar(config, "Open", m_open_action); 899 addfilebar(config, "Close", m_close_action);
900 addfilebar(config, "Close", m_close_action); 900 addfilebar(config, "Info", m_info_action);
901 addfilebar(config, "Info", m_info_action); 901 addfilebar(config, "Two/One Touch", m_touch_action);
902 addfilebar(config, "Two/One Touch", m_touch_action); 902 addfilebar(config, "Find", m_find_action);
903 addfilebar(config, "Find", m_find_action); 903
904 904 if (navBar != NULL)
905 if (navBar != NULL) 905 {
906 { 906 if ((navBar == fileBar) && (fileBar == menubar))
907 if ((navBar == fileBar) && (fileBar == menubar)) 907 {
908 { 908 m_scrollButton->removeFrom( navbar() );
909 m_scrollButton->removeFrom( navbar() ); 909 m_start_action->removeFrom( navbar() );
910 m_start_action->removeFrom( navbar() ); 910 m_end_action->removeFrom( navbar() );
911 m_end_action->removeFrom( navbar() ); 911 m_jump_action->removeFrom( navbar() );
912 m_jump_action->removeFrom( navbar() ); 912 m_pageline_action->removeFrom( navbar() );
913 m_pageline_action->removeFrom( navbar() ); 913 m_pageup_action->removeFrom( navbar() );
914 m_pageup_action->removeFrom( navbar() ); 914 m_pagedn_action->removeFrom( navbar() );
915 m_pagedn_action->removeFrom( navbar() ); 915 m_back_action->removeFrom( navbar() );
916 m_back_action->removeFrom( navbar() ); 916 m_home_action->removeFrom( navbar() );
917 m_home_action->removeFrom( navbar() ); 917 m_forward_action->removeFrom( navbar() );
918 m_forward_action->removeFrom( navbar() ); 918 }
919 } 919 else if (navBar != fileBar)
920 else if (navBar != fileBar) 920 {
921 { 921 navBar->clear();
922 navBar->clear(); 922 }
923 } 923 }
924 } 924
925 925 addnavbar(config, "Scroll", m_scrollButton);
926 addnavbar(config, "Scroll", m_scrollButton); 926 addnavbar(config, "Goto Start", m_start_action);
927 addnavbar(config, "Goto Start", m_start_action); 927 addnavbar(config, "Goto End", m_end_action);
928 addnavbar(config, "Goto End", m_end_action); 928
929 929 addnavbar(config, "Jump", m_jump_action);
930 addnavbar(config, "Jump", m_jump_action); 930 addnavbar(config, "Page/Line Scroll", m_pageline_action);
931 addnavbar(config, "Page/Line Scroll", m_pageline_action); 931
932 932 addnavbar(config, "Page Up", m_pageup_action);
933 addnavbar(config, "Page Up", m_pageup_action); 933 addnavbar(config, "Page Down", m_pagedn_action);
934 addnavbar(config, "Page Down", m_pagedn_action); 934
935 935 addnavbar(config, "Back", m_back_action);
936 addnavbar(config, "Back", m_back_action); 936 addnavbar(config, "Home", m_home_action);
937 addnavbar(config, "Home", m_home_action); 937 addnavbar(config, "Forward", m_forward_action);
938 addnavbar(config, "Forward", m_forward_action); 938
939 939 if (viewBar != NULL)
940 if (viewBar != NULL) 940 {
941 { 941 if ((viewBar == fileBar) && (fileBar == menubar))
942 if ((viewBar == fileBar) && (fileBar == menubar)) 942 {
943 { 943 m_actFullscreen->removeFrom( filebar() );
944 m_actFullscreen->removeFrom( filebar() ); 944 m_zoomin_action->removeFrom( viewbar() );
945 m_zoomin_action->removeFrom( viewbar() ); 945 m_zoomout_action->removeFrom( viewbar() );
946 m_zoomout_action->removeFrom( viewbar() ); 946 m_setfont_action->removeFrom( viewbar() );
947 m_setfont_action->removeFrom( viewbar() ); 947 m_setenc_action->removeFrom( viewbar() );
948 m_setenc_action->removeFrom( viewbar() ); 948 m_setmono_action->removeFrom( viewbar() );
949 m_setmono_action->removeFrom( viewbar() ); 949 }
950 } 950 else if (viewBar != fileBar)
951 else if (viewBar != fileBar) 951 {
952 { 952 viewBar->clear();
953 viewBar->clear(); 953 }
954 } 954 }
955 } 955
956 956 addviewbar(config, "Fullscreen", m_actFullscreen);
957 addviewbar(config, "Fullscreen", m_actFullscreen); 957 addviewbar(config, "Zoom In", m_zoomin_action);
958 addviewbar(config, "Zoom In", m_zoomin_action); 958 addviewbar(config, "Zoom Out", m_zoomout_action);
959 addviewbar(config, "Zoom Out", m_zoomout_action); 959 addviewbar(config, "Set Font", m_setfont_action);
960 addviewbar(config, "Set Font", m_setfont_action); 960 addviewbar(config, "Encoding Select", m_setenc_action);
961 addviewbar(config, "Encoding Select", m_setenc_action); 961 addviewbar(config, "Ideogram Mode", m_setmono_action);
962 addviewbar(config, "Ideogram Mode", m_setmono_action); 962
963 963 if (markBar != NULL)
964 if (markBar != NULL) 964 {
965 { 965 if ((markBar == fileBar) && (fileBar == menubar))
966 if ((markBar == fileBar) && (fileBar == menubar)) 966 {
967 { 967 m_mark_action->removeFrom( markbar() );
968 m_mark_action->removeFrom( markbar() ); 968 m_annotate_action->removeFrom( markbar());
969 m_annotate_action->removeFrom( markbar()); 969 m_goto_action->removeFrom( markbar() );
970 m_goto_action->removeFrom( markbar() ); 970 m_delete_action->removeFrom( markbar() );
971 m_delete_action->removeFrom( markbar() ); 971 m_autogen_action->removeFrom( markbar() );
972 m_autogen_action->removeFrom( markbar() ); 972 m_clear_action->removeFrom( markbar() );
973 m_clear_action->removeFrom( markbar() ); 973 m_save_action->removeFrom( markbar() );
974 m_save_action->removeFrom( markbar() ); 974 m_tidy_action->removeFrom( markbar() );
975 m_tidy_action->removeFrom( markbar() ); 975 m_startBlock_action->removeFrom( markbar() );
976 m_startBlock_action->removeFrom( markbar() ); 976 m_endBlock_action->removeFrom( markbar() );
977 m_endBlock_action->removeFrom( markbar() ); 977 }
978 } 978 else if (markBar != fileBar)
979 else if (markBar != fileBar) 979 {
980 { 980 markBar->clear();
981 markBar->clear(); 981 }
982 } 982 }
983 } 983 addmarkbar(config, "Mark", m_mark_action);
984 addmarkbar(config, "Mark", m_mark_action); 984 addmarkbar(config, "Annotate", m_annotate_action);
985 addmarkbar(config, "Annotate", m_annotate_action); 985 addmarkbar(config, "Goto", m_goto_action);
986 addmarkbar(config, "Goto", m_goto_action); 986 addmarkbar(config, "Delete", m_delete_action);
987 addmarkbar(config, "Delete", m_delete_action); 987 addmarkbar(config, "Autogen", m_autogen_action);
988 addmarkbar(config, "Autogen", m_autogen_action); 988 addmarkbar(config, "Clear", m_clear_action);
989 addmarkbar(config, "Clear", m_clear_action); 989 addmarkbar(config, "Save", m_save_action);
990 addmarkbar(config, "Save", m_save_action); 990 addmarkbar(config, "Tidy", m_tidy_action);
991 addmarkbar(config, "Tidy", m_tidy_action); 991 addmarkbar(config, "Start Block", m_startBlock_action);
992 addmarkbar(config, "Start Block", m_startBlock_action); 992 addmarkbar(config, "Copy Block", m_endBlock_action);
993 addmarkbar(config, "Copy Block", m_endBlock_action); 993 if (checkbar(config, "Annotation indicator"))
994 if (checkbar(config, "Annotation indicator")) 994 {
995 { 995 if (m_bkmkAvail == NULL)
996 if (m_bkmkAvail == NULL) 996 {
997 { 997 m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 );
998 m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 ); 998 connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) );
999 connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) ); 999
1000 1000 m_bkmkAvail->setEnabled(false);
1001 m_bkmkAvail->setEnabled(false); 1001 }
1002 } 1002 QLabel *spacer = new QLabel(markBar, "");
1003 QLabel *spacer = new QLabel(markBar, ""); 1003 markbar()->setStretchableWidget(spacer);
1004 markbar()->setStretchableWidget(spacer); 1004 m_bkmkAvail->removeFrom( markbar() );
1005 m_bkmkAvail->removeFrom( markbar() ); 1005 m_bkmkAvail->addTo( markbar() );
1006 m_bkmkAvail->addTo( markbar() ); 1006 }
1007 } 1007 else
1008 else 1008 {
1009 { 1009 if (m_bkmkAvail != NULL)
1010 if (m_bkmkAvail != NULL) 1010 {
1011 { 1011 m_bkmkAvail->removeFrom( markbar() );
1012 m_bkmkAvail->removeFrom( markbar() ); 1012 delete m_bkmkAvail;
1013 delete m_bkmkAvail; 1013 m_bkmkAvail = NULL;
1014 m_bkmkAvail = NULL; 1014 }
1015 } 1015 }
1016 } 1016}
1017} 1017
1018 1018bool QTReaderApp::checkbar(Config* _config, const QString& key)
1019bool QTReaderApp::checkbar(Config* _config, const QString& key) 1019{
1020{ 1020 return _config->readBoolEntry(key, false);
1021 return _config->readBoolEntry(key, false); 1021}
1022} 1022
1023 1023
1024 1024QToolBar* QTReaderApp::filebar()
1025QToolBar* QTReaderApp::filebar() 1025{
1026{ 1026 if (fileBar == NULL)
1027 if (fileBar == NULL) 1027 {
1028 { 1028 switch (m_tbpol)
1029 switch (m_tbpol) 1029 {
1030 { 1030 case cesSingle:
1031 case cesSingle: 1031 // qDebug("Setting filebar to menubar");
1032 // qDebug("Setting filebar to menubar"); 1032 fileBar = menubar;
1033 fileBar = menubar; 1033 break;
1034 break; 1034 default:
1035 default: 1035 qDebug("Incorrect toolbar policy set");
1036 qDebug("Incorrect toolbar policy set"); 1036 case cesMenuTool:
1037 case cesMenuTool: 1037 case cesMultiple:
1038 case cesMultiple: 1038 // qDebug("Creating new file bar");
1039 // qDebug("Creating new file bar"); 1039 fileBar = new QToolBar("File", this, m_tbposition);
1040 fileBar = new QToolBar("File", this, m_tbposition); 1040 break;
1041 break; 1041 }
1042 } 1042 //fileBar->setHorizontalStretchable( true );
1043 //fileBar->setHorizontalStretchable( true ); 1043 }
1044 } 1044 return fileBar;
1045 return fileBar; 1045}
1046} 1046QToolBar* QTReaderApp::viewbar()
1047QToolBar* QTReaderApp::viewbar() 1047{
1048{ 1048 if (viewBar == NULL)
1049 if (viewBar == NULL) 1049 {
1050 { 1050 switch (m_tbpol)
1051 switch (m_tbpol) 1051 {
1052 { 1052 case cesMultiple:
1053 case cesMultiple: 1053 viewBar = new QToolBar("View", this, m_tbposition);
1054 viewBar = new QToolBar("View", this, m_tbposition); 1054 break;
1055 break; 1055 default:
1056 default: 1056 qDebug("Incorrect toolbar policy set");
1057 qDebug("Incorrect toolbar policy set"); 1057 case cesSingle:
1058 case cesSingle: 1058 case cesMenuTool:
1059 case cesMenuTool: 1059 viewBar = fileBar;
1060 viewBar = fileBar; 1060 break;
1061 break; 1061 }
1062 } 1062 }
1063 } 1063 return viewBar;
1064 return viewBar; 1064}
1065} 1065QToolBar* QTReaderApp::navbar()
1066QToolBar* QTReaderApp::navbar() 1066{
1067{ 1067 if (navBar == NULL)
1068 if (navBar == NULL) 1068 {
1069 { 1069 switch (m_tbpol)
1070 switch (m_tbpol) 1070 {
1071 { 1071 case cesMultiple:
1072 case cesMultiple: 1072 // qDebug("Creating new nav bar");
1073 // qDebug("Creating new nav bar"); 1073 navBar = new QToolBar("Navigation", this, m_tbposition);
1074 navBar = new QToolBar("Navigation", this, m_tbposition); 1074 break;
1075 break; 1075 default:
1076 default: 1076 qDebug("Incorrect toolbar policy set");
1077 qDebug("Incorrect toolbar policy set"); 1077 case cesSingle:
1078 case cesSingle: 1078 case cesMenuTool:
1079 case cesMenuTool: 1079 navBar = fileBar;
1080 navBar = fileBar; 1080 // qDebug("Setting navbar to filebar");
1081 // qDebug("Setting navbar to filebar"); 1081 break;
1082 break; 1082 }
1083 } 1083 }
1084 } 1084 return navBar;
1085 return navBar; 1085}
1086} 1086QToolBar* QTReaderApp::markbar()
1087QToolBar* QTReaderApp::markbar() 1087{
1088{ 1088 if (markBar == NULL)
1089 if (markBar == NULL) 1089 {
1090 { 1090 switch (m_tbpol)
1091 switch (m_tbpol) 1091 {
1092 { 1092 case cesMultiple:
1093 case cesMultiple: 1093 markBar = new QToolBar("Marks", this, m_tbposition);
1094 markBar = new QToolBar("Marks", this, m_tbposition); 1094 break;
1095 break; 1095 default:
1096 default: 1096 qDebug("Incorrect toolbar policy set");
1097 qDebug("Incorrect toolbar policy set"); 1097 case cesSingle:
1098 case cesSingle: 1098 case cesMenuTool:
1099 case cesMenuTool: 1099 markBar = fileBar;
1100 markBar = fileBar; 1100 break;
1101 break; 1101 }
1102 } 1102 }
1103 } 1103 return markBar;
1104 return markBar; 1104}
1105} 1105
1106 1106void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a)
1107void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a) 1107{
1108{ 1108 if (_config->readBoolEntry(key, false)) a->addTo( filebar() );
1109 if (_config->readBoolEntry(key, false)) a->addTo( filebar() ); 1109}
1110} 1110void QTReaderApp::addnavbar(Config* _config, const QString& key, QAction* a)
1111void QTReaderApp::addnavbar(Config* _config, const QString& key, QAction* a) 1111{
1112{ 1112 if (_config->readBoolEntry(key, false)) a->addTo( navbar() );
1113 if (_config->readBoolEntry(key, false)) a->addTo( navbar() ); 1113}
1114} 1114void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a)
1115void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a) 1115{
1116{ 1116 if (_config->readBoolEntry(key, false)) a->addTo( markbar() );
1117 if (_config->readBoolEntry(key, false)) a->addTo( markbar() ); 1117}
1118} 1118void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a)
1119void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a) 1119{
1120{ 1120 if (_config->readBoolEntry(key, false)) a->addTo( viewbar() );
1121 if (_config->readBoolEntry(key, false)) a->addTo( viewbar() ); 1121}
1122} 1122
1123 1123void QTReaderApp::suspend() { reader->suspend(); }
1124void QTReaderApp::suspend() { reader->suspend(); } 1124
1125 1125#ifdef USEMSGS
1126#ifdef USEMSGS 1126void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data)
1127void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) 1127{
1128{ 1128 QString msg = QString::fromUtf8(_msg);
1129 QString msg = QString::fromUtf8(_msg); 1129
1130 1130//// qDebug("Received:%s", (const char*)msg);
1131//// qDebug("Received:%s", (const char*)msg); 1131
1132 1132 QDataStream stream( _data, IO_ReadOnly );
1133 QDataStream stream( _data, IO_ReadOnly ); 1133 if ( msg == "info(QString)" )
1134 if ( msg == "info(QString)" ) 1134 {
1135 { 1135 QString info;
1136 QString info; 1136 stream >> info;
1137 stream >> info; 1137 QMessageBox::information(this, PROGNAME, info);
1138 QMessageBox::information(this, PROGNAME, info); 1138 }
1139 } 1139 else if ( msg == "Update(int)" )
1140 else if ( msg == "Update(int)" ) 1140 {
1141 { 1141 int info;
1142 int info; 1142 stream >> info;
1143 stream >> info; 1143 if (info)
1144 if (info) 1144 {
1145 { 1145 reader->bDoUpdates = true;
1146 reader->bDoUpdates = true; 1146 reader->refresh();
1147 reader->refresh(); 1147 }
1148 } 1148 else
1149 else 1149 {
1150 { 1150 reader->bDoUpdates = false;
1151 reader->bDoUpdates = false; 1151 }
1152 } 1152 }
1153 } 1153 else if ( msg == "warn(QString)" )
1154 else if ( msg == "warn(QString)" ) 1154 {
1155 { 1155 QString info;
1156 QString info; 1156 stream >> info;
1157 stream >> info; 1157 QMessageBox::warning(this, PROGNAME, info);
1158 QMessageBox::warning(this, PROGNAME, info); 1158 }
1159 } 1159 else if ( msg == "exit()" )
1160 else if ( msg == "exit()" ) 1160 {
1161 { 1161 m_dontSave = true;
1162 m_dontSave = true; 1162 close();
1163 close(); 1163 }
1164 } 1164 else if ( msg == "pageDown()" )
1165 else if ( msg == "pageDown()" ) 1165 {
1166 { 1166 reader->dopagedn();
1167 reader->dopagedn(); 1167 }
1168 } 1168 else if ( msg == "pageUp()" )
1169 else if ( msg == "pageUp()" ) 1169 {
1170 { 1170 reader->dopageup();
1171 reader->dopageup(); 1171 }
1172 } 1172 else if ( msg == "lineDown()" )
1173 else if ( msg == "lineDown()" ) 1173 {
1174 { 1174 reader->lineDown();
1175 reader->lineDown(); 1175 }
1176 } 1176 else if ( msg == "lineUp()" )
1177 else if ( msg == "lineUp()" ) 1177 {
1178 { 1178 reader->lineUp();
1179 reader->lineUp(); 1179 }
1180 } 1180 else if ( msg == "showText()" )
1181 else if ( msg == "showText()" ) 1181 {
1182 { 1182 showEditTools();
1183 showEditTools(); 1183 }
1184 } 1184 else if ( msg == "home()" )
1185 else if ( msg == "home()" ) 1185 {
1186 { 1186 reader->goHome();
1187 reader->goHome(); 1187 }
1188 } 1188 else if ( msg == "back()" )
1189 else if ( msg == "back()" ) 1189 {
1190 { 1190 reader->goBack();
1191 reader->goBack(); 1191 }
1192 } 1192 else if ( msg == "forward()" )
1193 else if ( msg == "forward()" ) 1193 {
1194 { 1194 reader->goForward();
1195 reader->goForward(); 1195 }
1196 } 1196 else if ( msg == "File/Open(QString)" )
1197 else if ( msg == "File/Open(QString)" ) 1197 {
1198 { 1198 QString info;
1199 QString info; 1199 stream >> info;
1200 stream >> info; 1200 openFile( info );
1201 openFile( info ); 1201 }
1202 } 1202 else if ( msg == "File/Info()" )
1203 else if ( msg == "File/Info()" ) 1203 {
1204 { 1204 showinfo();
1205 showinfo(); 1205 }
1206 } 1206 else if ( msg == "File/Action(QString)" )
1207 else if ( msg == "File/Action(QString)" ) 1207 {
1208 { 1208 QString info;
1209 QString info; 1209 stream >> info;
1210 stream >> info; 1210 m_spaceTarget = ActNameToInt(info);
1211 m_spaceTarget = ActNameToInt(info); 1211 }
1212 } 1212 else if ( msg == "Navigation/Scroll(int)" )
1213 else if ( msg == "Navigation/Scroll(int)" ) 1213 {
1214 { 1214 int info;
1215 int info; 1215 stream >> info;
1216 stream >> info; 1216 autoScroll(info);
1217 autoScroll(info); 1217 }
1218 } 1218
1219 1219 else if ( msg == "Navigation/GotoStart()" )
1220 else if ( msg == "Navigation/GotoStart()" ) 1220 {
1221 { 1221 gotoStart();
1222 gotoStart(); 1222 }
1223 } 1223 else if ( msg == "Navigation/GotoEnd()" )
1224 else if ( msg == "Navigation/GotoEnd()" ) 1224 {
1225 { 1225 gotoEnd();
1226 gotoEnd(); 1226 }
1227 } 1227 else if ( msg == "Navigation/Jump(int)" )
1228 else if ( msg == "Navigation/Jump(int)" ) 1228 {
1229 { 1229 int info;
1230 int info; 1230 stream >> info;
1231 stream >> info; 1231 reader->locate(info);
1232 reader->locate(info); 1232 }
1233 } 1233 else if ( msg == "Navigation/Page/LineScroll(int)" )
1234 else if ( msg == "Navigation/Page/LineScroll(int)" ) 1234 {
1235 { 1235 int info;
1236 int info; 1236 stream >> info;
1237 stream >> info; 1237 pagemode(info);
1238 pagemode(info); 1238 }
1239 } 1239 else if ( msg == "Navigation/SetOverlap(int)" )
1240 else if ( msg == "Navigation/SetOverlap(int)" ) 1240 {
1241 { 1241 int info;
1242 int info; 1242 stream >> info;
1243 stream >> info; 1243 reader->m_overlap = info;
1244 reader->m_overlap = info; 1244 }
1245 } 1245 else if ( msg == "Navigation/SetMargin(int)" )
1246 else if ( msg == "Navigation/SetMargin(int)" ) 1246 {
1247 { 1247 int info;
1248 int info; 1248 stream >> info;
1249 stream >> info; 1249 do_margin(info);
1250 do_margin(info); 1250 }
1251 } 1251 else if ( msg == "File/SetDictionary(QString)" )
1252 else if ( msg == "File/SetDictionary(QString)" ) 1252 {
1253 { 1253 QString info;
1254 QString info; 1254 stream >> info;
1255 stream >> info; 1255 do_settarget(info);
1256 do_settarget(info); 1256 }
1257 } 1257#ifdef _SCROLLPIPE
1258#ifdef _SCROLLPIPE 1258 else if ( msg == "File/SetScrollTarget(QString)" )
1259 else if ( msg == "File/SetScrollTarget(QString)" ) 1259 {
1260 { 1260 QString info;
1261 QString info; 1261 stream >> info;
1262 stream >> info; 1262 reader->m_pipetarget = info;
1263 reader->m_pipetarget = info; 1263 }
1264 } 1264#endif
1265#endif 1265 else if ( msg == "File/Two/OneTouch(int)" )
1266 else if ( msg == "File/Two/OneTouch(int)" ) 1266 {
1267 { 1267 int info;
1268 int info; 1268 stream >> info;
1269 stream >> info; 1269 setTwoTouch(info);
1270 setTwoTouch(info); 1270 }
1271 } 1271 else if ( msg == "Target/Annotation(int)" )
1272 else if ( msg == "Target/Annotation(int)" ) 1272 {
1273 { 1273 int info;
1274 int info; 1274 stream >> info;
1275 stream >> info; 1275 OnAnnotation(info);
1276 OnAnnotation(info); 1276 }
1277 } 1277 else if ( msg == "Target/Dictionary(int)" )
1278 else if ( msg == "Target/Dictionary(int)" ) 1278 {
1279 { 1279 int info;
1280 int info; 1280 stream >> info;
1281 stream >> info; 1281 OnDictionary(info);
1282 OnDictionary(info); 1282 }
1283 } 1283 else if ( msg == "Target/Clipboard(int)" )
1284 else if ( msg == "Target/Clipboard(int)" ) 1284 {
1285 { 1285 int info;
1286 int info; 1286 stream >> info;
1287 stream >> info; 1287 OnClipboard(info);
1288 OnClipboard(info); 1288 }
1289 } 1289 else if ( msg == "File/Find(QString)" )
1290 else if ( msg == "File/Find(QString)" ) 1290 {
1291 { 1291 QString info;
1292 QString info; 1292 stream >> info;
1293 stream >> info; 1293 QRegExp arg(info);
1294 QRegExp arg(info); 1294 size_t pos = reader->pagelocate();
1295 size_t pos = reader->pagelocate(); 1295 size_t start = pos;
1296 size_t start = pos; 1296 CDrawBuffer test(&(reader->m_fontControl));
1297 CDrawBuffer test(&(reader->m_fontControl)); 1297 reader->getline(&test);
1298 reader->getline(&test); 1298 while (arg.match(toQString(test.data())) == -1)
1299 while (arg.match(toQString(test.data())) == -1) 1299 {
1300 { 1300 pos = reader->locate();
1301 pos = reader->locate(); 1301 if (!reader->getline(&test))
1302 if (!reader->getline(&test)) 1302 {
1303 { 1303 QMessageBox::information(this, PROGNAME, QString("Can't find\n")+info);
1304 QMessageBox::information(this, PROGNAME, QString("Can't find\n")+info); 1304 pos = start;
1305 pos = start; 1305 break;
1306 break; 1306 }
1307 } 1307 }
1308 } 1308 reader->locate(pos);
1309 reader->locate(pos); 1309 }
1310 } 1310 else if ( msg == "File/Fullscreen(int)" )
1311 else if ( msg == "File/Fullscreen(int)" ) 1311 {
1312 { 1312 int info;
1313 int info; 1313 stream >> info;
1314 stream >> info; 1314 setfullscreen(info);
1315 setfullscreen(info); 1315 }
1316 } 1316 else if ( msg == "File/Continuous(int)" )
1317 else if ( msg == "File/Continuous(int)" ) 1317 {
1318 { 1318 int info;
1319 int info; 1319 stream >> info;
1320 stream >> info; 1320 setcontinuous(info);
1321 setcontinuous(info); 1321 }
1322 } 1322 else if ( msg == "Markup(QString)" )
1323 else if ( msg == "Markup(QString)" ) 1323 {
1324 { 1324 QString info;
1325 QString info; 1325 stream >> info;
1326 stream >> info; 1326 if (info == "Auto")
1327 if (info == "Auto") 1327 {
1328 { 1328 autofmt(true);
1329 autofmt(true); 1329 }
1330 } 1330 if (info == "None")
1331 if (info == "None") 1331 {
1332 { 1332 autofmt(false);
1333 autofmt(false); 1333 textfmt(false);
1334 textfmt(false); 1334 striphtml(false);
1335 striphtml(false); 1335 peanut(false);
1336 peanut(false); 1336 }
1337 } 1337 if (info == "Text")
1338 if (info == "Text") 1338 {
1339 { 1339 textfmt(true);
1340 textfmt(true); 1340 }
1341 } 1341 if (info == "HTML")
1342 if (info == "HTML") 1342 {
1343 { 1343 striphtml(true);
1344 striphtml(true); 1344 }
1345 } 1345 if (info == "Peanut/PML")
1346 if (info == "Peanut/PML") 1346 {
1347 { 1347 peanut(true);
1348 peanut(true); 1348 }
1349 } 1349 }
1350 } 1350 else if ( msg == "Layout/StripCR(int)" )
1351 else if ( msg == "Layout/StripCR(int)" ) 1351 {
1352 { 1352 int info;
1353 int info; 1353 stream >> info;
1354 stream >> info; 1354 stripcr(info);
1355 stripcr(info); 1355 }
1356 } 1356 else if ( msg == "Layout/Dehyphen(int)" )
1357 else if ( msg == "Layout/Dehyphen(int)" ) 1357 {
1358 { 1358 int info;
1359 int info; 1359 stream >> info;
1360 stream >> info; 1360 dehyphen(info);
1361 dehyphen(info); 1361 }
1362 } 1362 else if ( msg == "Layout/Depluck(int)" )
1363 else if ( msg == "Layout/Depluck(int)" ) 1363 {
1364 { 1364 int info;
1365 int info; 1365 stream >> info;
1366 stream >> info; 1366 depluck(info);
1367 depluck(info); 1367 }
1368 } 1368 else if ( msg == "Layout/Dejpluck(int)" )
1369 else if ( msg == "Layout/Dejpluck(int)" ) 1369 {
1370 { 1370 int info;
1371 int info; 1371 stream >> info;
1372 stream >> info; 1372 dejpluck(info);
1373 dejpluck(info); 1373 }
1374 } 1374 else if ( msg == "Layout/SingleSpace(int)" )
1375 else if ( msg == "Layout/SingleSpace(int)" ) 1375 {
1376 { 1376 int info;
1377 int info; 1377 stream >> info;
1378 stream >> info; 1378 onespace(info);
1379 onespace(info); 1379 }
1380 } 1380#ifdef REPALM
1381#ifdef REPALM 1381 else if ( msg == "Layout/Repalm(int)" )
1382 else if ( msg == "Layout/Repalm(int)" ) 1382 {
1383 { 1383 int info;
1384 int info; 1384 stream >> info;
1385 stream >> info; 1385 repalm(info);
1386 repalm(info); 1386 }
1387 } 1387#endif
1388#endif 1388 else if ( msg == "Layout/Unindent(int)" )
1389 else if ( msg == "Layout/Unindent(int)" ) 1389 {
1390 { 1390 int info;
1391 int info; 1391 stream >> info;
1392 stream >> info; 1392 unindent(info);
1393 unindent(info); 1393 }
1394 } 1394 else if ( msg == "Layout/Re-paragraph(int)" )
1395 else if ( msg == "Layout/Re-paragraph(int)" ) 1395 {
1396 { 1396 int info;
1397 int info; 1397 stream >> info;
1398 stream >> info; 1398 repara(info);
1399 repara(info); 1399 }
1400 } 1400 else if ( msg == "Layout/DoubleSpace(int)" )
1401 else if ( msg == "Layout/DoubleSpace(int)" ) 1401 {
1402 { 1402 int info;
1403 int info; 1403 stream >> info;
1404 stream >> info; 1404 dblspce(info);
1405 dblspce(info); 1405 }
1406 } 1406 else if ( msg == "Layout/Indent(int)" )
1407 else if ( msg == "Layout/Indent(int)" ) 1407 {
1408 { 1408 int info;
1409 int info; 1409 stream >> info;
1410 stream >> info; 1410 reader->bindenter = info;
1411 reader->bindenter = info; 1411 reader->setfilter(reader->getfilter());
1412 reader->setfilter(reader->getfilter()); 1412 }
1413 } 1413 else if ( msg == "Layout/Remap(int)" )
1414 else if ( msg == "Layout/Remap(int)" ) 1414 {
1415 { 1415 int info;
1416 int info; 1416 stream >> info;
1417 stream >> info; 1417 remap(info);
1418 remap(info); 1418 }
1419 } 1419 else if ( msg == "Layout/Embolden(int)" )
1420 else if ( msg == "Layout/Embolden(int)" ) 1420 {
1421 { 1421 int info;
1422 int info; 1422 stream >> info;
1423 stream >> info; 1423 embolden(info);
1424 embolden(info); 1424 }
1425 } 1425 else if ( msg == "Format/Ideogram/Word(int)" )
1426 else if ( msg == "Format/Ideogram/Word(int)" ) 1426 {
1427 { 1427 int info;
1428 int info; 1428 stream >> info;
1429 stream >> info; 1429 monospace(info);
1430 monospace(info); 1430 }
1431 } 1431 else if ( msg == "Format/SetWidth(int)" )
1432 else if ( msg == "Format/SetWidth(int)" ) 1432 {
1433 { 1433 int info;
1434 int info; 1434 stream >> info;
1435 stream >> info; 1435 reader->m_charpc = info;
1436 reader->m_charpc = info; 1436 reader->setfont();
1437 reader->setfont(); 1437 reader->refresh();
1438 reader->refresh(); 1438 }
1439 } 1439 else if ( msg == "Format/SetFont(QString,int)" )
1440 else if ( msg == "Format/SetFont(QString,int)" ) 1440 {
1441 { 1441 QString fontname;
1442 QString fontname; 1442 int size;
1443 int size; 1443 stream >> fontname;
1444 stream >> fontname; 1444 stream >> size;
1445 stream >> size; 1445 setfontHelper(fontname, size);
1446 setfontHelper(fontname, size); 1446 }
1447 } 1447 else if ( msg == "Marks/Autogen(QString)" )
1448 else if ( msg == "Marks/Autogen(QString)" ) 1448 {
1449 { 1449 QString info;
1450 QString info; 1450 stream >> info;
1451 stream >> info; 1451 do_autogen(info);
1452 do_autogen(info); 1452 }
1453 } 1453 else if ( msg == "File/StartBlock()" )
1454 else if ( msg == "File/StartBlock()" ) 1454 {
1455 { 1455 editMark();
1456 editMark(); 1456 }
1457 } 1457 else if ( msg == "File/CopyBlock()" )
1458 else if ( msg == "File/CopyBlock()" ) 1458 {
1459 { 1459 editCopy();
1460 editCopy(); 1460 }
1461 } 1461}
1462} 1462#endif
1463#endif 1463ActionTypes QTReaderApp::ActNameToInt(const QString& _enc)
1464ActionTypes QTReaderApp::ActNameToInt(const QString& _enc) 1464{
1465{ 1465 for (int i = 0; i < MAX_ACTIONS; i++)
1466 for (int i = 0; i < MAX_ACTIONS; i++) 1466 {
1467 { 1467 if (m_buttonAction[i]->text() == _enc) return (ActionTypes)i;
1468 if (m_buttonAction[i]->text() == _enc) return (ActionTypes)i; 1468 }
1469 } 1469 return cesAutoScroll;
1470 return cesAutoScroll; 1470}
1471} 1471
1472 1472void QTReaderApp::setfullscreen(bool sfs)
1473void QTReaderApp::setfullscreen(bool sfs) 1473{
1474{ 1474 reader->bDoUpdates = false;
1475 reader->bDoUpdates = false; 1475 m_fullscreen = sfs;
1476 m_fullscreen = sfs; 1476 showEditTools();
1477 showEditTools(); 1477// qApp->processEvents();
1478// qApp->processEvents(); 1478 reader->bDoUpdates = true;
1479 reader->bDoUpdates = true; 1479 reader->update();
1480 reader->update(); 1480}
1481} 1481
1482 1482void QTReaderApp::buttonActionSelected(QAction* _a)
1483void QTReaderApp::buttonActionSelected(QAction* _a) 1483{
1484{ 1484//// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text()));
1485//// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text())); 1485 m_spaceTarget = ActNameToInt(_a->text());
1486 m_spaceTarget = ActNameToInt(_a->text()); 1486}
1487} 1487
1488 1488QTReaderApp::~QTReaderApp()
1489QTReaderApp::~QTReaderApp() 1489{
1490{ 1490}
1491} 1491
1492 1492void QTReaderApp::autoScroll(bool _b)
1493void QTReaderApp::autoScroll(bool _b) 1493{
1494{ 1494 reader->setautoscroll(_b);
1495 reader->setautoscroll(_b); 1495 setScrollState(reader->m_autoScroll);
1496 setScrollState(reader->m_autoScroll); 1496}
1497} 1497
1498 1498void QTReaderApp::zoomin()
1499void QTReaderApp::zoomin() 1499{
1500{ 1500 reader->zoomin();
1501 reader->zoomin(); 1501}
1502} 1502
1503 1503void QTReaderApp::zoomout()
1504void QTReaderApp::zoomout() 1504{
1505{ 1505 reader->zoomout();
1506 reader->zoomout(); 1506}
1507} 1507
1508 1508void QTReaderApp::clearBkmkList()
1509void QTReaderApp::clearBkmkList() 1509{
1510{ 1510 delete pBkmklist;
1511 delete pBkmklist; 1511 pBkmklist = NULL;
1512 pBkmklist = NULL; 1512 m_fBkmksChanged = false;
1513 m_fBkmksChanged = false; 1513}
1514} 1514
1515 1515void QTReaderApp::fileClose()
1516void QTReaderApp::fileClose() 1516{
1517{ 1517 CCloseDialog* cd = new CCloseDialog(reader->m_string, false, this);
1518 CCloseDialog* cd = new CCloseDialog(reader->m_string, false, this); 1518 if (cd->exec())
1519 if (cd->exec()) 1519 {
1520 { 1520 if (pOpenlist != NULL)
1521 if (pOpenlist != NULL) 1521 {
1522 { 1522 int ind = 0;
1523 int ind = 0; 1523 Bkmk* p = (*pOpenlist)[ind];
1524 Bkmk* p = (*pOpenlist)[ind]; 1524 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile)
1525 while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) 1525 {
1526 { 1526 p = (*pOpenlist)[++ind];
1527 p = (*pOpenlist)[++ind]; 1527 }
1528 } 1528 if (p != NULL) pOpenlist->erase(ind);
1529 if (p != NULL) pOpenlist->erase(ind); 1529 if (cd->delFile())
1530 if (cd->delFile()) 1530 {
1531 { 1531 unlink((const char*)reader->m_lastfile);
1532 unlink((const char*)reader->m_lastfile); 1532 }
1533 } 1533 if (cd->delMarks())
1534 if (cd->delMarks()) 1534 {
1535 { 1535#ifndef USEQPE
1536#ifndef USEQPE 1536 QDir d = QDir::home(); // "/"
1537 QDir d = QDir::home(); // "/" 1537 d.cd(APPDIR);
1538 d.cd(APPDIR); 1538 d.remove(reader->m_string);
1539 d.remove(reader->m_string); 1539#else /* USEQPE */
1540#else /* USEQPE */ 1540 unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string));
1541 unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); 1541#endif /* USEQPE */
1542#endif /* USEQPE */ 1542 }
1543 } 1543 if (cd->delConfig())
1544 if (cd->delConfig()) 1544 {
1545 { 1545#ifndef USEQPE
1546#ifndef USEQPE 1546 QDir d = QDir::home(); // "/"
1547 QDir d = QDir::home(); // "/" 1547 d.cd(APPDIR "/configs");
1548 d.cd(APPDIR "/configs"); 1548 d.remove(reader->m_string);
1549 d.remove(reader->m_string); 1549#else /* USEQPE */
1550#else /* USEQPE */ 1550 unlink((const char *)Global::applicationFileName(APPDIR "/configs",reader->m_string));
1551 unlink((const char *)Global::applicationFileName(APPDIR "/configs",reader->m_string)); 1551#endif /* USEQPE */
1552#endif /* USEQPE */ 1552 }
1553 } 1553 }
1554 } 1554
1555 1555 fileOpen2();
1556 fileOpen2(); 1556 }
1557 } 1557 delete cd;
1558 delete cd; 1558}
1559} 1559
1560 1560void QTReaderApp::updatefileinfo()
1561void QTReaderApp::updatefileinfo() 1561{
1562{ 1562 if (reader->m_string.isEmpty()) return;
1563 if (reader->m_string.isEmpty()) return; 1563 if (reader->m_lastfile.isEmpty()) return;
1564 if (reader->m_lastfile.isEmpty()) return; 1564 tchar* nm = fromQString(reader->m_string);
1565 tchar* nm = fromQString(reader->m_string); 1565 tchar* fl = fromQString(reader->m_lastfile);
1566 tchar* fl = fromQString(reader->m_lastfile); 1566// qDebug("Lastfile:%x", fl);
1567// qDebug("Lastfile:%x", fl); 1567 bool notadded = true;
1568 bool notadded = true; 1568 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>;
1569 if (pOpenlist == NULL) pOpenlist = new CList<Bkmk>; 1569 else
1570 else 1570 {
1571 { 1571 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++)
1572 for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) 1572 {
1573 { 1573 if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0)
1574 if (ustrcmp(CFiledata(iter->anno()).name(), fl) == 0) 1574 {
1575 { 1575 iter->value(reader->pagelocate());
1576 iter->value(reader->pagelocate()); 1576 unsigned short dlen;
1577 unsigned short dlen; 1577 unsigned char* data;
1578 unsigned char* data; 1578 CFiledata fd(iter->anno());
1579 CFiledata fd(iter->anno()); 1579 reader->setSaveData(data, dlen, fd.content(), fd.length());
1580 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1580 // qDebug("Filedata(1):%u, %u", fd.length(), dlen);
1581 // qDebug("Filedata(1):%u, %u", fd.length(), dlen); 1581 // getstate(data, dlen);
1582 // getstate(data, dlen); 1582 iter->setAnno(data, dlen);
1583 iter->setAnno(data, dlen); 1583 notadded = false;
1584 notadded = false; 1584 delete [] data;
1585 delete [] data; 1585 break;
1586 break; 1586 }
1587 } 1587 }
1588 } 1588 }
1589 } 1589// qDebug("Added?:%x", notadded);
1590// qDebug("Added?:%x", notadded); 1590 if (notadded)
1591 if (notadded) 1591 {
1592 { 1592 struct stat fnstat;
1593 struct stat fnstat; 1593 stat((const char *)reader->m_lastfile, &fnstat);
1594 stat((const char *)reader->m_lastfile, &fnstat); 1594 CFiledata fd(fnstat.st_mtime, fl);
1595 CFiledata fd(fnstat.st_mtime, fl); 1595 unsigned short dlen;
1596 unsigned short dlen; 1596 unsigned char* data;
1597 unsigned char* data; 1597 reader->setSaveData(data, dlen, fd.content(), fd.length());
1598 reader->setSaveData(data, dlen, fd.content(), fd.length()); 1598 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate()));
1599 pOpenlist->push_front(Bkmk(nm, data, dlen, reader->pagelocate())); 1599 //qDebug("Filedata(2):%u, %u", fd.length(), dlen);
1600 //qDebug("Filedata(2):%u, %u", fd.length(), dlen); 1600 delete [] data;
1601 delete [] data; 1601 }
1602 } 1602 delete [] nm;
1603 delete [] nm; 1603 delete [] fl;
1604 delete [] fl; 1604}
1605} 1605
1606 1606void QTReaderApp::fileOpen()
1607void QTReaderApp::fileOpen() 1607{
1608{ 1608/*
1609/* 1609 menu->hide();
1610 menu->hide(); 1610 fileBar->hide();
1611 fileBar->hide(); 1611 if (regVisible) regBar->hide();
1612 if (regVisible) regBar->hide(); 1612 if (searchVisible) searchBar->hide();
1613 if (searchVisible) searchBar->hide(); 1613*/
1614*/ 1614// qDebug("fileOpen");
1615// qDebug("fileOpen"); 1615// if (!reader->m_lastfile.isEmpty())
1616// if (!reader->m_lastfile.isEmpty()) 1616 updatefileinfo();
1617 updatefileinfo(); 1617 fileOpen2();
1618 fileOpen2(); 1618}
1619} 1619
1620 1620void QTReaderApp::fileOpen2()
1621void QTReaderApp::fileOpen2() 1621{
1622{ 1622 if (pBkmklist != NULL)
1623 if (pBkmklist != NULL) 1623 {
1624 { 1624 if (m_fBkmksChanged)
1625 if (m_fBkmksChanged) 1625 {
1626 { 1626 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0)
1627 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) 1627 savebkmks();
1628 savebkmks(); 1628 }
1629 } 1629 delete pBkmklist;
1630 delete pBkmklist; 1630 pBkmklist = NULL;
1631 pBkmklist = NULL; 1631 m_fBkmksChanged = false;
1632 m_fBkmksChanged = false; 1632 }
1633 } 1633 reader->disableAutoscroll();
1634 reader->disableAutoscroll(); 1634/*
1635/* 1635 editorStack->raiseWidget( fileSelector );
1636 editorStack->raiseWidget( fileSelector ); 1636 fileSelector->reread();
1637 fileSelector->reread(); 1637*/
1638*/ 1638 bool usebrowser = true;
1639 bool usebrowser = true; 1639 if (pOpenlist != NULL)
1640 if (pOpenlist != NULL) 1640 {
1641 { 1641 m_nBkmkAction = cOpenFile;
1642 m_nBkmkAction = cOpenFile; 1642 if (listbkmk(pOpenlist, "Browse")) usebrowser = false;
1643 if (listbkmk(pOpenlist, "Browse")) usebrowser = false; 1643 }
1644 } 1644 if (usebrowser)
1645 if (usebrowser) 1645 {
1646 { 1646 QString fn = usefilebrowser();
1647 QString fn = usefilebrowser(); 1647 //qApp->processEvents();
1648 //qApp->processEvents(); 1648 if (!fn.isEmpty() && QFileInfo(fn).isFile())
1649 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 1649 {
1650 { 1650 openFile(fn);
1651 openFile(fn); 1651 }
1652 } 1652 reader->setFocus();
1653 reader->setFocus(); 1653 }
1654 } 1654// reader->refresh();
1655// reader->refresh(); 1655// qDebug("HEIGHT:%d", reader->m_lastheight);
1656// qDebug("HEIGHT:%d", reader->m_lastheight); 1656}
1657} 1657
1658 1658QString QTReaderApp::usefilebrowser()
1659QString QTReaderApp::usefilebrowser() 1659{
1660{ 1660#ifndef USEQPE
1661#ifndef USEQPE 1661 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) );
1662 QString s( QFileDialog::getOpenFileName( reader->m_lastfile, QString::null, this ) ); 1662 return s;
1663 return s; 1663#else
1664#else 1664 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog,
1665 fileBrowser* fb = new fileBrowser(false, this,"OpieReader",!m_bFloatingDialog, 1665 0,
1666 0, 1666 // WStyle_Customize | WStyle_NoBorderEx,
1667 // WStyle_Customize | WStyle_NoBorderEx, 1667 "*", QFileInfo(reader->m_lastfile).dirPath(true));
1668 "*", QFileInfo(reader->m_lastfile).dirPath(true)); 1668
1669 1669
1670 1670 QString fn;
1671 QString fn; 1671 if (fb->exec())
1672 if (fb->exec()) 1672 {
1673 { 1673 fn = fb->getCurrentFile();
1674 fn = fb->getCurrentFile(); 1674 }
1675 } 1675// qDebug("Selected %s", (const char*)fn);
1676// qDebug("Selected %s", (const char*)fn); 1676 delete fb;
1677 delete fb; 1677 showEditTools();
1678 showEditTools(); 1678 return fn;
1679 return fn; 1679#endif
1680#endif 1680}
1681} 1681
1682 1682void QTReaderApp::showgraphic(QImage& pm)
1683void QTReaderApp::showgraphic(QImage& pm) 1683{
1684{ 1684 QPixmap pc;
1685 QPixmap pc; 1685 pc.convertFromImage(pm);
1686 pc.convertFromImage(pm); 1686 m_graphicwin->setPixmap(pc);
1687 m_graphicwin->setPixmap(pc); 1687 editorStack->raiseWidget( m_graphicwin );
1688 editorStack->raiseWidget( m_graphicwin ); 1688 m_graphicwin->setFocus();
1689 m_graphicwin->setFocus(); 1689}
1690} 1690
1691 1691
1692 1692void QTReaderApp::showprefs()
1693void QTReaderApp::showprefs() 1693{
1694{ 1694 CPrefs* prefwin = new CPrefs(!m_bFloatingDialog, this);
1695 CPrefs* prefwin = new CPrefs(!m_bFloatingDialog, this); 1695
1696 1696 prefwin->twotouch(m_twoTouch);
1697 prefwin->twotouch(m_twoTouch); 1697 prefwin->propfontchange(m_propogatefontchange);
1698 prefwin->propfontchange(m_propogatefontchange); 1698 prefwin->StripCR(reader->bstripcr);
1699 prefwin->StripCR(reader->bstripcr); 1699 prefwin->Dehyphen(reader->bdehyphen);
1700 prefwin->Dehyphen(reader->bdehyphen); 1700 prefwin->SingleSpace(reader->bonespace);
1701 prefwin->SingleSpace(reader->bonespace); 1701 prefwin->Unindent(reader->bunindent);
1702 prefwin->Unindent(reader->bunindent); 1702 prefwin->Reparagraph(reader->brepara);
1703 prefwin->Reparagraph(reader->brepara); 1703 prefwin->DoubleSpace(reader->bdblspce);
1704 prefwin->DoubleSpace(reader->bdblspce); 1704 prefwin->Remap(reader->bremap);
1705 prefwin->Remap(reader->bremap); 1705 prefwin->Embolden(reader->bmakebold);
1706 prefwin->Embolden(reader->bmakebold); 1706 prefwin->FullJustify(reader->bfulljust);
1707 prefwin->FullJustify(reader->bfulljust); 1707 prefwin->ParaLead(reader->getextraspace());
1708 prefwin->ParaLead(reader->getextraspace()); 1708 prefwin->LineLead(reader->getlead());
1709 prefwin->LineLead(reader->getlead()); 1709 prefwin->Margin(reader->m_border);
1710 prefwin->Margin(reader->m_border); 1710 prefwin->Indent(reader->bindenter);
1711 prefwin->Indent(reader->bindenter); 1711 if (reader->bautofmt)
1712 if (reader->bautofmt) 1712 {
1713 { 1713 prefwin->Markup(0);
1714 prefwin->Markup(0); 1714 }
1715 } 1715 else if (reader->btextfmt)
1716 else if (reader->btextfmt) 1716 {
1717 { 1717 prefwin->Markup(2);
1718 prefwin->Markup(2); 1718 }
1719 } 1719 else if (reader->bstriphtml)
1720 else if (reader->bstriphtml) 1720 {
1721 { 1721 prefwin->Markup(3);
1722 prefwin->Markup(3); 1722 }
1723 } 1723 else if (reader->bpeanut)
1724 else if (reader->bpeanut) 1724 {
1725 { 1725 prefwin->Markup(4);
1726 prefwin->Markup(4); 1726 }
1727 } 1727 else
1728 else 1728 {
1729 { 1729 prefwin->Markup(1);
1730 prefwin->Markup(1); 1730 }
1731 } 1731 prefwin->Depluck(reader->bdepluck);
1732 prefwin->Depluck(reader->bdepluck); 1732 prefwin->Dejpluck(reader->bdejpluck);
1733 prefwin->Dejpluck(reader->bdejpluck); 1733 prefwin->Continuous(reader->m_continuousDocument);
1734 prefwin->Continuous(reader->m_continuousDocument); 1734
1735 1735 prefwin->dictApplication(m_targetapp);
1736 prefwin->dictApplication(m_targetapp); 1736 prefwin->dictMessage(m_targetmsg);
1737 prefwin->dictMessage(m_targetmsg); 1737
1738 1738 prefwin->spaceAction(m_spaceTarget);
1739 prefwin->spaceAction(m_spaceTarget); 1739 prefwin->escapeAction(m_escapeTarget);
1740 prefwin->escapeAction(m_escapeTarget); 1740 prefwin->returnAction(m_returnTarget);
1741 prefwin->returnAction(m_returnTarget); 1741 prefwin->leftAction(m_leftTarget);
1742 prefwin->leftAction(m_leftTarget); 1742 prefwin->rightAction(m_rightTarget);
1743 prefwin->rightAction(m_rightTarget); 1743 prefwin->upAction(m_upTarget);
1744 prefwin->upAction(m_upTarget); 1744 prefwin->downAction(m_downTarget);
1745 prefwin->downAction(m_downTarget); 1745
1746 1746 prefwin->leftScroll(m_leftScroll);
1747 prefwin->leftScroll(m_leftScroll); 1747 prefwin->rightScroll(m_rightScroll);
1748 prefwin->rightScroll(m_rightScroll); 1748 prefwin->upScroll(m_upScroll);
1749 prefwin->upScroll(m_upScroll); 1749 prefwin->downScroll(m_downScroll);
1750 prefwin->downScroll(m_downScroll); 1750
1751 1751 prefwin->miscannotation(m_doAnnotation);
1752 prefwin->miscannotation(m_doAnnotation); 1752 prefwin->miscdictionary(m_doDictionary);
1753 prefwin->miscdictionary(m_doDictionary); 1753 prefwin->miscclipboard(m_doClipboard);
1754 prefwin->miscclipboard(m_doClipboard); 1754
1755 1755 prefwin->SwapMouse(reader->m_swapmouse);
1756 prefwin->SwapMouse(reader->m_swapmouse); 1756
1757 1757 prefwin->Font(reader->m_fontname);
1758 prefwin->Font(reader->m_fontname); 1758
1759 1759 prefwin->gfxsize(reader->getBaseSize());
1760 prefwin->gfxsize(reader->getBaseSize()); 1760
1761 1761 prefwin->pageoverlap(reader->m_overlap);
1762 prefwin->pageoverlap(reader->m_overlap); 1762
1763 1763 prefwin->ideogram(reader->m_bMonoSpaced);
1764 prefwin->ideogram(reader->m_bMonoSpaced); 1764
1765 1765 prefwin->encoding(reader->m_encd);
1766 prefwin->encoding(reader->m_encd); 1766
1767 1767 prefwin->ideogramwidth(reader->m_charpc);
1768 prefwin->ideogramwidth(reader->m_charpc); 1768
1769 1769 if (prefwin->exec())
1770 if (prefwin->exec()) 1770 {
1771 { 1771 m_twoTouch = prefwin->twotouch();
1772 m_twoTouch = prefwin->twotouch(); 1772 reader->setTwoTouch(m_twoTouch);
1773 reader->setTwoTouch(m_twoTouch); 1773 m_touch_action->setOn(m_twoTouch);
1774 m_touch_action->setOn(m_twoTouch); 1774
1775 1775 reader->bstripcr = prefwin->StripCR();
1776 reader->bstripcr = prefwin->StripCR(); 1776 reader->bdehyphen = prefwin->Dehyphen();
1777 reader->bdehyphen = prefwin->Dehyphen(); 1777 reader->bonespace = prefwin->SingleSpace();
1778 reader->bonespace = prefwin->SingleSpace(); 1778 reader->bunindent = prefwin->Unindent();
1779 reader->bunindent = prefwin->Unindent(); 1779 reader->brepara = prefwin->Reparagraph();
1780 reader->brepara = prefwin->Reparagraph(); 1780 reader->bdblspce = prefwin->DoubleSpace();
1781 reader->bdblspce = prefwin->DoubleSpace(); 1781 reader->bremap = prefwin->Remap();
1782 reader->bremap = prefwin->Remap(); 1782 reader->bmakebold = prefwin->Embolden();
1783 reader->bmakebold = prefwin->Embolden(); 1783 reader->bfulljust = prefwin->FullJustify();
1784 reader->bfulljust = prefwin->FullJustify(); 1784 reader->setextraspace(prefwin->ParaLead());
1785 reader->setextraspace(prefwin->ParaLead()); 1785 reader->setlead(prefwin->LineLead());
1786 reader->setlead(prefwin->LineLead()); 1786 reader->m_border = prefwin->Margin();
1787 reader->m_border = prefwin->Margin(); 1787 reader->bindenter = prefwin->Indent();
1788 reader->bindenter = prefwin->Indent(); 1788 reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false;
1789 reader->bautofmt = reader->btextfmt = reader->bstriphtml = reader->bpeanut = false; 1789 switch (prefwin->Markup())
1790 switch (prefwin->Markup()) 1790 {
1791 { 1791 case 0:
1792 case 0: 1792 reader->bautofmt = true;
1793 reader->bautofmt = true; 1793 break;
1794 break; 1794 case 1:
1795 case 1: 1795 break;
1796 break; 1796 case 2:
1797 case 2: 1797 reader->btextfmt = true;
1798 reader->btextfmt = true; 1798 break;
1799 break; 1799 case 3:
1800 case 3: 1800 reader->bstriphtml = true;
1801 reader->bstriphtml = true; 1801 break;
1802 break; 1802 case 4:
1803 case 4: 1803 reader->bpeanut = true;
1804 reader->bpeanut = true; 1804 break;
1805 break; 1805 default:
1806 default: 1806 qDebug("Format out of range");
1807 qDebug("Format out of range"); 1807 }
1808 } 1808 reader->bdepluck = prefwin->Depluck();
1809 reader->bdepluck = prefwin->Depluck(); 1809 reader->bdejpluck = prefwin->Dejpluck();
1810 reader->bdejpluck = prefwin->Dejpluck(); 1810 reader->setContinuous(prefwin->Continuous());
1811 reader->setContinuous(prefwin->Continuous()); 1811
1812 1812 m_spaceTarget = (ActionTypes)prefwin->spaceAction();
1813 m_spaceTarget = (ActionTypes)prefwin->spaceAction(); 1813 m_escapeTarget = (ActionTypes)prefwin->escapeAction();
1814 m_escapeTarget = (ActionTypes)prefwin->escapeAction(); 1814 m_returnTarget = (ActionTypes)prefwin->returnAction();
1815 m_returnTarget = (ActionTypes)prefwin->returnAction(); 1815 m_leftTarget = (ActionTypes)prefwin->leftAction();
1816 m_leftTarget = (ActionTypes)prefwin->leftAction(); 1816 m_rightTarget = (ActionTypes)prefwin->rightAction();
1817 m_rightTarget = (ActionTypes)prefwin->rightAction(); 1817 m_upTarget = (ActionTypes)prefwin->upAction();
1818 m_upTarget = (ActionTypes)prefwin->upAction(); 1818 m_downTarget = (ActionTypes)prefwin->downAction();
1819 m_downTarget = (ActionTypes)prefwin->downAction(); 1819 m_leftScroll = prefwin->leftScroll();
1820 m_leftScroll = prefwin->leftScroll(); 1820 m_rightScroll = prefwin->rightScroll();
1821 m_rightScroll = prefwin->rightScroll(); 1821 m_upScroll = prefwin->upScroll();
1822 m_upScroll = prefwin->upScroll(); 1822 m_downScroll = prefwin->downScroll();
1823 m_downScroll = prefwin->downScroll(); 1823
1824 1824 m_targetapp = prefwin->dictApplication();
1825 m_targetapp = prefwin->dictApplication(); 1825 m_targetmsg = prefwin->dictMessage();
1826 m_targetmsg = prefwin->dictMessage(); 1826
1827 1827 m_doAnnotation = prefwin->miscannotation();
1828 m_doAnnotation = prefwin->miscannotation(); 1828 m_doDictionary = prefwin->miscdictionary();
1829 m_doDictionary = prefwin->miscdictionary(); 1829 m_doClipboard = prefwin->miscclipboard();
1830 m_doClipboard = prefwin->miscclipboard(); 1830 reader->m_swapmouse = prefwin->SwapMouse();
1831 reader->m_swapmouse = prefwin->SwapMouse(); 1831 reader->setBaseSize(prefwin->gfxsize());
1832 reader->setBaseSize(prefwin->gfxsize()); 1832 reader->m_overlap = prefwin->pageoverlap();
1833 reader->m_overlap = prefwin->pageoverlap(); 1833 reader->m_bMonoSpaced = prefwin->ideogram();
1834 reader->m_bMonoSpaced = prefwin->ideogram(); 1834 m_setmono_action->setOn(reader->m_bMonoSpaced);
1835 m_setmono_action->setOn(reader->m_bMonoSpaced); 1835 reader->m_encd = prefwin->encoding();
1836 reader->m_encd = prefwin->encoding(); 1836 reader->m_charpc = prefwin->ideogramwidth();
1837 reader->m_charpc = prefwin->ideogramwidth(); 1837
1838 1838 if (
1839 if ( 1839 reader->m_fontname != prefwin->Font()
1840 reader->m_fontname != prefwin->Font() 1840 ||
1841 || 1841 m_propogatefontchange != prefwin->propfontchange())
1842 m_propogatefontchange != prefwin->propfontchange()) 1842 {
1843 { 1843 m_propogatefontchange = prefwin->propfontchange();
1844 m_propogatefontchange = prefwin->propfontchange(); 1844 setfontHelper(prefwin->Font());
1845 setfontHelper(prefwin->Font()); 1845 }
1846 } 1846 delete prefwin;
1847 delete prefwin; 1847 reader->setfilter(reader->getfilter());
1848 reader->setfilter(reader->getfilter()); 1848 reader->refresh();
1849 reader->refresh(); 1849
1850 1850 }
1851 } 1851 else
1852 else 1852 {
1853 { 1853 delete prefwin;
1854 delete prefwin; 1854 }
1855 } 1855}
1856} 1856
1857 1857void QTReaderApp::showtoolbarprefs()
1858void QTReaderApp::showtoolbarprefs() 1858{
1859{ 1859#ifdef USEQPE
1860#ifdef USEQPE 1860 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this);
1861 CBarPrefs* prefwin = new CBarPrefs(APPDIR, !m_bFloatingDialog, this); 1861#else
1862#else 1862 QFileInfo fi;
1863 QFileInfo fi; 1863 QDir d = QDir::home(); // "/"
1864 QDir d = QDir::home(); // "/" 1864 if ( !d.cd(APPDIR) )
1865 if ( !d.cd(APPDIR) ) 1865 { // "/tmp"
1866 { // "/tmp" 1866 qWarning( "Cannot find the \"~/%s\" directory", APPDIR );
1867 qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); 1867 d = QDir::home();
1868 d = QDir::home(); 1868 d.mkdir(APPDIR);
1869 d.mkdir(APPDIR); 1869 d.cd(APPDIR);
1870 d.cd(APPDIR); 1870 }
1871 } 1871 fi.setFile(d, INIFILE);
1872 fi.setFile(d, INIFILE); 1872 CBarPrefs* prefwin = new CBarPrefs(fi.absFilePath(), !m_bFloatingDialog, this);
1873 CBarPrefs* prefwin = new CBarPrefs(fi.absFilePath(), !m_bFloatingDialog, this); 1873#endif
1874#endif 1874 prefwin->tbpolicy(m_tbpolsave);
1875 prefwin->tbpolicy(m_tbpolsave); 1875 prefwin->tbposition(m_tbposition-2);
1876 prefwin->tbposition(m_tbposition-2); 1876 prefwin->tbmovable(m_tbmovesave);
1877 prefwin->tbmovable(m_tbmovesave); 1877 prefwin->floating(m_bFloatingDialog);
1878 prefwin->floating(m_bFloatingDialog); 1878 if (prefwin->exec())
1879 if (prefwin->exec()) 1879 {
1880 { 1880 m_bFloatingDialog = prefwin->floating();
1881 m_bFloatingDialog = prefwin->floating(); 1881 if (
1882 if ( 1882 m_tbpolsave != (ToolbarPolicy)prefwin->tbpolicy()
1883 m_tbpolsave != (ToolbarPolicy)prefwin->tbpolicy() 1883 ||
1884 || 1884 m_tbposition != (ToolBarDock)(prefwin->tbposition()+2)
1885 m_tbposition != (ToolBarDock)(prefwin->tbposition()+2) 1885 ||
1886 || 1886 m_tbmovesave != prefwin->tbmovable()
1887 m_tbmovesave != prefwin->tbmovable() 1887 )
1888 ) 1888 {
1889 { 1889 QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started");
1890 QMessageBox::warning(this, PROGNAME, "Some changes won't take effect\nuntil the next time the\napplication is started"); 1890 }
1891 } 1891 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy();
1892 m_tbpolsave = (ToolbarPolicy)prefwin->tbpolicy(); 1892 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2);
1893 m_tbposition = (ToolBarDock)(prefwin->tbposition()+2); 1893 m_tbmovesave = prefwin->tbmovable();
1894 m_tbmovesave = prefwin->tbmovable(); 1894 bool isChanged = prefwin->isChanged();
1895 bool isChanged = prefwin->isChanged(); 1895 delete prefwin;
1896 delete prefwin; 1896#ifdef USEQPE
1897#ifdef USEQPE 1897 Config config( APPDIR );
1898 Config config( APPDIR ); 1898#else
1899#else 1899 QFileInfo fi;
1900 QFileInfo fi; 1900 QDir d = QDir::home(); // "/"
1901 QDir d = QDir::home(); // "/" 1901 if ( !d.cd(APPDIR) )
1902 if ( !d.cd(APPDIR) ) 1902 { // "/tmp"
1903 { // "/tmp" 1903 qWarning( "Cannot find the \"~/%s\" directory", APPDIR );
1904 qWarning( "Cannot find the \"~/%s\" directory", APPDIR ); 1904 d = QDir::home();
1905 d = QDir::home(); 1905 d.mkdir(APPDIR);
1906 d.mkdir(APPDIR); 1906 d.cd(APPDIR);
1907 d.cd(APPDIR); 1907 }
1908 } 1908 fi.setFile(d, INIFILE);
1909 fi.setFile(d, INIFILE); 1909 Config config( fi.absFilePath() );
1910 Config config( fi.absFilePath() ); 1910#endif
1911#endif 1911 if (isChanged) addtoolbars(&config);
1912 if (isChanged) addtoolbars(&config); 1912 }
1913 } 1913 else
1914 else 1914 {
1915 { 1915 delete prefwin;
1916 delete prefwin; 1916 }
1917 } 1917}
1918} 1918
1919 1919void QTReaderApp::showinfo()
1920void QTReaderApp::showinfo() 1920{
1921{ 1921 unsigned long fs, ts, pl;
1922 unsigned long fs, ts, pl; 1922 if (reader->empty())
1923 if (reader->empty()) 1923 {
1924 { 1924 QMessageBox::information(this, PROGNAME, "No file loaded", 1);
1925 QMessageBox::information(this, PROGNAME, "No file loaded", 1); 1925 }
1926 } 1926 else
1927 else 1927 {
1928 { 1928 reader->sizes(fs,ts);
1929 reader->sizes(fs,ts); 1929 pl = reader->pagelocate();
1930 pl = reader->pagelocate(); 1930 m_infoWin->setFileSize(fs);
1931 m_infoWin->setFileSize(fs); 1931 m_infoWin->setTextSize(ts);
1932 m_infoWin->setTextSize(ts); 1932 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts);
1933 m_infoWin->setRatio(100-(100*fs + (ts >> 1))/ts); 1933 m_infoWin->setLocation(pl);
1934 m_infoWin->setLocation(pl); 1934 m_infoWin->setRead((100*pl + (ts >> 1))/ts);
1935 m_infoWin->setRead((100*pl + (ts >> 1))/ts); 1935 editorStack->raiseWidget( m_infoWin );
1936 editorStack->raiseWidget( m_infoWin ); 1936 m_infoWin->setFocus();
1937 m_infoWin->setFocus(); 1937 }
1938 } 1938}
1939} 1939
1940 1940void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn)
1941void QTReaderApp::addAnno(const QString& name, const QString& text, size_t posn) 1941{
1942{ 1942 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>;
1943 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; 1943#ifdef _UNICODE
1944#ifdef _UNICODE 1944 CBuffer buff(name.length()+1);
1945 CBuffer buff(name.length()+1); 1945 int i;
1946 int i; 1946 for (i = 0; i < name.length(); i++)
1947 for (i = 0; i < name.length(); i++) 1947 {
1948 { 1948 buff[i] = name[i].unicode();
1949 buff[i] = name[i].unicode(); 1949 }
1950 } 1950 buff[i] = 0;
1951 buff[i] = 0; 1951 CBuffer buff2(text.length()+1);
1952 CBuffer buff2(text.length()+1); 1952 for (i = 0; i < text.length(); i++)
1953 for (i = 0; i < text.length(); i++) 1953 {
1954 { 1954 buff2[i] = text[i].unicode();
1955 buff2[i] = text[i].unicode(); 1955 }
1956 } 1956 buff2[i] = 0;
1957 buff2[i] = 0; 1957 pBkmklist->push_front(Bkmk(buff.data(), buff2.data(), posn));
1958 pBkmklist->push_front(Bkmk(buff.data(), buff2.data(), posn)); 1958#else
1959#else 1959 pBkmklist->push_front(Bkmk((const tchar*)text,posn));
1960 pBkmklist->push_front(Bkmk((const tchar*)text,posn)); 1960#endif
1961#endif 1961 m_fBkmksChanged = true;
1962 m_fBkmksChanged = true; 1962 pBkmklist->sort();
1963 pBkmklist->sort(); 1963}
1964} 1964
1965 1965void QTReaderApp::addAnno(const QString& name, const QString& text)
1966void QTReaderApp::addAnno(const QString& name, const QString& text) 1966{
1967{ 1967 if (m_annoIsEditing)
1968 if (m_annoIsEditing) 1968 {
1969 { 1969 if (name.isEmpty())
1970 if (name.isEmpty()) 1970 {
1971 { 1971 QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nPlease try again", 1);
1972 QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nPlease try again", 1); 1972 }
1973 } 1973 else
1974 else 1974 {
1975 { 1975 addAnno(name, text, m_annoWin->getPosn());
1976 addAnno(name, text, m_annoWin->getPosn()); 1976 }
1977 } 1977 showEditTools();
1978 showEditTools(); 1978 }
1979 } 1979 else
1980 else 1980 {
1981 { 1981 if (m_annoWin->edited())
1982 if (m_annoWin->edited()) 1982 {
1983 { 1983 CBuffer buff(text.length()+1);
1984 CBuffer buff(text.length()+1); 1984 int i;
1985 int i; 1985 for (i = 0; i < text.length(); i++)
1986 for (i = 0; i < text.length(); i++) 1986 {
1987 { 1987 buff[i] = text[i].unicode();
1988 buff[i] = text[i].unicode(); 1988 }
1989 } 1989 buff[i] = 0;
1990 buff[i] = 0; 1990 m_fBkmksChanged = true;
1991 m_fBkmksChanged = true; 1991 m_anno->setAnno(buff.data());
1992 m_anno->setAnno(buff.data()); 1992 }
1993 } 1993 bool found = findNextBookmark(m_anno->value()+1);
1994 bool found = findNextBookmark(m_anno->value()+1); 1994 if (found)
1995 if (found) 1995 {
1996 { 1996 m_annoWin->setName(toQString(m_anno->name()));
1997 m_annoWin->setName(toQString(m_anno->name())); 1997 m_annoWin->setAnno(toQString(m_anno->anno()));
1998 m_annoWin->setAnno(toQString(m_anno->anno())); 1998 }
1999 } 1999 else
2000 else 2000 {
2001 { 2001 showEditTools();
2002 showEditTools(); 2002 }
2003 } 2003 }
2004 } 2004}
2005} 2005
2006 2006bool QTReaderApp::findNextBookmark(size_t start)
2007bool QTReaderApp::findNextBookmark(size_t start) 2007{
2008{ 2008 bool found = false;
2009 bool found = false; 2009 for (CList<Bkmk>::iterator iter = pBkmklist->begin(); iter != pBkmklist->end(); iter++)
2010 for (CList<Bkmk>::iterator iter = pBkmklist->begin(); iter != pBkmklist->end(); iter++) 2010 {
2011 { 2011 if (iter->value() >= start)
2012 if (iter->value() >= start) 2012 {
2013 { 2013 if (iter->value() < reader->locate())
2014 if (iter->value() < reader->locate()) 2014 {
2015 { 2015 found = true;
2016 found = true; 2016 m_anno = iter.pContent();
2017 m_anno = iter.pContent(); 2017 }
2018 } 2018 break;
2019 break; 2019 }
2020 } 2020 }
2021 } 2021 return found;
2022 return found; 2022}
2023} 2023
2024 2024void QTReaderApp::addanno()
2025void QTReaderApp::addanno() 2025{
2026{ 2026 if (reader->empty())
2027 if (reader->empty()) 2027 {
2028 { 2028 QMessageBox::information(this, PROGNAME, "No file loaded", 1);
2029 QMessageBox::information(this, PROGNAME, "No file loaded", 1); 2029 }
2030 } 2030 else
2031 else 2031 {
2032 { 2032 m_annoWin->setName("");
2033 m_annoWin->setName(""); 2033 m_annoWin->setAnno("");
2034 m_annoWin->setAnno(""); 2034 m_annoWin->setPosn(reader->pagelocate());
2035 m_annoWin->setPosn(reader->pagelocate()); 2035 m_annoIsEditing = true;
2036 m_annoIsEditing = true; 2036 editorStack->raiseWidget( m_annoWin );
2037 editorStack->raiseWidget( m_annoWin ); 2037#ifdef USEQPE
2038#ifdef USEQPE 2038 Global::showInputMethod();
2039 Global::showInputMethod(); 2039#endif
2040#endif 2040 m_annoWin->setFocus();
2041 m_annoWin->setFocus(); 2041 }
2042 } 2042}
2043} 2043
2044 2044void QTReaderApp::infoClose()
2045void QTReaderApp::infoClose() 2045{
2046{ 2046 showEditTools();
2047 showEditTools(); 2047}
2048} 2048
2049 2049/*
2050/* 2050void QTReaderApp::fileRevert()
2051void QTReaderApp::fileRevert() 2051{
2052{ 2052 clear();
2053 clear(); 2053 fileOpen();
2054 fileOpen(); 2054}
2055} 2055
2056 2056void QTReaderApp::editCut()
2057void QTReaderApp::editCut() 2057{
2058{ 2058#ifndef QT_NO_CLIPBOARD
2059#ifndef QT_NO_CLIPBOARD 2059 editor->cut();
2060 editor->cut(); 2060#endif
2061#endif 2061}
2062} 2062*/
2063*/ 2063void QTReaderApp::editMark()
2064void QTReaderApp::editMark() 2064{
2065{ 2065 m_savedpos = reader->pagelocate();
2066 m_savedpos = reader->pagelocate(); 2066}
2067} 2067
2068 2068void QTReaderApp::editCopy()
2069void QTReaderApp::editCopy() 2069{
2070{ 2070 QClipboard* cb = QApplication::clipboard();
2071 QClipboard* cb = QApplication::clipboard(); 2071 QString text;
2072 QString text; 2072 int ch;
2073 int ch; 2073 unsigned long currentpos = reader->pagelocate();
2074 unsigned long currentpos = reader->pagelocate(); 2074 unsigned long endpos = reader->locate();
2075 unsigned long endpos = reader->locate(); 2075 if (m_savedpos == 0xffffffff)
2076 if (m_savedpos == 0xffffffff) 2076 {
2077 { 2077 m_savedpos = currentpos;
2078 m_savedpos = currentpos; 2078 }
2079 } 2079 reader->jumpto(m_savedpos);
2080 reader->jumpto(m_savedpos); 2080 while (reader->explocate() < endpos && (ch = reader->getch()) != UEOF)
2081 while (reader->explocate() < endpos && (ch = reader->getch()) != UEOF) 2081 {
2082 { 2082 text += ch;
2083 text += ch; 2083 }
2084 } 2084 cb->setText(text);
2085 cb->setText(text); 2085 reader->locate(currentpos);
2086 reader->locate(currentpos); 2086 m_savedpos = 0xffffffff;
2087 m_savedpos = 0xffffffff; 2087}
2088} 2088
2089 2089void QTReaderApp::gotoStart()
2090void QTReaderApp::gotoStart() 2090{
2091{ 2091 reader->locate(reader->buffdoc.startSection());
2092 reader->locate(reader->buffdoc.startSection()); 2092}
2093} 2093
2094 2094void QTReaderApp::gotoEnd()
2095void QTReaderApp::gotoEnd() 2095{
2096{ 2096 reader->dopageup(reader->buffdoc.endSection());
2097 reader->dopageup(reader->buffdoc.endSection()); 2097}
2098} 2098
2099 2099void QTReaderApp::pageup()
2100void QTReaderApp::pageup() 2100{
2101{ 2101 reader->NavUp();
2102 reader->NavUp(); 2102}
2103} 2103
2104 2104void QTReaderApp::pagedn()
2105void QTReaderApp::pagedn() 2105{
2106{ 2106 reader->NavDown();
2107 reader->NavDown(); 2107}
2108} 2108
2109 2109void QTReaderApp::pagemode(bool _b)
2110void QTReaderApp::pagemode(bool _b) 2110{
2111{ 2111 reader->setpagemode(_b);
2112 reader->setpagemode(_b); 2112}
2113} 2113
2114 2114/*
2115/* 2115void QTReaderApp::setspacing()
2116void QTReaderApp::setspacing() 2116{
2117{ 2117 m_nRegAction = cMonoSpace;
2118 m_nRegAction = cMonoSpace; 2118 char lcn[20];
2119 char lcn[20]; 2119 sprintf(lcn, "%lu", reader->m_charpc);
2120 sprintf(lcn, "%lu", reader->m_charpc); 2120 regEdit->setText(lcn);
2121 regEdit->setText(lcn); 2121 do_regedit();
2122 do_regedit(); 2122}
2123} 2123*/
2124*/ 2124void QTReaderApp::settarget()
2125void QTReaderApp::settarget() 2125{
2126{ 2126 m_nRegAction = cSetTarget;
2127 m_nRegAction = cSetTarget; 2127 QString text = ((m_targetapp.isEmpty()) ? QString("") : m_targetapp)
2128 QString text = ((m_targetapp.isEmpty()) ? QString("") : m_targetapp) 2128 + "/"
2129 + "/" 2129 + ((m_targetmsg.isEmpty()) ? QString("") : m_targetmsg);
2130 + ((m_targetmsg.isEmpty()) ? QString("") : m_targetmsg); 2130 regEdit->setText(text);
2131 regEdit->setText(text); 2131 do_regedit();
2132 do_regedit(); 2132}
2133} 2133
2134 2134/*
2135/* 2135void QTReaderApp::do_mono(const QString& lcn)
2136void QTReaderApp::do_mono(const QString& lcn) 2136{
2137{ 2137 bool ok;
2138 bool ok; 2138 unsigned long ulcn = lcn.toULong(&ok);
2139 unsigned long ulcn = lcn.toULong(&ok); 2139 if (ok)
2140 if (ok) 2140 {
2141 { 2141 reader->m_charpc = ulcn;
2142 reader->m_charpc = ulcn; 2142 reader->setfont();
2143 reader->setfont(); 2143 reader->refresh();
2144 reader->refresh(); 2144 //reader->setmono(true);
2145 //reader->setmono(true); 2145 }
2146 } 2146 else
2147 else 2147 QMessageBox::information(this, PROGNAME, "Must be a number");
2148 QMessageBox::information(this, PROGNAME, "Must be a number"); 2148}
2149} 2149*/
2150*/ 2150/*
2151/* 2151void QTReaderApp::editPaste()
2152void QTReaderApp::editPaste() 2152{
2153{ 2153#ifndef QT_NO_CLIPBOARD
2154#ifndef QT_NO_CLIPBOARD 2154 editor->paste();
2155 editor->paste(); 2155#endif
2156#endif 2156}
2157} 2157*/
2158*/ 2158
2159 2159void QTReaderApp::editFind()
2160void QTReaderApp::editFind() 2160{
2161{ 2161 searchStart = reader->pagelocate();
2162 searchStart = reader->pagelocate(); 2162#ifdef __ISEARCH
2163#ifdef __ISEARCH 2163 searchStack = new QStack<searchrecord>;
2164 searchStack = new QStack<searchrecord>; 2164#endif
2165#endif 2165#ifdef USEQPE
2166#ifdef USEQPE 2166 Global::showInputMethod();
2167 Global::showInputMethod(); 2167#endif
2168#endif 2168 searchBar->show();
2169 searchBar->show(); 2169 searchVisible = TRUE;
2170 searchVisible = TRUE; 2170 searchEdit->setFocus();
2171 searchEdit->setFocus(); 2171#ifdef __ISEARCH
2172#ifdef __ISEARCH 2172 searchStack->push(new searchrecord("",reader->pagelocate()));
2173 searchStack->push(new searchrecord("",reader->pagelocate())); 2173#endif
2174#endif 2174}
2175} 2175
2176 2176void QTReaderApp::findNext()
2177void QTReaderApp::findNext() 2177{
2178{ 2178// // qDebug("findNext called\n");
2179// // qDebug("findNext called\n"); 2179#ifdef __ISEARCH
2180#ifdef __ISEARCH 2180 QString arg = searchEdit->text();
2181 QString arg = searchEdit->text(); 2181#else
2182#else 2182 QRegExp arg = searchEdit->text();
2183 QRegExp arg = searchEdit->text(); 2183#endif
2184#endif 2184 CDrawBuffer test(&(reader->m_fontControl));
2185 CDrawBuffer test(&(reader->m_fontControl)); 2185 size_t start = reader->pagelocate();
2186 size_t start = reader->pagelocate(); 2186 reader->jumpto(start);
2187 reader->jumpto(start); 2187 reader->getline(&test);
2188 reader->getline(&test); 2188 dosearch(start, test, arg);
2189 dosearch(start, test, arg); 2189}
2190} 2190
2191 2191void QTReaderApp::findClose()
2192void QTReaderApp::findClose() 2192{
2193{ 2193 searchVisible = FALSE;
2194 searchVisible = FALSE; 2194 searchEdit->setText("");
2195 searchEdit->setText(""); 2195#ifdef USEQPE
2196#ifdef USEQPE 2196 Global::hideInputMethod();
2197 Global::hideInputMethod(); 2197#endif
2198#endif 2198 searchBar->hide();
2199 searchBar->hide(); 2199#ifdef __ISEARCH
2200#ifdef __ISEARCH 2200// searchStack = new QStack<searchrecord>;
2201// searchStack = new QStack<searchrecord>; 2201 while (!searchStack->isEmpty())
2202 while (!searchStack->isEmpty()) 2202 {
2203 { 2203 delete searchStack->pop();
2204 delete searchStack->pop(); 2204 }
2205 } 2205 delete searchStack;
2206 delete searchStack; 2206#endif
2207#endif 2207 reader->setFocus();
2208 reader->setFocus(); 2208}
2209} 2209
2210 2210void QTReaderApp::regClose()
2211void QTReaderApp::regClose() 2211{
2212{ 2212 regVisible = FALSE;
2213 regVisible = FALSE; 2213 regEdit->setText("");
2214 regEdit->setText(""); 2214 regBar->hide();
2215 regBar->hide(); 2215#ifdef USEQPE
2216#ifdef USEQPE 2216 Global::hideInputMethod();
2217 Global::hideInputMethod(); 2217#endif
2218#endif 2218 reader->setFocus();
2219 reader->setFocus(); 2219}
2220} 2220
2221 2221#ifdef __ISEARCH
2222#ifdef __ISEARCH 2222bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QString& arg)
2223bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QString& arg) 2223#else
2224#else 2224bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg)
2225bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg) 2225#endif
2226#endif 2226{
2227{ 2227 bool ret = true;
2228 bool ret = true; 2228 unsigned long fs, ts;
2229 unsigned long fs, ts; 2229 reader->sizes(fs,ts);
2230 reader->sizes(fs,ts); 2230 size_t pos = reader->locate();
2231 size_t pos = reader->locate(); 2231 pbar->setGeometry(searchBar->x(),searchBar->y(),searchBar->width(), searchBar->height());
2232 pbar->setGeometry(searchBar->x(),searchBar->y(),searchBar->width(), searchBar->height()); 2232 pbar->show();
2233 pbar->show(); 2233 pbar->raise();
2234 pbar->raise(); 2234 pbar->reset();
2235 pbar->reset(); 2235 int offset;
2236 int offset; 2236 int lastpc = (100*pos)/ts;
2237 int lastpc = (100*pos)/ts; 2237 pbar->setProgress(lastpc);
2238 pbar->setProgress(lastpc); 2238// qApp->processEvents();
2239// qApp->processEvents(); 2239 if (reader->buffdoc.getpara(test) >= 0)
2240 if (reader->buffdoc.getpara(test) >= 0) 2240 {
2241 { 2241 reader->setFocus();
2242 reader->setFocus(); 2242#ifdef __ISEARCH
2243#ifdef __ISEARCH 2243 while (strstr(test.data(),(const tchar*)arg) == NULL)
2244 while (strstr(test.data(),(const tchar*)arg) == NULL) 2244#else
2245#else 2245#ifdef _UNICODE
2246#ifdef _UNICODE 2246 while ((offset = arg.match(toQString(test.data()))) == -1)
2247 while ((offset = arg.match(toQString(test.data()))) == -1) 2247#else
2248#else 2248 while (arg.match(test.data()) == -1)
2249 while (arg.match(test.data()) == -1) 2249#endif
2250#endif 2250#endif
2251#endif 2251 {
2252 { 2252 pos = reader->locate();
2253 pos = reader->locate(); 2253 int pc = (100*pos)/ts;
2254 int pc = (100*pos)/ts; 2254 if (pc != lastpc)
2255 if (pc != lastpc) 2255 {
2256 { 2256 pbar->setProgress(pc);
2257 pbar->setProgress(pc); 2257 qApp->processEvents();
2258 qApp->processEvents(); 2258 reader->setFocus();
2259 reader->setFocus(); 2259 lastpc = pc;
2260 lastpc = pc; 2260 }
2261 } 2261
2262 2262 if (reader->buffdoc.getpara(test) < 0)
2263 if (reader->buffdoc.getpara(test) < 0) 2263 {
2264 { 2264 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2)
2265 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) 2265 pos = searchStart;
2266 pos = searchStart; 2266 else
2267 else 2267 pos = start;
2268 pos = start; 2268 findClose();
2269 findClose(); 2269 pbar->hide();
2270 pbar->hide(); 2270 reader->locate(pos);
2271 reader->locate(pos); 2271 return false;
2272 return false; 2272 }
2273 } 2273 }
2274 } 2274// qDebug("Found it at %u:%u", pos, offset);
2275// qDebug("Found it at %u:%u", pos, offset); 2275 pbar->hide();
2276 pbar->hide(); 2276// qDebug("Hid");
2277// qDebug("Hid"); 2277 reader->locate(pos+offset);
2278 reader->locate(pos+offset); 2278// qDebug("Loacted");
2279// qDebug("Loacted"); 2279// qDebug("page up");
2280// qDebug("page up"); 2280 ret = true;
2281 ret = true; 2281 }
2282 } 2282 else
2283 else 2283 {
2284 { 2284 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2)
2285 if (QMessageBox::warning(this, "Can't find", searchEdit->text(), 1, 2) == 2) 2285 pos = searchStart;
2286 pos = searchStart; 2286 else
2287 else 2287 pos = start;
2288 pos = start; 2288 ret = false;
2289 ret = false; 2289 findClose();
2290 findClose(); 2290 }
2291 } 2291 return ret;
2292 return ret; 2292}
2293} 2293
2294 2294#ifdef __ISEARCH
2295#ifdef __ISEARCH 2295void QTReaderApp::search(const QString & arg)
2296void QTReaderApp::search(const QString & arg) 2296{
2297{ 2297 searchrecord* ss = searchStack->top();
2298 searchrecord* ss = searchStack->top(); 2298 CBuffer test;
2299 CBuffer test; 2299 size_t start = reader->pagelocate();
2300 size_t start = reader->pagelocate(); 2300 bool haspopped = false;
2301 bool haspopped = false; 2301 while (arg.left(ss->s.length()) != ss->s)
2302 while (arg.left(ss->s.length()) != ss->s) 2302 {
2303 { 2303 haspopped = true;
2304 haspopped = true; 2304 start = ss->pos;
2305 start = ss->pos; 2305// reader->locate(start);
2306// reader->locate(start); 2306 searchStack->pop();
2307 searchStack->pop(); 2307 delete ss;
2308 delete ss; 2308 }
2309 } 2309 if (haspopped) reader->locate(start);
2310 if (haspopped) reader->locate(start); 2310/*
2311/* 2311 if (arg.length() < ss->len)
2312 if (arg.length() < ss->len) 2312 {
2313 { 2313 start = ss->pos;
2314 start = ss->pos; 2314 reader->locate(start);
2315 reader->locate(start); 2315 searchStack->pop();
2316 searchStack->pop(); 2316 delete ss;
2317 delete ss; 2317 }
2318 } 2318*/
2319*/ 2319 else
2320 else 2320 {
2321 { 2321 start = reader->pagelocate();
2322 start = reader->pagelocate(); 2322 reader->jumpto(start);
2323 reader->jumpto(start); 2323 searchStack->push(new searchrecord(arg,start));
2324 searchStack->push(new searchrecord(arg,start)); 2324 }
2325 } 2325 dosearch(start, test, arg);
2326 dosearch(start, test, arg); 2326}
2327} 2327#else
2328#else 2328void QTReaderApp::search()
2329void QTReaderApp::search() 2329{
2330{ 2330 findNext();
2331 findNext(); 2331}
2332} 2332#endif
2333#endif 2333
2334 2334void QTReaderApp::openFile( const QString &f )
2335void QTReaderApp::openFile( const QString &f ) 2335{
2336{ 2336// qDebug("File:%s", (const char*)f);
2337// qDebug("File:%s", (const char*)f); 2337// openFile(DocLnk(f));
2338// openFile(DocLnk(f)); 2338//}
2339//} 2339//
2340// 2340//void QTReaderApp::openFile( const DocLnk &f )
2341//void QTReaderApp::openFile( const DocLnk &f ) 2341//{
2342//{ 2342 clear();
2343 clear(); 2343 QFileInfo fm(f);
2344 QFileInfo fm(f); 2344 if ( fm.exists() )
2345 if ( fm.exists() ) 2345 {
2346 { 2346// QMessageBox::information(0, "Progress", "Calling fileNew()");
2347// QMessageBox::information(0, "Progress", "Calling fileNew()"); 2347#ifdef USEQPE
2348#ifdef USEQPE 2348 if (fm.extension( FALSE ) == "desktop")
2349 if (fm.extension( FALSE ) == "desktop") 2349 {
2350 { 2350 DocLnk d(f);
2351 DocLnk d(f); 2351 QFileInfo fnew(d.file());
2352 QFileInfo fnew(d.file()); 2352 fm = fnew;
2353 fm = fnew; 2353 if (!fm.exists()) return;
2354 if (!fm.exists()) return; 2354 }
2355 } 2355#endif
2356#endif 2356 clear();
2357 clear(); 2357
2358 2358 reader->setText(fm.baseName(), fm.absFilePath());
2359 reader->setText(fm.baseName(), fm.absFilePath()); 2359 m_loadedconfig = readconfig(reader->m_string, false);
2360 m_loadedconfig = readconfig(reader->m_string, false); 2360 showEditTools();
2361 showEditTools(); 2361 readbkmks();
2362 readbkmks(); 2362 m_savedpos = 0xffffffff;
2363 m_savedpos = 0xffffffff; 2363 }
2364 } 2364 else
2365 else 2365 {
2366 { 2366 QMessageBox::information(this, PROGNAME, "File does not exist");
2367 QMessageBox::information(this, PROGNAME, "File does not exist"); 2367 reader->m_lastfile = QString::null;
2368 reader->m_lastfile = QString::null; 2368 }
2369 } 2369
2370 2370}
2371} 2371/*
2372/* 2372void QTReaderApp::resizeEvent(QResizeEvent* e)
2373void QTReaderApp::resizeEvent(QResizeEvent* e) 2373{
2374{ 2374 if (m_fullscreen)
2375 if (m_fullscreen) 2375 {
2376 { 2376 showNormal();
2377 showNormal(); 2377 showFullScreen();
2378 showFullScreen(); 2378 }
2379 } 2379}
2380} 2380*/
2381*/ 2381void QTReaderApp::handlekey(QKeyEvent* e)
2382void QTReaderApp::handlekey(QKeyEvent* e) 2382{
2383{ 2383// qDebug("Keypress event");
2384// qDebug("Keypress event"); 2384 timeb now;
2385 timeb now; 2385 ftime(&now);
2386 ftime(&now); 2386 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm;
2387 unsigned long etime = (1000*(now.time - m_lastkeytime.time) + now.millitm)-m_lastkeytime.millitm; 2387 if (etime < m_debounce)
2388 if (etime < m_debounce) 2388 {
2389 { 2389 return;
2390 return; 2390 }
2391 } 2391 m_lastkeytime = now;
2392 m_lastkeytime = now; 2392 switch(e->key())
2393 switch(e->key()) 2393 {
2394 { 2394 case Key_Escape:
2395 case Key_Escape: 2395 // qDebug("escape event");
2396 // qDebug("escape event"); 2396 if (m_disableesckey)
2397 if (m_disableesckey) 2397 {
2398 { 2398 m_disableesckey = false;
2399 m_disableesckey = false; 2399 }
2400 } 2400 else
2401 else 2401 {
2402 { 2402 m_bcloseDisabled = true;
2403 m_bcloseDisabled = true; 2403 if (m_fullscreen)
2404 if (m_fullscreen) 2404 {
2405 { 2405 m_actFullscreen->setOn(false);
2406 m_actFullscreen->setOn(false); 2406 e->accept();
2407 e->accept(); 2407 }
2408 } 2408 else
2409 else 2409 {
2410 { 2410 // qDebug("escape action");
2411 // qDebug("escape action"); 2411 doAction(m_escapeTarget, e);
2412 doAction(m_escapeTarget, e); 2412 }
2413 } 2413 }
2414 } 2414 break;
2415 break; 2415 case Key_Space:
2416 case Key_Space: 2416 {
2417 { 2417 doAction(m_spaceTarget, e);
2418 doAction(m_spaceTarget, e); 2418 }
2419 } 2419 break;
2420 break; 2420 case Key_Return:
2421 case Key_Return: 2421 {
2422 { 2422 doAction(m_returnTarget, e);
2423 doAction(m_returnTarget, e); 2423 }
2424 } 2424 break;
2425 break; 2425 case Key_Left:
2426 case Key_Left: 2426 {
2427 { 2427 if (reader->m_autoScroll && m_leftScroll)
2428 if (reader->m_autoScroll && m_leftScroll) 2428 {
2429 { 2429 reader->reduceScroll();
2430 reader->reduceScroll(); 2430 }
2431 } 2431 else
2432 else 2432 {
2433 { 2433 doAction(m_leftTarget, e);
2434 doAction(m_leftTarget, e); 2434 }
2435 } 2435 }
2436 } 2436 break;
2437 break; 2437 case Key_Right:
2438 case Key_Right: 2438 {
2439 { 2439 if (reader->m_autoScroll && m_rightScroll)
2440 if (reader->m_autoScroll && m_rightScroll) 2440 {
2441 { 2441 reader->increaseScroll();
2442 reader->increaseScroll(); 2442 }
2443 } 2443 else
2444 else 2444 {
2445 { 2445 doAction(m_rightTarget, e);
2446 doAction(m_rightTarget, e); 2446 }
2447 } 2447 }
2448 } 2448 break;
2449 break; 2449 case Key_Up:
2450 case Key_Up: 2450 {
2451 { 2451 if (reader->m_autoScroll && m_upScroll)
2452 if (reader->m_autoScroll && m_upScroll) 2452 {
2453 { 2453 reader->increaseScroll();
2454 reader->increaseScroll(); 2454 }
2455 } 2455 else
2456 else 2456 {
2457 { 2457 doAction(m_upTarget, e);
2458 doAction(m_upTarget, e); 2458 }
2459 } 2459 }
2460 } 2460 break;
2461 break; 2461 case Key_Down:
2462 case Key_Down: 2462 {
2463 { 2463 if (reader->m_autoScroll && m_downScroll)
2464 if (reader->m_autoScroll && m_downScroll) 2464 {
2465 { 2465 reader->reduceScroll();
2466 reader->reduceScroll(); 2466 }
2467 } 2467 else
2468 else 2468 {
2469 { 2469 doAction(m_downTarget, e);
2470 doAction(m_downTarget, e); 2470 }
2471 } 2471 }
2472 } 2472 break;
2473 break; 2473 default:
2474 default: 2474 {
2475 { 2475 e->ignore();
2476 e->ignore(); 2476 }
2477 } 2477
2478 2478/*
2479/* 2479 QString msg("Key press was:");
2480 QString msg("Key press was:"); 2480 QString key;
2481 QString key; 2481 msg += key.setNum(e->key());
2482 msg += key.setNum(e->key()); 2482 QMessageBox::information(this, PROGNAME, msg);
2483 QMessageBox::information(this, PROGNAME, msg); 2483*/
2484*/ 2484 }
2485 } 2485}
2486} 2486
2487 2487void QTReaderApp::showEditTools()
2488void QTReaderApp::showEditTools() 2488{
2489{ 2489// if ( !doc )
2490// if ( !doc ) 2490 //close();
2491 //close(); 2491 if (m_fullscreen)
2492 if (m_fullscreen) 2492 {
2493 { 2493 if (menubar != NULL) menubar->hide();
2494 if (menubar != NULL) menubar->hide(); 2494 if (fileBar != NULL) fileBar->hide();
2495 if (fileBar != NULL) fileBar->hide(); 2495 if (viewBar != NULL) viewBar->hide();
2496 if (viewBar != NULL) viewBar->hide(); 2496 if (navBar != NULL) navBar->hide();
2497 if (navBar != NULL) navBar->hide(); 2497 if (markBar != NULL) markBar->hide();
2498 if (markBar != NULL) markBar->hide(); 2498 searchBar->hide();
2499 searchBar->hide(); 2499 regBar->hide();
2500 regBar->hide(); 2500#ifdef USEQPE
2501#ifdef USEQPE 2501 Global::hideInputMethod();
2502 Global::hideInputMethod(); 2502#endif
2503#endif 2503 m_fontBar->hide();
2504 m_fontBar->hide(); 2504 //showNormal();
2505 //showNormal(); 2505 showFullScreen();
2506 showFullScreen(); 2506 }
2507 } 2507 else
2508 else 2508 {
2509 { 2509 //qDebug("him");
2510 //qDebug("him"); 2510#ifdef USEQPE
2511#ifdef USEQPE 2511 Global::hideInputMethod();
2512 Global::hideInputMethod(); 2512#endif
2513#endif 2513 //qDebug("eb");
2514 //qDebug("eb"); 2514 menubar->show();
2515 menubar->show(); 2515 if (fileBar != NULL) fileBar->show();
2516 if (fileBar != NULL) fileBar->show(); 2516 if (viewBar != NULL) viewBar->show();
2517 if (viewBar != NULL) viewBar->show(); 2517 if (navBar != NULL) navBar->show();
2518 if (navBar != NULL) navBar->show(); 2518 if (markBar != NULL) markBar->show();
2519 if (markBar != NULL) markBar->show(); 2519 mb->show();
2520 mb->show(); 2520 if ( searchVisible )
2521 if ( searchVisible ) 2521 {
2522 { 2522#ifdef USEQPE
2523#ifdef USEQPE 2523 Global::showInputMethod();
2524 Global::showInputMethod(); 2524#endif
2525#endif 2525 searchBar->show();
2526 searchBar->show(); 2526 }
2527 } 2527 if ( regVisible )
2528 if ( regVisible ) 2528 {
2529 { 2529#ifdef USEQPE
2530#ifdef USEQPE 2530 Global::showInputMethod();
2531 Global::showInputMethod(); 2531#endif
2532#endif 2532 regBar->show();
2533 regBar->show(); 2533 }
2534 } 2534 if (m_fontVisible) m_fontBar->show();
2535 if (m_fontVisible) m_fontBar->show(); 2535 //qDebug("sn");
2536 //qDebug("sn"); 2536 showNormal();
2537 showNormal(); 2537 //qDebug("sm");
2538 //qDebug("sm"); 2538#ifdef USEQPE
2539#ifdef USEQPE 2539 showMaximized();
2540 showMaximized(); 2540#endif
2541#endif 2541 //setCentralWidget(reader);
2542 //setCentralWidget(reader); 2542 }
2543 } 2543
2544 2544// qDebug("uc");
2545// qDebug("uc"); 2545 updateCaption();
2546 updateCaption(); 2546// qDebug("rw");
2547// qDebug("rw"); 2547 editorStack->raiseWidget( reader );
2548 editorStack->raiseWidget( reader ); 2548// qDebug("sf");
2549// qDebug("sf"); 2549 reader->setFocus();
2550 reader->setFocus(); 2550 reader->refresh();
2551 reader->refresh(); 2551}
2552} 2552/*
2553/* 2553void QTReaderApp::save()
2554void QTReaderApp::save() 2554{
2555{ 2555 if ( !doc )
2556 if ( !doc ) 2556 return;
2557 return; 2557 if ( !editor->edited() )
2558 if ( !editor->edited() ) 2558 return;
2559 return; 2559
2560 2560 QString rt = editor->text();
2561 QString rt = editor->text(); 2561 QString pt = rt;
2562 QString pt = rt; 2562
2563 2563 if ( doc->name().isEmpty() ) {
2564 if ( doc->name().isEmpty() ) { 2564 unsigned ispace = pt.find( ' ' );
2565 unsigned ispace = pt.find( ' ' ); 2565 unsigned ienter = pt.find( '\n' );
2566 unsigned ienter = pt.find( '\n' ); 2566 int i = (ispace < ienter) ? ispace : ienter;
2567 int i = (ispace < ienter) ? ispace : ienter; 2567 QString docname;
2568 QString docname; 2568 if ( i == -1 ) {
2569 if ( i == -1 ) { 2569 if ( pt.isEmpty() )
2570 if ( pt.isEmpty() ) 2570 docname = "Empty Text";
2571 docname = "Empty Text"; 2571 else
2572 else 2572 docname = pt;
2573 docname = pt; 2573 } else {
2574 } else { 2574 docname = pt.left( i );
2575 docname = pt.left( i ); 2575 }
2576 } 2576 doc->setName(docname);
2577 doc->setName(docname); 2577 }
2578 } 2578 FileManager fm;
2579 FileManager fm; 2579 fm.saveFile( *doc, rt );
2580 fm.saveFile( *doc, rt ); 2580}
2581} 2581*/
2582*/ 2582
2583 2583void QTReaderApp::clear()
2584void QTReaderApp::clear() 2584{
2585{ 2585// if (doc != 0)
2586// if (doc != 0) 2586// {
2587// { 2587// QMessageBox::information(this, PROGNAME, "Deleting doc", 1);
2588// QMessageBox::information(this, PROGNAME, "Deleting doc", 1); 2588 //delete doc;
2589 //delete doc; 2589// QMessageBox::information(this, PROGNAME, "Deleted doc", 1);
2590// QMessageBox::information(this, PROGNAME, "Deleted doc", 1); 2590 //doc = 0;
2591 //doc = 0; 2591 // }
2592 // } 2592 reader->clear();
2593 reader->clear(); 2593}
2594} 2594
2595 2595void QTReaderApp::updateCaption()
2596void QTReaderApp::updateCaption() 2596{
2597{ 2597// if ( !doc )
2598// if ( !doc ) 2598 //setCaption( tr("QTReader") );
2599 //setCaption( tr("QTReader") ); 2599// else {
2600// else { 2600 //QString s = doc->name();
2601 //QString s = doc->name(); 2601 //if ( s.isEmpty() )
2602 //if ( s.isEmpty() ) 2602 // s = tr( "Unnamed" );
2603 // s = tr( "Unnamed" ); 2603 setCaption( reader->m_string + " - " + tr("Reader") );
2604 setCaption( reader->m_string + " - " + tr("Reader") ); 2604// }
2605// } 2605}
2606} 2606
2607 2607void QTReaderApp::setDocument(const QString& fileref)
2608void QTReaderApp::setDocument(const QString& fileref) 2608{
2609{ 2609 bFromDocView = TRUE;
2610 bFromDocView = TRUE; 2610//QMessageBox::information(0, "setDocument", fileref);
2611//QMessageBox::information(0, "setDocument", fileref); 2611 openFile(fileref);
2612 openFile(fileref); 2612// showEditTools();
2613// showEditTools(); 2613}
2614} 2614
2615 2615void QTReaderApp::closeEvent( QCloseEvent *e )
2616void QTReaderApp::closeEvent( QCloseEvent *e ) 2616{
2617{ 2617// qDebug("Close event");
2618// qDebug("Close event"); 2618 if (m_fullscreen)
2619 if (m_fullscreen) 2619 {
2620 { 2620 m_fullscreen = false;
2621 m_fullscreen = false; 2621 showEditTools();
2622 showEditTools(); 2622 e->accept();
2623 e->accept(); 2623 }
2624 } 2624 else if (m_dontSave)
2625 else if (m_dontSave) 2625 {
2626 { 2626 e->accept();
2627 e->accept(); 2627 }
2628 } 2628 else
2629 else 2629 {
2630 { 2630 if (editorStack->visibleWidget() == reader)
2631 if (editorStack->visibleWidget() == reader) 2631 {
2632 { 2632 if ((m_escapeTarget != cesNone) && m_bcloseDisabled)
2633 if ((m_escapeTarget != cesNone) && m_bcloseDisabled) 2633 {
2634 { 2634 //qDebug("Close disabled");
2635 //qDebug("Close disabled"); 2635 m_bcloseDisabled = false;
2636 m_bcloseDisabled = false; 2636 e->ignore();
2637 e->ignore(); 2637 }
2638 } 2638 else
2639 else 2639 {
2640 { 2640 if (m_fontVisible)
2641 if (m_fontVisible) 2641 {
2642 { 2642 m_fontBar->hide();
2643 m_fontBar->hide(); 2643 m_fontVisible = false;
2644 m_fontVisible = false; 2644 }
2645 } 2645 if (regVisible)
2646 if (regVisible) 2646 {
2647 { 2647 regBar->hide();
2648 regBar->hide(); 2648#ifdef USEQPE
2649#ifdef USEQPE 2649 Global::hideInputMethod();
2650 Global::hideInputMethod(); 2650#endif
2651#endif 2651 regVisible = false;
2652 regVisible = false; 2652 return;
2653 return; 2653 }
2654 } 2654 if (searchVisible)
2655 if (searchVisible) 2655 {
2656 { 2656 searchBar->hide();
2657 searchBar->hide(); 2657#ifdef USEQPE
2658#ifdef USEQPE 2658 Global::hideInputMethod();
2659 Global::hideInputMethod(); 2659#endif
2660#endif 2660 searchVisible = false;
2661 searchVisible = false; 2661 return;
2662 return; 2662 }
2663 } 2663 if (m_fBkmksChanged && pBkmklist != NULL)
2664 if (m_fBkmksChanged && pBkmklist != NULL) 2664 {
2665 { 2665 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0)
2666 if (QMessageBox::warning(this, PROGNAME, "Save bookmarks?", "Save", "Don't bother") == 0) 2666 savebkmks();
2667 savebkmks(); 2667 delete pBkmklist;
2668 delete pBkmklist; 2668 pBkmklist = NULL;
2669 pBkmklist = NULL; 2669 m_fBkmksChanged = false;
2670 m_fBkmksChanged = false; 2670 }
2671 } 2671 bFromDocView = FALSE;
2672 bFromDocView = FALSE; 2672 updatefileinfo();
2673 updatefileinfo(); 2673 saveprefs();
2674 saveprefs(); 2674 e->accept();
2675 e->accept(); 2675 }
2676 } 2676 }
2677 } 2677 else
2678 else 2678 {
2679 { 2679 showEditTools();
2680 showEditTools(); 2680 m_disableesckey = true;
2681 m_disableesckey = true; 2681 }
2682 } 2682 }
2683 } 2683}
2684} 2684
2685 2685void QTReaderApp::do_gotomark()
2686void QTReaderApp::do_gotomark() 2686{
2687{ 2687 m_nBkmkAction = cGotoBkmk;
2688 m_nBkmkAction = cGotoBkmk; 2688 if (!listbkmk(pBkmklist))
2689 if (!listbkmk(pBkmklist)) 2689 QMessageBox::information(this, PROGNAME, "No bookmarks in memory");
2690 QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); 2690}
2691} 2691
2692 2692void QTReaderApp::do_delmark()
2693void QTReaderApp::do_delmark() 2693{
2694{ 2694 m_nBkmkAction = cDelBkmk;
2695 m_nBkmkAction = cDelBkmk; 2695 if (!listbkmk(pBkmklist))
2696 if (!listbkmk(pBkmklist)) 2696 QMessageBox::information(this, PROGNAME, "No bookmarks in memory");
2697 QMessageBox::information(this, PROGNAME, "No bookmarks in memory"); 2697}
2698} 2698
2699 2699bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab)
2700bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab) 2700{
2701{ 2701 bkmkselector->clear();
2702 bkmkselector->clear(); 2702 if (_lab.isEmpty())
2703 if (_lab.isEmpty()) 2703 bkmkselector->setText("Cancel");
2704 bkmkselector->setText("Cancel"); 2704 else
2705 else 2705 bkmkselector->setText(_lab);
2706 bkmkselector->setText(_lab); 2706 int cnt = 0;
2707 int cnt = 0; 2707 if (plist != NULL)
2708 if (plist != NULL) 2708 {
2709 { 2709 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++)
2710 for (CList<Bkmk>::iterator i = plist->begin(); i != plist->end(); i++) 2710 {
2711 { 2711#ifdef _UNICODE
2712#ifdef _UNICODE 2712 // qDebug("Item:%s", (const char*)toQString(i->name()));
2713 // qDebug("Item:%s", (const char*)toQString(i->name())); 2713 bkmkselector->insertItem(toQString(i->name()));
2714 bkmkselector->insertItem(toQString(i->name())); 2714#else
2715#else 2715 bkmkselector->insertItem(i->name());
2716 bkmkselector->insertItem(i->name()); 2716#endif
2717#endif 2717 cnt++;
2718 cnt++; 2718 }
2719 } 2719 }
2720 } 2720 if (cnt > 0)
2721 if (cnt > 0) 2721 {
2722 { 2722 hidetoolbars();
2723 hidetoolbars(); 2723 editorStack->raiseWidget( bkmkselector );
2724 editorStack->raiseWidget( bkmkselector ); 2724 return true;
2725 return true; 2725 }
2726 } 2726 else
2727 else 2727 return false;
2728 return false; 2728}
2729} 2729
2730 2730void QTReaderApp::do_autogen()
2731void QTReaderApp::do_autogen() 2731{
2732{ 2732 m_nRegAction = cAutoGen;
2733 m_nRegAction = cAutoGen; 2733 regEdit->setText(m_autogenstr);
2734 regEdit->setText(m_autogenstr); 2734 do_regedit();
2735 do_regedit(); 2735}
2736} 2736
2737 2737void QTReaderApp::do_regedit()
2738void QTReaderApp::do_regedit() 2738{
2739{ 2739// fileBar->hide();
2740// fileBar->hide(); 2740 reader->bDoUpdates = false;
2741 reader->bDoUpdates = false; 2741// qDebug("Showing regbar");
2742// qDebug("Showing regbar"); 2742 regBar->show();
2743 regBar->show(); 2743// qDebug("Showing kbd");
2744// qDebug("Showing kbd"); 2744#ifdef USEQPE
2745#ifdef USEQPE 2745 Global::showInputMethod();
2746 Global::showInputMethod(); 2746#endif
2747#endif 2747 regVisible = true;
2748 regVisible = true; 2748 regEdit->setFocus();
2749 regEdit->setFocus(); 2749// qApp->processEvents();
2750// qApp->processEvents(); 2750 reader->bDoUpdates = true;
2751 reader->bDoUpdates = true; 2751 reader->update();
2752 reader->update(); 2752}
2753} 2753
2754 2754bool QTReaderApp::openfrombkmk(Bkmk* bk)
2755bool QTReaderApp::openfrombkmk(Bkmk* bk) 2755{
2756{ 2756 QString fn = toQString(
2757 QString fn = toQString( 2757 CFiledata(bk->anno()).name()
2758 CFiledata(bk->anno()).name() 2758 );
2759 ); 2759 //qDebug("fileinfo");
2760 //qDebug("fileinfo"); 2760 if (!fn.isEmpty() && QFileInfo(fn).isFile())
2761 if (!fn.isEmpty() && QFileInfo(fn).isFile()) 2761 {
2762 { 2762 //qDebug("Opening");
2763 //qDebug("Opening"); 2763 openFile(fn);
2764 openFile(fn); 2764 struct stat fnstat;
2765 struct stat fnstat; 2765 stat((const char *)reader->m_lastfile, &fnstat);
2766 stat((const char *)reader->m_lastfile, &fnstat); 2766
2767 2767 if (CFiledata(bk->anno()).date()
2768 if (CFiledata(bk->anno()).date() 2768 != fnstat.st_mtime)
2769 != fnstat.st_mtime) 2769 {
2770 { 2770 CFiledata fd(bk->anno());
2771 CFiledata fd(bk->anno()); 2771 fd.setdate(fnstat.st_mtime);
2772 fd.setdate(fnstat.st_mtime); 2772 bk->value(0);
2773 bk->value(0); 2773 }
2774 } 2774 else
2775 else 2775 {
2776 { 2776 unsigned short svlen = bk->filedatalen();
2777 unsigned short svlen = bk->filedatalen(); 2777 unsigned char* svdata = bk->filedata();
2778 unsigned char* svdata = bk->filedata(); 2778 reader->putSaveData(svdata, svlen);
2779 reader->putSaveData(svdata, svlen); 2779 // setstate(svdata, svlen);
2780 // setstate(svdata, svlen); 2780 if (svlen != 0)
2781 if (svlen != 0) 2781 {
2782 { 2782 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?");
2783 QMessageBox::warning(this, PROGNAME, "Not all file data used\nNew version?"); 2783 }
2784 } 2784 // qDebug("updating");
2785 // qDebug("updating"); 2785 // showEditTools();
2786 // showEditTools(); 2786 reader->locate(bk->value());
2787 reader->locate(bk->value()); 2787 }
2788 } 2788 return true;
2789 return true; 2789 }
2790 } 2790 else
2791 else 2791 {
2792 { 2792 return false;
2793 return false; 2793 }
2794 } 2794}
2795} 2795
2796 2796void QTReaderApp::gotobkmk(int ind)
2797void QTReaderApp::gotobkmk(int ind) 2797{
2798{ 2798 showEditTools();
2799 showEditTools(); 2799 switch (m_nBkmkAction)
2800 switch (m_nBkmkAction) 2800 {
2801 { 2801 case cOpenFile:
2802 case cOpenFile: 2802 {
2803 { 2803 // qApp->processEvents();
2804 // qApp->processEvents(); 2804 if (!openfrombkmk((*pOpenlist)[ind]))
2805 if (!openfrombkmk((*pOpenlist)[ind])) 2805 {
2806 { 2806 pOpenlist->erase(ind);
2807 pOpenlist->erase(ind); 2807 QMessageBox::information(this, PROGNAME, "Can't find file");
2808 QMessageBox::information(this, PROGNAME, "Can't find file"); 2808 }
2809 } 2809 }
2810 } 2810 break;
2811 break; 2811 case cGotoBkmk:
2812 case cGotoBkmk: 2812 reader->locate((*pBkmklist)[ind]->value());
2813 reader->locate((*pBkmklist)[ind]->value()); 2813 break;
2814 break; 2814 case cDelBkmk:
2815 case cDelBkmk: 2815 //// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name());
2816 //// qDebug("Deleting:%s\n",(*pBkmklist)[ind]->name()); 2816 pBkmklist->erase(ind);
2817 pBkmklist->erase(ind); 2817 m_fBkmksChanged = true;
2818 m_fBkmksChanged = true; 2818 // pBkmklist->sort();
2819 // pBkmklist->sort(); 2819 break;
2820 break; 2820 case cRmBkmkFile:
2821 case cRmBkmkFile: 2821 {
2822 { 2822#ifndef USEQPE
2823#ifndef USEQPE 2823 QDir d = QDir::home(); // "/"
2824 QDir d = QDir::home(); // "/" 2824 d.cd(APPDIR);
2825 d.cd(APPDIR); 2825 d.remove(bkmkselector->text(ind));
2826 d.remove(bkmkselector->text(ind)); 2826#else /* USEQPE */
2827#else /* USEQPE */ 2827 unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind)));
2828 unlink((const char *)Global::applicationFileName(APPDIR,bkmkselector->text(ind))); 2828#endif /* USEQPE */
2829#endif /* USEQPE */ 2829 }
2830 } 2830 break;
2831 break; 2831 case cLdConfig:
2832 case cLdConfig: 2832 readconfig(bkmkselector->text(ind), false);
2833 readconfig(bkmkselector->text(ind), false); 2833 break;
2834 break; 2834 case cRmConfig:
2835 case cRmConfig: 2835 {
2836 { 2836#ifndef USEQPE
2837#ifndef USEQPE 2837 QDir d = QDir::home(); // "/"
2838 QDir d = QDir::home(); // "/" 2838 d.cd(APPDIR "/configs");
2839 d.cd(APPDIR "/configs"); 2839 d.remove(bkmkselector->text(ind));
2840 d.remove(bkmkselector->text(ind)); 2840#else /* USEQPE */
2841#else /* USEQPE */ 2841 unlink((const char *)Global::applicationFileName(APPDIR "/configs",bkmkselector->text(ind)));
2842 unlink((const char *)Global::applicationFileName(APPDIR "/configs",bkmkselector->text(ind))); 2842#endif /* USEQPE */
2843#endif /* USEQPE */ 2843 }
2844 } 2844 break;
2845 break; 2845 case cExportLinks:
2846 case cExportLinks: 2846 {
2847 { 2847#ifndef USEQPE
2848#ifndef USEQPE 2848 QDir d = QDir::home(); // "/"
2849 QDir d = QDir::home(); // "/" 2849 d.cd(APPDIR "/urls");
2850 d.cd(APPDIR "/urls"); 2850 QFileInfo fi(d, bkmkselector->text(ind));
2851 QFileInfo fi(d, bkmkselector->text(ind)); 2851 if (fi.exists())
2852 if (fi.exists()) 2852 {
2853 { 2853 QString outfile( QFileDialog::getSaveFileName( QString::null, QString::null, this ) );
2854 QString outfile( QFileDialog::getSaveFileName( QString::null, QString::null, this ) ); 2854 if (!outfile.isEmpty())
2855 if (!outfile.isEmpty()) 2855 {
2856 { 2856 FILE* fout = fopen((const char *)outfile, "w");
2857 FILE* fout = fopen((const char *)outfile, "w"); 2857 if (fout != NULL)
2858 if (fout != NULL) 2858 {
2859 { 2859 FILE* fin = fopen((const char *)fi.absFilePath(), "r");
2860 FILE* fin = fopen((const char *)fi.absFilePath(), "r"); 2860 if (fin != NULL)
2861 if (fin != NULL) 2861 {
2862 { 2862 fprintf(fout, "<html><body>\n");
2863 fprintf(fout, "<html><body>\n"); 2863 int ch = 0;
2864 int ch = 0; 2864 while ((ch = fgetc(fin)) != EOF)
2865 while ((ch = fgetc(fin)) != EOF) 2865 {
2866 { 2866 fputc(ch, fout);
2867 fputc(ch, fout); 2867 }
2868 } 2868 fclose(fin);
2869 fclose(fin); 2869 fprintf(fout, "</html></body>\n");
2870 fprintf(fout, "</html></body>\n"); 2870 d.remove(bkmkselector->text(ind));
2871 d.remove(bkmkselector->text(ind)); 2871 }
2872 } 2872 fclose(fout);
2873 fclose(fout); 2873 }
2874 } 2874 else
2875 else 2875 QMessageBox::information(this, PROGNAME, "Couldn't open output");
2876 QMessageBox::information(this, PROGNAME, "Couldn't open output"); 2876 }
2877 } 2877 }
2878 } 2878#else /* USEQPE */
2879#else /* USEQPE */ 2879 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r");
2880 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); 2880 if (fin != NULL)
2881 if (fin != NULL) 2881 {
2882 { 2882 bool allok = false;
2883 bool allok = false; 2883 fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null);
2884 fileBrowser* fb = new fileBrowser(true, this,"OpieReader",!m_bFloatingDialog, 0, "*", QString::null); 2884 if (fb->exec())
2885 if (fb->exec()) 2885 {
2886 { 2886 QString outfile = fb->getCurrentFile();
2887 QString outfile = fb->getCurrentFile(); 2887 FILE* fout = fopen((const char *)outfile, "w");
2888 FILE* fout = fopen((const char *)outfile, "w"); 2888 if (fout != NULL)
2889 if (fout != NULL) 2889 {
2890 { 2890 fprintf(fout, "<html><body>\n");
2891 fprintf(fout, "<html><body>\n"); 2891 int ch = 0;
2892 int ch = 0; 2892 while ((ch = fgetc(fin)) != EOF)
2893 while ((ch = fgetc(fin)) != EOF) 2893 {
2894 { 2894 fputc(ch, fout);
2895 fputc(ch, fout); 2895 }
2896 } 2896 fprintf(fout, "</html></body>\n");
2897 fprintf(fout, "</html></body>\n"); 2897 fclose(fout);
2898 fclose(fout); 2898 allok = true;
2899 allok = true; 2899 }
2900 } 2900 else
2901 else 2901 QMessageBox::information(this, PROGNAME, "Couldn't open output");
2902 QMessageBox::information(this, PROGNAME, "Couldn't open output"); 2902 }
2903 } 2903 delete fb;
2904 delete fb; 2904 fclose(fin);
2905 fclose(fin); 2905 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)));
2906 if (allok) unlink((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind))); 2906 }
2907 } 2907 else
2908 else 2908 {
2909 { 2909 QMessageBox::information(this, PROGNAME, "Couldn't open input");
2910 QMessageBox::information(this, PROGNAME, "Couldn't open input"); 2910 }
2911 } 2911
2912 2912/*
2913/* 2913 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE );
2914 CFileSelector *f = new CFileSelector("text/html", this, NULL, !m_bFloatingDialog, TRUE, TRUE ); 2914 int ret = f->exec();
2915 int ret = f->exec(); 2915 qDebug("Return:%d", ret);
2916 qDebug("Return:%d", ret); 2916 DocLnk* doc = f->getDoc();
2917 DocLnk* doc = f->getDoc(); 2917 if (doc != NULL)
2918 if (doc != NULL) 2918 {
2919 { 2919 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r");
2920 FILE* fin = fopen((const char *)Global::applicationFileName(APPDIR "/urls",bkmkselector->text(ind)), "r"); 2920 QString rt;
2921 QString rt; 2921 rt = "<html><body>\n";
2922 rt = "<html><body>\n"; 2922 int ch = 0;
2923 int ch = 0; 2923 while ((ch = fgetc(fin)) != EOF)
2924 while ((ch = fgetc(fin)) != EOF) 2924 {
2925 { 2925 rt += (char)ch;
2926 rt += (char)ch; 2926 }
2927 } 2927 fclose(fin);
2928 fclose(fin); 2928 rt += "</html></body>\n";
2929 rt += "</html></body>\n"; 2929 if ( doc->name().isEmpty() )
2930 if ( doc->name().isEmpty() ) 2930 {
2931 { 2931 doc->setName(bkmkselector->text(ind));
2932 doc->setName(bkmkselector->text(ind)); 2932 }
2933 } 2933 FileManager fm;
2934 FileManager fm; 2934 fm.saveFile( *doc, rt );
2935 fm.saveFile( *doc, rt ); 2935 qDebug("YES");
2936 qDebug("YES"); 2936 }
2937 } 2937 else
2938 else 2938 {
2939 { 2939 qDebug("NO");
2940 qDebug("NO"); 2940 }
2941 } 2941 delete f;
2942 delete f; 2942*/
2943*/ 2943
2944 2944#endif /* USEQPE */
2945#endif /* USEQPE */ 2945 }
2946 } 2946 break;
2947 break; 2947 }
2948 } 2948}
2949} 2949
2950 2950void QTReaderApp::cancelbkmk()
2951void QTReaderApp::cancelbkmk() 2951{
2952{ 2952 if (m_nBkmkAction == cOpenFile)
2953 if (m_nBkmkAction == cOpenFile) 2953 {
2954 { 2954 QString fn = usefilebrowser();
2955 QString fn = usefilebrowser(); 2955 if (!fn.isEmpty() && QFileInfo(fn).isFile()) openFile(fn);
2956 if (!fn.isEmpty() && QFileInfo(fn).isFile()) openFile(fn); 2956 }
2957 } 2957 showEditTools();
2958 showEditTools(); 2958}
2959} 2959
2960 2960void QTReaderApp::jump()
2961void QTReaderApp::jump() 2961{
2962{ 2962 m_nRegAction = cJump;
2963 m_nRegAction = cJump; 2963 char lcn[20];
2964 char lcn[20]; 2964 sprintf(lcn, "%lu", reader->pagelocate());
2965 sprintf(lcn, "%lu", reader->pagelocate()); 2965 regEdit->setText(lcn);
2966 regEdit->setText(lcn); 2966 do_regedit();
2967 do_regedit(); 2967}
2968} 2968
2969 2969void QTReaderApp::do_jump(const QString& lcn)
2970void QTReaderApp::do_jump(const QString& lcn) 2970{
2971{ 2971 bool ok;
2972 bool ok; 2972 unsigned long ulcn = lcn.toULong(&ok);
2973 unsigned long ulcn = lcn.toULong(&ok); 2973 if (ok)
2974 if (ok) 2974 reader->locate(ulcn);
2975 reader->locate(ulcn); 2975 else
2976 else 2976 QMessageBox::information(this, PROGNAME, "Must be a number");
2977 QMessageBox::information(this, PROGNAME, "Must be a number"); 2977}
2978} 2978
2979 2979void QTReaderApp::do_regaction()
2980void QTReaderApp::do_regaction() 2980{
2981{ 2981 reader->bDoUpdates = false;
2982 reader->bDoUpdates = false; 2982 regBar->hide();
2983 regBar->hide(); 2983#ifdef USEQPE
2984#ifdef USEQPE 2984 Global::hideInputMethod();
2985 Global::hideInputMethod(); 2985#endif
2986#endif 2986 regVisible = false;
2987 regVisible = false; 2987 switch(m_nRegAction)
2988 switch(m_nRegAction) 2988 {
2989 { 2989 case cAutoGen:
2990 case cAutoGen: 2990 do_autogen(regEdit->text());
2991 do_autogen(regEdit->text()); 2991 break;
2992 break; 2992 case cAddBkmk:
2993 case cAddBkmk: 2993 do_addbkmk(regEdit->text());
2994 do_addbkmk(regEdit->text()); 2994 break;
2995 break; 2995 case cJump:
2996 case cJump: 2996 do_jump(regEdit->text());
2997 do_jump(regEdit->text()); 2997 break;
2998 break; 2998/*
2999/* 2999 case cMonoSpace:
3000 case cMonoSpace: 3000 do_mono(regEdit->text());
3001 do_mono(regEdit->text()); 3001 break;
3002 break; 3002*/
3003*/ 3003 case cSetTarget:
3004 case cSetTarget: 3004 do_settarget(regEdit->text());
3005 do_settarget(regEdit->text()); 3005 break;
3006 break; 3006#ifdef _SCROLLPIPE
3007#ifdef _SCROLLPIPE 3007 case cSetPipeTarget:
3008 case cSetPipeTarget: 3008 do_setpipetarget(regEdit->text());
3009 do_setpipetarget(regEdit->text()); 3009 break;
3010 break; 3010#endif
3011#endif 3011 case cSetConfigName:
3012 case cSetConfigName: 3012 // qDebug("Saving config");
3013 // qDebug("Saving config"); 3013 do_saveconfig(regEdit->text(), false);
3014 do_saveconfig(regEdit->text(), false); 3014 break;
3015 break; 3015 }
3016 } 3016// reader->restore();
3017// reader->restore(); 3017// fileBar->show();
3018// fileBar->show(); 3018 reader->setFocus();
3019 reader->setFocus(); 3019// qApp->processEvents();
3020// qApp->processEvents(); 3020 reader->bDoUpdates = true;
3021 reader->bDoUpdates = true; 3021 reader->update();
3022 reader->update(); 3022}
3023} 3023
3024 3024void QTReaderApp::do_settarget(const QString& _txt)
3025void QTReaderApp::do_settarget(const QString& _txt) 3025{
3026{ 3026 int ind = _txt.find('/');
3027 int ind = _txt.find('/'); 3027 if (ind == -1)
3028 if (ind == -1) 3028 {
3029 { 3029 m_targetapp = "";
3030 m_targetapp = ""; 3030 m_targetmsg = "";
3031 m_targetmsg = ""; 3031 QMessageBox::information(this, PROGNAME, "Format is\nappname/messagename");
3032 QMessageBox::information(this, PROGNAME, "Format is\nappname/messagename"); 3032 }
3033 } 3033 else
3034 else 3034 {
3035 { 3035 m_targetapp = _txt.left(ind);
3036 m_targetapp = _txt.left(ind); 3036 m_targetmsg = _txt.right(_txt.length()-ind-1);
3037 m_targetmsg = _txt.right(_txt.length()-ind-1); 3037 }
3038 } 3038}
3039} 3039
3040 3040void QTReaderApp::chooseencoding()
3041void QTReaderApp::chooseencoding() 3041{
3042{ 3042 m_fontSelector->clear();
3043 m_fontSelector->clear(); 3043 m_fontSelector->insertItem("Ascii");
3044 m_fontSelector->insertItem("Ascii"); 3044 m_fontSelector->insertItem("UTF-8");
3045 m_fontSelector->insertItem("UTF-8"); 3045 m_fontSelector->insertItem("UCS-2(BE)");
3046 m_fontSelector->insertItem("UCS-2(BE)"); 3046 m_fontSelector->insertItem("USC-2(LE)");
3047 m_fontSelector->insertItem("USC-2(LE)"); 3047 m_fontSelector->insertItem("Palm");
3048 m_fontSelector->insertItem("Palm"); 3048 for (unicodetable::iterator iter = unicodetable::begin(); iter != unicodetable::end(); iter++)
3049 for (unicodetable::iterator iter = unicodetable::begin(); iter != unicodetable::end(); iter++) 3049 {
3050 { 3050 m_fontSelector->insertItem(iter->mime);
3051 m_fontSelector->insertItem(iter->mime); 3051 } // delete the FontDatabase!!!
3052 } // delete the FontDatabase!!! 3052 m_fontSelector->setCurrentItem (reader->m_encd);
3053 m_fontSelector->setCurrentItem (reader->m_encd); 3053 m_fontAction = cChooseEncoding;
3054 m_fontAction = cChooseEncoding; 3054 m_fontBar->show();
3055 m_fontBar->show(); 3055 m_fontVisible = true;
3056 m_fontVisible = true; 3056}
3057} 3057
3058 3058void QTReaderApp::setfont()
3059void QTReaderApp::setfont() 3059{
3060{ 3060 m_fontSelector->clear();
3061 m_fontSelector->clear(); 3061 {
3062 { 3062#ifdef USEQPE
3063#ifdef USEQPE 3063 FontDatabase f;
3064 FontDatabase f; 3064#else
3065#else 3065 QFontDatabase f;
3066 QFontDatabase f; 3066#endif
3067#endif 3067 QStringList flist = f.families();
3068 QStringList flist = f.families(); 3068 m_fontSelector->insertStringList(flist);
3069 m_fontSelector->insertStringList(flist); 3069 } // delete the FontDatabase!!!
3070 } // delete the FontDatabase!!! 3070
3071 3071 for (int i = 1; i <= m_fontSelector->count(); i++)
3072 for (int i = 1; i <= m_fontSelector->count(); i++) 3072 {
3073 { 3073 if (m_fontSelector->text(i) == reader->m_fontname)
3074 if (m_fontSelector->text(i) == reader->m_fontname) 3074 {
3075 { 3075 m_fontSelector->setCurrentItem(i);
3076 m_fontSelector->setCurrentItem(i); 3076 break;
3077 break; 3077 }
3078 } 3078 }
3079 } 3079 m_fontAction = cChooseFont;
3080 m_fontAction = cChooseFont; 3080 m_fontBar->show();
3081 m_fontBar->show(); 3081 m_fontVisible = true;
3082 m_fontVisible = true; 3082}
3083} 3083
3084 3084void QTReaderApp::setfontHelper(const QString& lcn, int size)
3085void QTReaderApp::setfontHelper(const QString& lcn, int size) 3085{
3086{ 3086 if (size == 0) size = reader->m_fontControl.currentsize();
3087 if (size == 0) size = reader->m_fontControl.currentsize(); 3087 if (m_propogatefontchange)
3088 if (m_propogatefontchange) 3088 {
3089 { 3089 QFont f(lcn, 10);
3090 QFont f(lcn, 10); 3090 bkmkselector->setFont( f );
3091 bkmkselector->setFont( f ); 3091 regEdit->setFont( f );
3092 regEdit->setFont( f ); 3092 searchEdit->setFont( f );
3093 searchEdit->setFont( f ); 3093 m_annoWin->setFont( f );
3094 m_annoWin->setFont( f ); 3094 }
3095 } 3095 reader->m_fontname = lcn;
3096 reader->m_fontname = lcn; 3096 if (!reader->ChangeFont(size))
3097 if (!reader->ChangeFont(size)) 3097 {
3098 { 3098 reader->ChangeFont(size);
3099 reader->ChangeFont(size); 3099 }
3100 } 3100}
3101} 3101
3102 3102void QTReaderApp::do_setencoding(int i)
3103void QTReaderApp::do_setencoding(int i) 3103{
3104{ 3104// qDebug("setencoding:%d", i);
3105// qDebug("setencoding:%d", i); 3105 if (m_fontAction == cChooseEncoding)
3106 if (m_fontAction == cChooseEncoding) 3106 {
3107 { 3107 reader->setencoding(i);
3108 reader->setencoding(i); 3108 }
3109 } 3109 reader->refresh();
3110 reader->refresh(); 3110 m_fontBar->hide();
3111 m_fontBar->hide(); 3111 m_fontVisible = false;
3112 m_fontVisible = false; 3112// qDebug("showedit");
3113// qDebug("showedit"); 3113 if (reader->isVisible()) showEditTools();
3114 if (reader->isVisible()) showEditTools(); 3114// qDebug("showeditdone");
3115// qDebug("showeditdone"); 3115}
3116} 3116
3117 3117void QTReaderApp::do_setfont(const QString& lcn)
3118void QTReaderApp::do_setfont(const QString& lcn) 3118{
3119{ 3119 if (m_fontAction == cChooseFont)
3120 if (m_fontAction == cChooseFont) 3120 {
3121 { 3121 setfontHelper(lcn);
3122 setfontHelper(lcn); 3122 }
3123 } 3123 reader->refresh();
3124 reader->refresh(); 3124 m_fontBar->hide();
3125 m_fontBar->hide(); 3125 m_fontVisible = false;
3126 m_fontVisible = false; 3126// qDebug("showedit");
3127// qDebug("showedit"); 3127 //if (reader->isVisible())
3128 //if (reader->isVisible()) 3128 showEditTools();
3129 showEditTools(); 3129// qDebug("showeditdone");
3130// qDebug("showeditdone"); 3130}
3131} 3131
3132 3132void QTReaderApp::do_autogen(const QString& regText)
3133void QTReaderApp::do_autogen(const QString& regText) 3133{
3134{ 3134 unsigned long fs, ts;
3135 unsigned long fs, ts; 3135 reader->sizes(fs,ts);
3136 reader->sizes(fs,ts); 3136// // qDebug("Reg:%s\n", (const tchar*)(regEdit->text()));
3137// // qDebug("Reg:%s\n", (const tchar*)(regEdit->text())); 3137 m_autogenstr = regText;
3138 m_autogenstr = regText; 3138 QRegExp re(regText);
3139 QRegExp re(regText); 3139 CBuffer buff;
3140 CBuffer buff; 3140 if (pBkmklist != NULL) delete pBkmklist;
3141 if (pBkmklist != NULL) delete pBkmklist; 3141 pBkmklist = new CList<Bkmk>;
3142 pBkmklist = new CList<Bkmk>; 3142 m_fBkmksChanged = true;
3143 m_fBkmksChanged = true; 3143
3144 3144 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height());
3145 pbar->setGeometry(regBar->x(),regBar->y(),regBar->width(), regBar->height()); 3145 pbar->show();
3146 pbar->show(); 3146 pbar->raise();
3147 pbar->raise(); 3147 pbar->reset();
3148 pbar->reset(); 3148 reader->update();
3149 reader->update(); 3149 qApp->processEvents();
3150 qApp->processEvents(); 3150 reader->setFocus();
3151 reader->setFocus(); 3151 reader->jumpto(0);
3152 reader->jumpto(0); 3152 int lastpc = 0;
3153 int lastpc = 0; 3153 int i = 0;
3154 int i = 0; 3154 while (i >= 0)
3155 while (i >= 0) 3155 {
3156 { 3156 unsigned int lcn = reader->locate();
3157 unsigned int lcn = reader->locate(); 3157 int pc = (100*lcn)/ts;
3158 int pc = (100*lcn)/ts; 3158 if (pc != lastpc)
3159 if (pc != lastpc) 3159 {
3160 { 3160 pbar->setProgress(pc);
3161 pbar->setProgress(pc); 3161 qApp->processEvents();
3162 qApp->processEvents(); 3162 if (reader->locate() != lcn) reader->jumpto(lcn);
3163 if (reader->locate() != lcn) reader->jumpto(lcn); 3163 reader->setFocus();
3164 reader->setFocus(); 3164 lastpc = pc;
3165 lastpc = pc; 3165 }
3166 } 3166 i = reader->buffdoc.getpara(buff);
3167 i = reader->buffdoc.getpara(buff); 3167#ifdef _UNICODE
3168#ifdef _UNICODE 3168 if (re.match(toQString(buff.data())) != -1)
3169 if (re.match(toQString(buff.data())) != -1) 3169#else
3170#else 3170 if (re.match(buff.data()) != -1)
3171 if (re.match(buff.data()) != -1) 3171#endif
3172#endif 3172 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn));
3173 pBkmklist->push_back(Bkmk(buff.data(), NULL, lcn)); 3173 }
3174 } 3174 pBkmklist->sort();
3175 pBkmklist->sort(); 3175 pbar->setProgress(100);
3176 pbar->setProgress(100); 3176 qApp->processEvents();
3177 qApp->processEvents(); 3177 pbar->hide();
3178 pbar->hide(); 3178 reader->refresh();
3179 reader->refresh(); 3179}
3180} 3180
3181 3181void QTReaderApp::saveprefs()
3182void QTReaderApp::saveprefs() 3182{
3183{ 3183// qDebug("saveprefs");
3184// qDebug("saveprefs"); 3184// reader->saveprefs("uqtreader");
3185// reader->saveprefs("uqtreader"); 3185// if (!m_loadedconfig)
3186// if (!m_loadedconfig) 3186 do_saveconfig( APPDIR, true );
3187 do_saveconfig( APPDIR, true ); 3187
3188 3188/*
3189/* 3189 Config config( APPDIR );
3190 Config config( APPDIR ); 3190 config.setGroup( "View" );
3191 config.setGroup( "View" ); 3191
3192 3192 reader->m_lastposn = reader->pagelocate();
3193 reader->m_lastposn = reader->pagelocate(); 3193
3194 3194 config.writeEntry("FloatDialogs", m_bFloatingDialog);
3195 config.writeEntry("FloatDialogs", m_bFloatingDialog); 3195 config.writeEntry( "StripCr", reader->bstripcr );
3196 config.writeEntry( "StripCr", reader->bstripcr ); 3196 config.writeEntry( "AutoFmt", reader->bautofmt );
3197 config.writeEntry( "AutoFmt", reader->bautofmt ); 3197 config.writeEntry( "TextFmt", reader->btextfmt );
3198 config.writeEntry( "TextFmt", reader->btextfmt ); 3198 config.writeEntry( "StripHtml", reader->bstriphtml );
3199 config.writeEntry( "StripHtml", reader->bstriphtml ); 3199 config.writeEntry( "Dehyphen", reader->bdehyphen );
3200 config.writeEntry( "Dehyphen", reader->bdehyphen ); 3200 config.writeEntry( "Depluck", reader->bdepluck );
3201 config.writeEntry( "Depluck", reader->bdepluck ); 3201 config.writeEntry( "Dejpluck", reader->bdejpluck );
3202 config.writeEntry( "Dejpluck", reader->bdejpluck ); 3202 config.writeEntry( "OneSpace", reader->bonespace );
3203 config.writeEntry( "OneSpace", reader->bonespace ); 3203 config.writeEntry( "Unindent", reader->bunindent );
3204 config.writeEntry( "Unindent", reader->bunindent ); 3204 config.writeEntry( "Repara", reader->brepara );
3205 config.writeEntry( "Repara", reader->brepara ); 3205 config.writeEntry( "DoubleSpace", reader->bdblspce );
3206 config.writeEntry( "DoubleSpace", reader->bdblspce ); 3206 config.writeEntry( "Indent", reader->bindenter );
3207 config.writeEntry( "Indent", reader->bindenter ); 3207 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) );
3208 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); 3208 config.writeEntry( "ScrollDelay", reader->m_delay);
3209 config.writeEntry( "ScrollDelay", reader->m_delay); 3209 config.writeEntry( "LastFile", reader->m_lastfile );
3210 config.writeEntry( "LastFile", reader->m_lastfile ); 3210 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) );
3211 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); 3211 config.writeEntry( "PageMode", reader->m_bpagemode );
3212 config.writeEntry( "PageMode", reader->m_bpagemode ); 3212 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced );
3213 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); 3213 config.writeEntry( "SwapMouse", reader->m_swapmouse);
3214 config.writeEntry( "SwapMouse", reader->m_swapmouse); 3214 config.writeEntry( "Fontname", reader->m_fontname );
3215 config.writeEntry( "Fontname", reader->m_fontname ); 3215 config.writeEntry( "Encoding", reader->m_encd );
3216 config.writeEntry( "Encoding", reader->m_encd ); 3216 config.writeEntry( "CharSpacing", reader->m_charpc );
3217 config.writeEntry( "CharSpacing", reader->m_charpc ); 3217 config.writeEntry( "Overlap", (int)(reader->m_overlap) );
3218 config.writeEntry( "Overlap", (int)(reader->m_overlap) ); 3218 config.writeEntry( "Margin", (int)reader->m_border );
3219 config.writeEntry( "Margin", (int)reader->m_border ); 3219 config.writeEntry( "TargetApp", m_targetapp );
3220 config.writeEntry( "TargetApp", m_targetapp ); 3220 config.writeEntry( "TargetMsg", m_targetmsg );
3221 config.writeEntry( "TargetMsg", m_targetmsg ); 3221#ifdef _SCROLLPIPE
3222#ifdef _SCROLLPIPE 3222 config.writeEntry( "PipeTarget", reader->m_pipetarget );
3223 config.writeEntry( "PipeTarget", reader->m_pipetarget ); 3223 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
3224 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); 3224#endif
3225#endif 3225 config.writeEntry( "TwoTouch", m_twoTouch );
3226 config.writeEntry( "TwoTouch", m_twoTouch ); 3226 config.writeEntry( "Annotation", m_doAnnotation);
3227 config.writeEntry( "Annotation", m_doAnnotation); 3227 config.writeEntry( "Dictionary", m_doDictionary);
3228 config.writeEntry( "Dictionary", m_doDictionary); 3228 config.writeEntry( "Clipboard", m_doClipboard);
3229 config.writeEntry( "Clipboard", m_doClipboard); 3229 config.writeEntry( "SpaceTarget", m_spaceTarget);
3230 config.writeEntry( "SpaceTarget", m_spaceTarget); 3230 config.writeEntry( "EscapeTarget", m_escapeTarget);
3231 config.writeEntry( "EscapeTarget", m_escapeTarget); 3231 config.writeEntry( "ReturnTarget", m_returnTarget);
3232 config.writeEntry( "ReturnTarget", m_returnTarget); 3232 config.writeEntry( "LeftTarget", m_leftTarget);
3233 config.writeEntry( "LeftTarget", m_leftTarget); 3233 config.writeEntry( "RightTarget", m_rightTarget);
3234 config.writeEntry( "RightTarget", m_rightTarget); 3234 config.writeEntry( "UpTarget", m_upTarget);
3235 config.writeEntry( "UpTarget", m_upTarget); 3235 config.writeEntry( "DownTarget", m_downTarget);
3236 config.writeEntry( "DownTarget", m_downTarget); 3236 config.writeEntry("LeftScroll", m_leftScroll);
3237 config.writeEntry("LeftScroll", m_leftScroll); 3237 config.writeEntry("RightScroll", m_rightScroll);
3238 config.writeEntry("RightScroll", m_rightScroll); 3238 config.writeEntry("UpScroll", m_upScroll);
3239 config.writeEntry("UpScroll", m_upScroll); 3239 config.writeEntry("DownScroll", m_downScroll);
3240 config.writeEntry("DownScroll", m_downScroll); 3240#ifdef REPALM
3241#ifdef REPALM 3241 config.writeEntry( "Repalm", reader->brepalm );
3242 config.writeEntry( "Repalm", reader->brepalm ); 3242#endif
3243#endif 3243 config.writeEntry( "Remap", reader->bremap );
3244 config.writeEntry( "Remap", reader->bremap ); 3244 config.writeEntry( "Peanut", reader->bpeanut );
3245 config.writeEntry( "Peanut", reader->bpeanut ); 3245 config.writeEntry( "MakeBold", reader->bmakebold );
3246 config.writeEntry( "MakeBold", reader->bmakebold ); 3246 config.writeEntry( "Continuous", reader->m_continuousDocument );
3247 config.writeEntry( "Continuous", reader->m_continuousDocument ); 3247 config.writeEntry( "FullJust", reader->bfulljust );
3248 config.writeEntry( "FullJust", reader->bfulljust ); 3248 config.writeEntry( "ExtraSpace", reader->getextraspace() );
3249 config.writeEntry( "ExtraSpace", reader->getextraspace() ); 3249 config.writeEntry( "ExtraLead", reader->getlead() );
3250 config.writeEntry( "ExtraLead", reader->getlead() ); 3250 config.writeEntry( "Basesize", (int)reader->getBaseSize());
3251 config.writeEntry( "Basesize", (int)reader->getBaseSize()); 3251 config.writeEntry( "RequestorFontChange", m_propogatefontchange);
3252 config.writeEntry( "RequestorFontChange", m_propogatefontchange); 3252
3253 3253 config.setGroup( "Toolbar" );
3254 config.setGroup( "Toolbar" ); 3254 config.writeEntry("Movable", m_tbmovesave);
3255 config.writeEntry("Movable", m_tbmovesave); 3255 config.writeEntry("Policy", m_tbpolsave);
3256 config.writeEntry("Policy", m_tbpolsave); 3256 config.writeEntry("Position", m_tbposition);
3257 config.writeEntry("Position", m_tbposition); 3257*/
3258*/ 3258 savefilelist();
3259 savefilelist(); 3259}
3260} 3260
3261 3261/*
3262/* 3262void QTReaderApp::oldFile()
3263void QTReaderApp::oldFile() 3263{
3264{ 3264// qDebug("oldFile called");
3265// qDebug("oldFile called"); 3265 reader->setText(true);
3266 reader->setText(true); 3266// qDebug("settext called");
3267// qDebug("settext called"); 3267 showEditTools();
3268 showEditTools(); 3268// qDebug("showedit called");
3269// qDebug("showedit called"); 3269}
3270} 3270*/
3271*/ 3271
3272 3272/*
3273/* 3273void info_cb(Fl_Widget* o, void* _data)
3274void info_cb(Fl_Widget* o, void* _data) 3274{
3275{ 3275
3276 3276 if (infowin == NULL)
3277 if (infowin == NULL) 3277 {
3278 { 3278
3279 3279 infowin = new Fl_Window(160,240);
3280 infowin = new Fl_Window(160,240); 3280 filename = new Fl_Output(45,5,110,14,"Filename");
3281 filename = new Fl_Output(45,5,110,14,"Filename"); 3281 filesize = new Fl_Output(45,25,110,14,"Filesize");
3282 filesize = new Fl_Output(45,25,110,14,"Filesize"); 3282 textsize = new Fl_Output(45,45,110,14,"Textsize");
3283 textsize = new Fl_Output(45,45,110,14,"Textsize"); 3283 comprat = new CBar(45,65,110,14,"Ratio %");
3284 comprat = new CBar(45,65,110,14,"Ratio %"); 3284 posn = new Fl_Output(45,85,110,14,"Location");
3285 posn = new Fl_Output(45,85,110,14,"Location"); 3285 frcn = new CBar(45,105,110,14,"% Read");
3286 frcn = new CBar(45,105,110,14,"% Read"); 3286 about = new Fl_Multiline_Output(5,125,150,90);
3287 about = new Fl_Multiline_Output(5,125,150,90); 3287 about->value("TWReader - $Name$\n\nA file reader program for the Agenda\n\nReads text, PalmDoc and ppms format files");
3288 about->value("TWReader - $Name$\n\nA file reader program for the Agenda\n\nReads text, PalmDoc and ppms format files"); 3288 Fl_Button *jump_accept = new Fl_Button(62,220,35,14,"Okay");
3289 Fl_Button *jump_accept = new Fl_Button(62,220,35,14,"Okay"); 3289 infowin->set_modal();
3290 infowin->set_modal(); 3290 }
3291 } 3291 if (((reader_ui *)_data)->g_filename[0] != '\0')
3292 if (((reader_ui *)_data)->g_filename[0] != '\0') 3292 {
3293 { 3293 unsigned long fs,ts;
3294 unsigned long fs,ts; 3294 tchar sz[20];
3295 tchar sz[20]; 3295 ((reader_ui *)_data)->input->sizes(fs,ts);
3296 ((reader_ui *)_data)->input->sizes(fs,ts); 3296 unsigned long pl = ((reader_ui *)_data)->input->locate();
3297 unsigned long pl = ((reader_ui *)_data)->input->locate(); 3297
3298 3298 filename->value(((reader_ui *)_data)->g_filename);
3299 filename->value(((reader_ui *)_data)->g_filename); 3299
3300 3300 sprintf(sz,"%u",fs);
3301 sprintf(sz,"%u",fs); 3301 filesize->value(sz);
3302 filesize->value(sz); 3302
3303 3303 sprintf(sz,"%u",ts);
3304 sprintf(sz,"%u",ts); 3304 textsize->value(sz);
3305 textsize->value(sz); 3305
3306 3306 comprat->value(100-(100*fs + (ts >> 1))/ts);
3307 comprat->value(100-(100*fs + (ts >> 1))/ts); 3307
3308 3308 sprintf(sz,"%u",pl);
3309 sprintf(sz,"%u",pl); 3309 posn->value(sz);
3310 posn->value(sz); 3310
3311 3311 frcn->value((100*pl + (ts >> 1))/ts);
3312 frcn->value((100*pl + (ts >> 1))/ts); 3312 }
3313 } 3313 infowin->show();
3314 infowin->show(); 3314}
3315} 3315*/
3316*/ 3316
3317 3317void QTReaderApp::savebkmks()
3318void QTReaderApp::savebkmks() 3318{
3319{ 3319 if (pBkmklist != NULL)
3320 if (pBkmklist != NULL) 3320 {
3321 { 3321#ifndef USEQPE
3322#ifndef USEQPE 3322 QDir d = QDir::home(); // "/"
3323 QDir d = QDir::home(); // "/" 3323 d.cd(APPDIR);
3324 d.cd(APPDIR); 3324 QFileInfo fi(d, reader->m_string);
3325 QFileInfo fi(d, reader->m_string); 3325 BkmkFile bf((const char *)fi.absFilePath(), true);
3326 BkmkFile bf((const char *)fi.absFilePath(), true); 3326#else /* USEQPE */
3327#else /* USEQPE */ 3327 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true);
3328 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string), true); 3328#endif /* USEQPE */
3329#endif /* USEQPE */ 3329 bf.write(*pBkmklist);
3330 bf.write(*pBkmklist); 3330 }
3331 } 3331 m_fBkmksChanged = false;
3332 m_fBkmksChanged = false; 3332}
3333} 3333
3334 3334void QTReaderApp::readfilelist()
3335void QTReaderApp::readfilelist() 3335{
3336{ 3336#ifndef USEQPE
3337#ifndef USEQPE 3337 QDir d = QDir::home(); // "/"
3338 QDir d = QDir::home(); // "/" 3338 d.cd(APPDIR);
3339 d.cd(APPDIR); 3339 QFileInfo fi(d, ".openfiles");
3340 QFileInfo fi(d, ".openfiles"); 3340 BkmkFile bf((const char *)fi.absFilePath());
3341 BkmkFile bf((const char *)fi.absFilePath()); 3341#else /* USEQPE */
3342#else /* USEQPE */ 3342 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"));
3343 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles")); 3343#endif /* USEQPE */
3344#endif /* USEQPE */ 3344// qDebug("Reading open files");
3345// qDebug("Reading open files"); 3345 pOpenlist = bf.readall();
3346 pOpenlist = bf.readall(); 3346// if (pOpenlist != NULL) qDebug("...with success");
3347// if (pOpenlist != NULL) qDebug("...with success"); 3347// else qDebug("...without success!");
3348// else qDebug("...without success!"); 3348}
3349} 3349
3350 3350void QTReaderApp::savefilelist()
3351void QTReaderApp::savefilelist() 3351{
3352{ 3352 if (pOpenlist != NULL)
3353 if (pOpenlist != NULL) 3353 {
3354 { 3354#ifndef USEQPE
3355#ifndef USEQPE 3355 QDir d = QDir::home(); // "/"
3356 QDir d = QDir::home(); // "/" 3356 d.cd(APPDIR);
3357 d.cd(APPDIR); 3357 QFileInfo fi(d, ".openfiles");
3358 QFileInfo fi(d, ".openfiles"); 3358 BkmkFile bf((const char *)fi.absFilePath(), true);
3359 BkmkFile bf((const char *)fi.absFilePath(), true); 3359#else /* USEQPE */
3360#else /* USEQPE */ 3360 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true);
3361 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,".openfiles"), true); 3361#endif /* USEQPE */
3362#endif /* USEQPE */ 3362 //qDebug("Writing open files");
3363 //qDebug("Writing open files"); 3363 bf.write(*pOpenlist);
3364 bf.write(*pOpenlist); 3364 }
3365 } 3365}
3366} 3366
3367 3367void QTReaderApp::readbkmks()
3368void QTReaderApp::readbkmks() 3368{
3369{ 3369 if (pBkmklist != NULL)
3370 if (pBkmklist != NULL) 3370 {
3371 { 3371 delete pBkmklist;
3372 delete pBkmklist; 3372 }
3373 } 3373 struct stat fnstat;
3374 struct stat fnstat; 3374 struct stat bkstat;
3375 struct stat bkstat; 3375#ifndef USEQPE
3376#ifndef USEQPE 3376 QDir d = QDir::home(); // "/"
3377 QDir d = QDir::home(); // "/" 3377 d.cd(APPDIR);
3378 d.cd(APPDIR); 3378 QFileInfo fi(d, reader->m_string);
3379 QFileInfo fi(d, reader->m_string); 3379#endif /* ! USEQPE */
3380#endif /* ! USEQPE */ 3380 if (
3381 if ( 3381 stat((const char *)reader->m_lastfile, &fnstat) == 0
3382 stat((const char *)reader->m_lastfile, &fnstat) == 0 3382 &&
3383 && 3383#ifndef USEQPE
3384#ifndef USEQPE 3384 stat((const char *)fi.absFilePath(), &bkstat) == 0
3385 stat((const char *)fi.absFilePath(), &bkstat) == 0 3385#else /* USEQPE */
3386#else /* USEQPE */ 3386 stat((const char *)Global::applicationFileName(APPDIR,reader->m_string), &bkstat) == 0
3387 stat((const char *)Global::applicationFileName(APPDIR,reader->m_string), &bkstat) == 0 3387#endif /* USEQPE */
3388#endif /* USEQPE */ 3388 )
3389 ) 3389 {
3390 { 3390 if (bkstat.st_mtime < fnstat.st_mtime)
3391 if (bkstat.st_mtime < fnstat.st_mtime) 3391 {
3392 { 3392#ifndef USEQPE
3393#ifndef USEQPE 3393 unlink((const char *)fi.absFilePath());
3394 unlink((const char *)fi.absFilePath()); 3394#else /* USEQPE */
3395#else /* USEQPE */ 3395 unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string));
3396 unlink((const char *)Global::applicationFileName(APPDIR,reader->m_string)); 3396#endif /* USEQPE */
3397#endif /* USEQPE */ 3397 }
3398 } 3398 }
3399 } 3399
3400 3400#ifndef USEQPE
3401#ifndef USEQPE 3401 BkmkFile bf((const char *)fi.absFilePath());
3402 BkmkFile bf((const char *)fi.absFilePath()); 3402#else /* USEQPE */
3403#else /* USEQPE */ 3403 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string));
3404 BkmkFile bf((const char *)Global::applicationFileName(APPDIR,reader->m_string)); 3404#endif /* USEQPE */
3405#endif /* USEQPE */ 3405
3406 3406 pBkmklist = bf.readall();
3407 pBkmklist = bf.readall(); 3407 m_fBkmksChanged = bf.upgraded();
3408 m_fBkmksChanged = bf.upgraded(); 3408 if (pBkmklist == NULL)
3409 if (pBkmklist == NULL) 3409 {
3410 { 3410 pBkmklist = reader->getbkmklist();
3411 pBkmklist = reader->getbkmklist(); 3411 }
3412 } 3412 if (pBkmklist != NULL)
3413 if (pBkmklist != NULL) 3413 pBkmklist->sort();
3414 pBkmklist->sort(); 3414}
3415} 3415
3416 3416void QTReaderApp::addbkmk()
3417void QTReaderApp::addbkmk() 3417{
3418{ 3418 m_nRegAction = cAddBkmk;
3419 m_nRegAction = cAddBkmk; 3419 regEdit->setText(reader->firstword());
3420 regEdit->setText(reader->firstword()); 3420 do_regedit();
3421 do_regedit(); 3421}
3422} 3422
3423 3423void QTReaderApp::do_addbkmk(const QString& text)
3424void QTReaderApp::do_addbkmk(const QString& text) 3424{
3425{ 3425 if (text.isEmpty())
3426 if (text.isEmpty()) 3426 {
3427 { 3427 QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nSelect add again", 1);
3428 QMessageBox::information(this, PROGNAME, "Need a name for the bookmark\nSelect add again", 1); 3428 }
3429 } 3429 else
3430 else 3430 {
3431 { 3431 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>;
3432 if (pBkmklist == NULL) pBkmklist = new CList<Bkmk>; 3432#ifdef _UNICODE
3433#ifdef _UNICODE 3433 CBuffer buff;
3434 CBuffer buff; 3434 int i = 0;
3435 int i = 0; 3435 for (i = 0; i < text.length(); i++)
3436 for (i = 0; i < text.length(); i++) 3436 {
3437 { 3437 buff[i] = text[i].unicode();
3438 buff[i] = text[i].unicode(); 3438 }
3439 } 3439 buff[i] = 0;
3440 buff[i] = 0; 3440 pBkmklist->push_front(Bkmk(buff.data(), NULL, reader->pagelocate()));
3441 pBkmklist->push_front(Bkmk(buff.data(), NULL, reader->pagelocate())); 3441#else
3442#else 3442 pBkmklist->push_front(Bkmk((const tchar*)text, reader->pagelocate()));
3443 pBkmklist->push_front(Bkmk((const tchar*)text, reader->pagelocate())); 3443#endif
3444#endif 3444 m_fBkmksChanged = true;
3445 m_fBkmksChanged = true; 3445 pBkmklist->sort();
3446 pBkmklist->sort(); 3446 }
3447 } 3447}
3448} 3448
3449 3449void QTReaderApp::OnRedraw()
3450void QTReaderApp::OnRedraw() 3450{
3451{ 3451 if ((pBkmklist != NULL) && (m_bkmkAvail != NULL))
3452 if ((pBkmklist != NULL) && (m_bkmkAvail != NULL)) 3452 {
3453 { 3453 bool found = findNextBookmark(reader->pagelocate());
3454 bool found = findNextBookmark(reader->pagelocate()); 3454 m_bkmkAvail->setEnabled(found);
3455 m_bkmkAvail->setEnabled(found); 3455 }
3456 } 3456}
3457} 3457
3458 3458void QTReaderApp::showAnnotation()
3459void QTReaderApp::showAnnotation() 3459{
3460{ 3460 m_annoWin->setName(toQString(m_anno->name()));
3461 m_annoWin->setName(toQString(m_anno->name())); 3461 m_annoWin->setAnno(toQString(m_anno->anno()));
3462 m_annoWin->setAnno(toQString(m_anno->anno())); 3462 m_annoIsEditing = false;
3463 m_annoIsEditing = false; 3463#ifdef USEQPE
3464#ifdef USEQPE 3464 Global::showInputMethod();
3465 Global::showInputMethod(); 3465#endif
3466#endif 3466 editorStack->raiseWidget( m_annoWin );
3467 editorStack->raiseWidget( m_annoWin ); 3467 m_annoWin->setFocus();
3468 m_annoWin->setFocus(); 3468}
3469} 3469
3470 3470void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line)
3471void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, const QString& line) 3471{
3472{ 3472//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd);
3473//// qDebug("OnWordSelected(%u):%s", posn, (const char*)wrd); 3473
3474 3474 if (m_doClipboard)
3475 if (m_doClipboard) 3475 {
3476 { 3476 QClipboard* cb = QApplication::clipboard();
3477 QClipboard* cb = QApplication::clipboard(); 3477 cb->setText(wrd);
3478 cb->setText(wrd); 3478#ifdef USEQPE
3479#ifdef USEQPE 3479 if (wrd.length() > 10)
3480 if (wrd.length() > 10) 3480 {
3481 { 3481 Global::statusMessage(wrd.left(8) + "..");
3482 Global::statusMessage(wrd.left(8) + ".."); 3482 }
3483 } 3483 else
3484 else 3484 {
3485 { 3485 Global::statusMessage(wrd);
3486 Global::statusMessage(wrd); 3486 }
3487 } 3487#endif
3488#endif 3488 }
3489 } 3489 if (m_doAnnotation)
3490 if (m_doAnnotation) 3490 {
3491 { 3491 //addAnno(wrd, "Need to be able to edit this", posn);
3492 //addAnno(wrd, "Need to be able to edit this", posn); 3492 m_annoWin->setName(line);
3493 m_annoWin->setName(line); 3493 m_annoWin->setAnno("");
3494 m_annoWin->setAnno(""); 3494 m_annoWin->setPosn(posn);
3495 m_annoWin->setPosn(posn); 3495 m_annoIsEditing = true;
3496 m_annoIsEditing = true; 3496#ifdef USEQPE
3497#ifdef USEQPE 3497 Global::showInputMethod();
3498 Global::showInputMethod(); 3498#endif
3499#endif 3499 editorStack->raiseWidget( m_annoWin );
3500 editorStack->raiseWidget( m_annoWin ); 3500 }
3501 } 3501#ifdef USEQPE
3502#ifdef USEQPE 3502 if (m_doDictionary)
3503 if (m_doDictionary) 3503 {
3504 { 3504 if (!m_targetapp.isEmpty() && !m_targetmsg.isEmpty())
3505 if (!m_targetapp.isEmpty() && !m_targetmsg.isEmpty()) 3505 {
3506 { 3506 QCopEnvelope e(("QPE/Application/"+m_targetapp).utf8(), (m_targetmsg+"(QString)").utf8());
3507 QCopEnvelope e(("QPE/Application/"+m_targetapp).utf8(), (m_targetmsg+"(QString)").utf8()); 3507 e << wrd;
3508 e << wrd; 3508 }
3509 } 3509 }
3510 } 3510#endif
3511#endif 3511}
3512} 3512
3513 3513void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e)
3514void QTReaderApp::doAction(ActionTypes a, QKeyEvent* e) 3514{
3515{ 3515 if (a == 0)
3516 if (a == 0) 3516 {
3517 { 3517 e->ignore();
3518 e->ignore(); 3518 }
3519 } 3519 else
3520 else 3520 {
3521 { 3521 e->accept();
3522 e->accept(); 3522 //qDebug("Accepted");
3523 //qDebug("Accepted"); 3523 switch (a)
3524 switch (a) 3524 {
3525 { 3525 case cesOpenFile:
3526 case cesOpenFile: 3526 {
3527 { 3527 fileOpen();
3528 fileOpen(); 3528 }
3529 } 3529 break;
3530 break; 3530 case cesAutoScroll:
3531 case cesAutoScroll: 3531 {
3532 { 3532 reader->setautoscroll(!reader->m_autoScroll);
3533 reader->setautoscroll(!reader->m_autoScroll); 3533 setScrollState(reader->m_autoScroll);
3534 setScrollState(reader->m_autoScroll); 3534 }
3535 } 3535 break;
3536 break; 3536 case cesActionMark:
3537 case cesActionMark: 3537 {
3538 { 3538 addbkmk();
3539 addbkmk(); 3539 }
3540 } 3540 break;
3541 break; 3541 case cesFullScreen:
3542 case cesFullScreen: 3542 {
3543 { 3543 m_actFullscreen->setOn(!m_fullscreen);
3544 m_actFullscreen->setOn(!m_fullscreen); 3544 }
3545 } 3545 break;
3546 break; 3546 case cesActionAnno:
3547 case cesActionAnno: 3547 {
3548 { 3548 addanno();
3549 addanno(); 3549 }
3550 } 3550 break;
3551 break; 3551 case cesZoomIn:
3552 case cesZoomIn: 3552 zoomin();
3553 zoomin(); 3553 break;
3554 break; 3554 case cesZoomOut:
3555 case cesZoomOut: 3555 zoomout();
3556 zoomout(); 3556 break;
3557 break; 3557 case cesBack:
3558 case cesBack: 3558 reader->goBack();
3559 reader->goBack(); 3559 break;
3560 break; 3560 case cesForward:
3561 case cesForward: 3561 reader->goForward();
3562 reader->goForward(); 3562 break;
3563 break; 3563 case cesHome:
3564 case cesHome: 3564 reader->goHome();
3565 reader->goHome(); 3565 break;
3566 break; 3566 case cesPageUp:
3567 case cesPageUp: 3567 reader->dopageup();
3568 reader->dopageup(); 3568 break;
3569 break; 3569 case cesPageDown:
3570 case cesPageDown: 3570 reader->dopagedn();
3571 reader->dopagedn(); 3571 break;
3572 break; 3572 case cesLineUp:
3573 case cesLineUp: 3573 reader->lineUp();
3574 reader->lineUp(); 3574 break;
3575 break; 3575 case cesLineDown:
3576 case cesLineDown: 3576 reader->lineDown();
3577 reader->lineDown(); 3577 break;
3578 break; 3578 case cesStartDoc:
3579 case cesStartDoc: 3579 gotoStart();
3580 gotoStart(); 3580 break;
3581 break; 3581 case cesEndDoc:
3582 case cesEndDoc: 3582 gotoEnd();
3583 gotoEnd(); 3583 break;
3584 break; 3584 default:
3585 default: 3585 qDebug("Unknown ActionType:%u", a);
3586 qDebug("Unknown ActionType:%u", a); 3586 break;
3587 break; 3587 }
3588 } 3588 }
3589 } 3589}
3590} 3590
3591 3591void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); }
3592void QTReaderApp::setTwoTouch(bool _b) { reader->setTwoTouch(_b); } 3592void QTReaderApp::restoreFocus() { reader->setFocus(); }
3593void QTReaderApp::restoreFocus() { reader->setFocus(); } 3593
3594 3594void QTReaderApp::SaveConfig()
3595void QTReaderApp::SaveConfig() 3595{
3596{ 3596 m_nRegAction = cSetConfigName;
3597 m_nRegAction = cSetConfigName; 3597 regEdit->setText(reader->m_string);
3598 regEdit->setText(reader->m_string); 3598 do_regedit();
3599 do_regedit(); 3599}
3600} 3600
3601 3601void QTReaderApp::do_saveconfig(const QString& _txt, bool full)
3602void QTReaderApp::do_saveconfig(const QString& _txt, bool full) 3602{
3603{ 3603// qDebug("do_saveconfig:%s", (const char*)_txt);
3604// qDebug("do_saveconfig:%s", (const char*)_txt); 3604#ifdef USEQPE
3605#ifdef USEQPE 3605 QString configname;
3606 QString configname; 3606 Config::Domain dom;
3607 Config::Domain dom; 3607
3608 3608 if (full)
3609 if (full) 3609 {
3610 { 3610 configname = _txt;
3611 configname = _txt; 3611 dom = Config::User;
3612 dom = Config::User; 3612 }
3613 } 3613 else
3614 else 3614 {
3615 { 3615 configname = Global::applicationFileName(APPDIR "/configs", _txt);
3616 configname = Global::applicationFileName(APPDIR "/configs", _txt); 3616 dom = Config::File;
3617 dom = Config::File; 3617 }
3618 } 3618
3619 3619 Config config(configname, dom);
3620 Config config(configname, dom); 3620 config.setGroup( "View" );
3621 config.setGroup( "View" ); 3621
3622 3622#else
3623#else 3623 QFileInfo fi;
3624 QFileInfo fi; 3624 if (full)
3625 if (full) 3625 {
3626 { 3626 // qDebug("full:%s", (const char*)_txt);
3627 // qDebug("full:%s", (const char*)_txt); 3627 QDir d = QDir::home(); // "/"
3628 QDir d = QDir::home(); // "/" 3628 if ( !d.cd(_txt) )
3629 if ( !d.cd(_txt) ) 3629 { // "/tmp"
3630 { // "/tmp" 3630 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt );
3631 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); 3631 d = QDir::home();
3632 d = QDir::home(); 3632 d.mkdir(_txt);
3633 d.mkdir(_txt); 3633 d.cd(_txt);
3634 d.cd(_txt); 3634 }
3635 } 3635 fi.setFile(d, INIFILE);
3636 fi.setFile(d, INIFILE); 3636 }
3637 } 3637 else
3638 else 3638 {
3639 { 3639 QDir d = QDir::home(); // "/"
3640 QDir d = QDir::home(); // "/" 3640 if ( !d.cd(APPDIR) )
3641 if ( !d.cd(APPDIR) ) 3641 { // "/tmp"
3642 { // "/tmp" 3642 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
3643 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 3643 d = QDir::home();
3644 d = QDir::home(); 3644 d.mkdir(APPDIR);
3645 d.mkdir(APPDIR); 3645 d.cd(APPDIR);
3646 d.cd(APPDIR); 3646 }
3647 } 3647 if ( !d.cd("configs") )
3648 if ( !d.cd("configs") ) 3648 { // "/tmp"
3649 { // "/tmp" 3649 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" );
3650 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); 3650 d = QDir::home();
3651 d = QDir::home(); 3651 d.cd(APPDIR);
3652 d.cd(APPDIR); 3652 d.mkdir("configs");
3653 d.mkdir("configs"); 3653 d.cd("configs");
3654 d.cd("configs"); 3654 }
3655 } 3655 fi.setFile(d, _txt);
3656 fi.setFile(d, _txt); 3656 }
3657 } 3657 //qDebug("Path:%s", (const char*)fi.absFilePath());
3658 //qDebug("Path:%s", (const char*)fi.absFilePath()); 3658 Config config(fi.absFilePath());
3659 Config config(fi.absFilePath()); 3659#endif
3660#endif 3660
3661 3661
3662 3662 config.writeEntry( "StripCr", reader->bstripcr );
3663 config.writeEntry( "StripCr", reader->bstripcr ); 3663 config.writeEntry( "AutoFmt", reader->bautofmt );
3664 config.writeEntry( "AutoFmt", reader->bautofmt ); 3664 config.writeEntry( "TextFmt", reader->btextfmt );
3665 config.writeEntry( "TextFmt", reader->btextfmt ); 3665 config.writeEntry( "StripHtml", reader->bstriphtml );
3666 config.writeEntry( "StripHtml", reader->bstriphtml ); 3666 config.writeEntry( "Dehyphen", reader->bdehyphen );
3667 config.writeEntry( "Dehyphen", reader->bdehyphen ); 3667 config.writeEntry( "Depluck", reader->bdepluck );
3668 config.writeEntry( "Depluck", reader->bdepluck ); 3668 config.writeEntry( "Dejpluck", reader->bdejpluck );
3669 config.writeEntry( "Dejpluck", reader->bdejpluck ); 3669 config.writeEntry( "OneSpace", reader->bonespace );
3670 config.writeEntry( "OneSpace", reader->bonespace ); 3670 config.writeEntry( "Unindent", reader->bunindent );
3671 config.writeEntry( "Unindent", reader->bunindent ); 3671 config.writeEntry( "Repara", reader->brepara );
3672 config.writeEntry( "Repara", reader->brepara ); 3672 config.writeEntry( "DoubleSpace", reader->bdblspce );
3673 config.writeEntry( "DoubleSpace", reader->bdblspce ); 3673 config.writeEntry( "Indent", reader->bindenter );
3674 config.writeEntry( "Indent", reader->bindenter ); 3674 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) );
3675 config.writeEntry( "FontSize", (int)(reader->m_fontControl.currentsize()) ); 3675 config.writeEntry( "ScrollDelay", reader->m_delay);
3676 config.writeEntry( "ScrollDelay", reader->m_delay); 3676 if (full)
3677 if (full) 3677 {
3678 { 3678 config.writeEntry("Debounce", m_debounce);
3679 config.writeEntry("Debounce", m_debounce); 3679 config.writeEntry("FloatDialogs", m_bFloatingDialog);
3680 config.writeEntry("FloatDialogs", m_bFloatingDialog); 3680 reader->m_lastposn = reader->pagelocate();
3681 reader->m_lastposn = reader->pagelocate(); 3681 config.writeEntry( "LastFile", reader->m_lastfile );
3682 config.writeEntry( "LastFile", reader->m_lastfile ); 3682 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) );
3683 config.writeEntry( "LastPosn", (int)(reader->pagelocate()) ); 3683 }
3684 } 3684 config.writeEntry( "PageMode", reader->m_bpagemode );
3685 config.writeEntry( "PageMode", reader->m_bpagemode ); 3685 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced );
3686 config.writeEntry( "MonoSpaced", reader->m_bMonoSpaced ); 3686 config.writeEntry( "SwapMouse", reader->m_swapmouse);
3687 config.writeEntry( "SwapMouse", reader->m_swapmouse); 3687 config.writeEntry( "Fontname", reader->m_fontname );
3688 config.writeEntry( "Fontname", reader->m_fontname ); 3688 config.writeEntry( "Encoding", reader->m_encd );
3689 config.writeEntry( "Encoding", reader->m_encd ); 3689 config.writeEntry( "CharSpacing", reader->m_charpc );
3690 config.writeEntry( "CharSpacing", reader->m_charpc ); 3690 config.writeEntry( "Overlap", (int)(reader->m_overlap) );
3691 config.writeEntry( "Overlap", (int)(reader->m_overlap) ); 3691 config.writeEntry( "Margin", (int)reader->m_border );
3692 config.writeEntry( "Margin", (int)reader->m_border ); 3692 config.writeEntry( "TargetApp", m_targetapp );
3693 config.writeEntry( "TargetApp", m_targetapp ); 3693 config.writeEntry( "TargetMsg", m_targetmsg );
3694 config.writeEntry( "TargetMsg", m_targetmsg ); 3694#ifdef _SCROLLPIPE
3695#ifdef _SCROLLPIPE 3695 config.writeEntry( "PipeTarget", reader->m_pipetarget );
3696 config.writeEntry( "PipeTarget", reader->m_pipetarget ); 3696 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara );
3697 config.writeEntry( "PauseAfterPara", reader->m_pauseAfterEachPara ); 3697#endif
3698#endif 3698 config.writeEntry( "TwoTouch", m_twoTouch );
3699 config.writeEntry( "TwoTouch", m_twoTouch ); 3699 config.writeEntry( "Annotation", m_doAnnotation);
3700 config.writeEntry( "Annotation", m_doAnnotation); 3700 config.writeEntry( "Dictionary", m_doDictionary);
3701 config.writeEntry( "Dictionary", m_doDictionary); 3701 config.writeEntry( "Clipboard", m_doClipboard);
3702 config.writeEntry( "Clipboard", m_doClipboard); 3702 config.writeEntry( "SpaceTarget", m_spaceTarget);
3703 config.writeEntry( "SpaceTarget", m_spaceTarget); 3703 config.writeEntry( "EscapeTarget", m_escapeTarget);
3704 config.writeEntry( "EscapeTarget", m_escapeTarget); 3704 config.writeEntry( "ReturnTarget", m_returnTarget);
3705 config.writeEntry( "ReturnTarget", m_returnTarget); 3705 config.writeEntry( "LeftTarget", m_leftTarget);
3706 config.writeEntry( "LeftTarget", m_leftTarget); 3706 config.writeEntry( "RightTarget", m_rightTarget);
3707 config.writeEntry( "RightTarget", m_rightTarget); 3707 config.writeEntry( "UpTarget", m_upTarget);
3708 config.writeEntry( "UpTarget", m_upTarget); 3708 config.writeEntry( "DownTarget", m_downTarget);
3709 config.writeEntry( "DownTarget", m_downTarget); 3709 config.writeEntry("LeftScroll", m_leftScroll);
3710 config.writeEntry("LeftScroll", m_leftScroll); 3710 config.writeEntry("RightScroll", m_rightScroll);
3711 config.writeEntry("RightScroll", m_rightScroll); 3711 config.writeEntry("UpScroll", m_upScroll);
3712 config.writeEntry("UpScroll", m_upScroll); 3712 config.writeEntry("DownScroll", m_downScroll);
3713 config.writeEntry("DownScroll", m_downScroll); 3713#ifdef REPALM
3714#ifdef REPALM 3714 config.writeEntry( "Repalm", reader->brepalm );
3715 config.writeEntry( "Repalm", reader->brepalm ); 3715#endif
3716#endif 3716 config.writeEntry( "Remap", reader->bremap );
3717 config.writeEntry( "Remap", reader->bremap ); 3717 config.writeEntry( "Peanut", reader->bpeanut );
3718 config.writeEntry( "Peanut", reader->bpeanut ); 3718 config.writeEntry( "MakeBold", reader->bmakebold );
3719 config.writeEntry( "MakeBold", reader->bmakebold ); 3719 config.writeEntry( "Continuous", reader->m_continuousDocument );
3720 config.writeEntry( "Continuous", reader->m_continuousDocument ); 3720 config.writeEntry( "FullJust", reader->bfulljust );
3721 config.writeEntry( "FullJust", reader->bfulljust ); 3721 config.writeEntry( "ExtraSpace", reader->getextraspace() );
3722 config.writeEntry( "ExtraSpace", reader->getextraspace() ); 3722 config.writeEntry( "ExtraLead", reader->getlead() );
3723 config.writeEntry( "ExtraLead", reader->getlead() ); 3723 config.writeEntry( "Basesize", (int)reader->getBaseSize());
3724 config.writeEntry( "Basesize", (int)reader->getBaseSize()); 3724 config.writeEntry( "RequestorFontChange", m_propogatefontchange);
3725 config.writeEntry( "RequestorFontChange", m_propogatefontchange); 3725 if (full)
3726 if (full) 3726 {
3727 { 3727 config.setGroup( "Toolbar" );
3728 config.setGroup( "Toolbar" ); 3728 config.writeEntry("Movable", m_tbmovesave);
3729 config.writeEntry("Movable", m_tbmovesave); 3729 config.writeEntry("Policy", m_tbpolsave);
3730 config.writeEntry("Policy", m_tbpolsave); 3730 config.writeEntry("Position", m_tbposition);
3731 config.writeEntry("Position", m_tbposition); 3731#ifndef USEQPE
3732#ifndef USEQPE 3732 config.setGroup( "Geometry" );
3733 config.setGroup( "Geometry" ); 3733 config.writeEntry( "x", x() );
3734 config.writeEntry( "x", x() ); 3734 config.writeEntry( "y", y() );
3735 config.writeEntry( "y", y() ); 3735 config.writeEntry( "width", width() );
3736 config.writeEntry( "width", width() ); 3736 config.writeEntry( "height", height() );
3737 config.writeEntry( "height", height() ); 3737#endif
3738#endif 3738 }
3739 } 3739}
3740} 3740
3741 3741/*
3742/* 3742void QTReaderApp::setstate(unsigned char* _sd, unsigned short _sdlen)
3743void QTReaderApp::setstate(unsigned char* _sd, unsigned short _sdlen) 3743{
3744{ 3744 unsigned short sdlen;
3745 unsigned short sdlen; 3745 memcpy(&sdlen, _sd, sizeof(sdlen));
3746 memcpy(&sdlen, _sd, sizeof(sdlen)); 3746 sdlen -= sizeof(sdlen);
3747 sdlen -= sizeof(sdlen); 3747 _sd += sizeof(sdlen);
3748 _sd += sizeof(sdlen); 3748 statedata* sd;
3749 statedata* sd; 3749 char* data;
3750 char* data; 3750 if (sdlen < sizeof(statedata)+1)
3751 if (sdlen < sizeof(statedata)+1) 3751 {
3752 { 3752 sdlen = sizeof(statedata)+1;
3753 sdlen = sizeof(statedata)+1; 3753 }
3754 } 3754 data = new char[sdlen];
3755 data = new char[sdlen]; 3755 sd = (statedata*)data;
3756 sd = (statedata*)data; 3756 memcpy(sd, _sd, sdlen);
3757 memcpy(sd, _sd, sdlen); 3757 data[sdlen] = 0;
3758 data[sdlen] = 0; 3758 reader->setstate(*sd);
3759 reader->setstate(*sd); 3759 delete [] data;
3760 delete [] data; 3760}
3761} 3761
3762 3762void QTReaderApp::getstate(unsigned char*& data, unsigned short& len)
3763void QTReaderApp::getstate(unsigned char*& data, unsigned short& len) 3763{
3764{ 3764 unsigned char* olddata = data;
3765 unsigned char* olddata = data; 3765 unsigned short oldlen = len;
3766 unsigned short oldlen = len; 3766 len = oldlen+sizeof(unsigned short)+sizeof(statedata)+reader->m_fontname.length();
3767 len = oldlen+sizeof(unsigned short)+sizeof(statedata)+reader->m_fontname.length(); 3767 data = new unsigned char[len];
3768 data = new unsigned char[len]; 3768 memcpy(data, olddata, oldlen);
3769 memcpy(data, olddata, oldlen); 3769 delete [] olddata;
3770 delete [] olddata; 3770 memcpy(data+oldlen, &len, sizeof(len));
3771 memcpy(data+oldlen, &len, sizeof(len)); 3771 statedata* sd = (statedata*)(data+oldlen+sizeof(unsigned short));
3772 statedata* sd = (statedata*)(data+oldlen+sizeof(unsigned short)); 3772
3773 3773 sd->bstripcr = reader->bstripcr;
3774 sd->bstripcr = reader->bstripcr; 3774 sd->btextfmt = reader->btextfmt;
3775 sd->btextfmt = reader->btextfmt; 3775 sd->bautofmt = reader->bautofmt;
3776 sd->bautofmt = reader->bautofmt; 3776 sd->bstriphtml = reader->bstriphtml;
3777 sd->bstriphtml = reader->bstriphtml; 3777 sd->bpeanut = reader->bpeanut;
3778 sd->bpeanut = reader->bpeanut; 3778 sd->bdehyphen = reader->bdehyphen;
3779 sd->bdehyphen = reader->bdehyphen; 3779 sd->bdepluck = reader->bdepluck;
3780 sd->bdepluck = reader->bdepluck; 3780 sd->bdejpluck = reader->bdejpluck;
3781 sd->bdejpluck = reader->bdejpluck; 3781 sd->bonespace = reader->bonespace;
3782 sd->bonespace = reader->bonespace; 3782 sd->bunindent = reader->bunindent;
3783 sd->bunindent = reader->bunindent; 3783 sd->brepara = reader->brepara;
3784 sd->brepara = reader->brepara; 3784 sd->bdblspce = reader->bdblspce;
3785 sd->bdblspce = reader->bdblspce; 3785 sd->m_bpagemode = reader->m_bpagemode;
3786 sd->m_bpagemode = reader->m_bpagemode; 3786 sd->m_bMonoSpaced = reader->m_bMonoSpaced;
3787 sd->m_bMonoSpaced = reader->m_bMonoSpaced; 3787 sd->bremap = reader->bremap;
3788 sd->bremap = reader->bremap; 3788 sd->bmakebold = reader->bmakebold;
3789 sd->bmakebold = reader->bmakebold; 3789 sd->Continuous = reader->m_continuousDocument;
3790 sd->Continuous = reader->m_continuousDocument; 3790#ifdef REPALM
3791#ifdef REPALM 3791 sd->brepalm = reader->brepalm;
3792 sd->brepalm = reader->brepalm; 3792#endif
3793#endif 3793 sd->bindenter = reader->bindenter;
3794 sd->bindenter = reader->bindenter; 3794 sd->m_textsize = reader->m_textsize; //reader->m_fontControl.currentsize()
3795 sd->m_textsize = reader->m_textsize; //reader->m_fontControl.currentsize() 3795 sd->m_encd = reader->m_encd;
3796 sd->m_encd = reader->m_encd; 3796 sd->m_charpc = reader->m_charpc;
3797 sd->m_charpc = reader->m_charpc; 3797 strcpy(sd->m_fontname, reader->m_fontname.latin1());
3798 strcpy(sd->m_fontname, reader->m_fontname.latin1()); 3798}
3799} 3799*/
3800*/ 3800#ifdef _SCRIPT
3801#ifdef _SCRIPT 3801void QTReaderApp::RunScript()
3802void QTReaderApp::RunScript() 3802{
3803{ 3803 fileBrowser* fb = new fileBrowser(this,"OpieReader",!m_bFloatingDialog,
3804 fileBrowser* fb = new fileBrowser(this,"OpieReader",!m_bFloatingDialog, 3804 0,
3805 0, 3805 // WStyle_Customize | WStyle_NoBorderEx,
3806 // WStyle_Customize | WStyle_NoBorderEx, 3806 "*", Global::applicationFileName(APPDIR "/scripts", ""));
3807 "*", Global::applicationFileName(APPDIR "/scripts", "")); 3807
3808 3808 QString fn;
3809 QString fn; 3809 if (fb->exec())
3810 if (fb->exec()) 3810 {
3811 { 3811 fn = fb->fileList[0];
3812 fn = fb->fileList[0]; 3812 }
3813 } 3813 delete fb;
3814 delete fb; 3814 if ( !fn.isEmpty() && fork() == 0 )
3815 if ( !fn.isEmpty() && fork() == 0 ) 3815 {
3816 { 3816 execlp((const char *)fn,(const char *)fn,NULL);
3817 execlp((const char *)fn,(const char *)fn,NULL); 3817 }
3818 } 3818}
3819} 3819
3820 3820void QTReaderApp::SaveScript(const char* sname)
3821void QTReaderApp::SaveScript(const char* sname) 3821{
3822{ 3822 FILE* f = fopen(sname,"w");
3823 FILE* f = fopen(sname,"w"); 3823 if (f != NULL)
3824 if (f != NULL) 3824 {
3825 { 3825#ifdef OPIE
3826#ifdef OPIE 3826 fprintf(f, "#!/bin/sh\nmsg() {\n\tqcop QPE/Application/reader \"$1\" \"$2\" \"$3\"\n}\n");
3827 fprintf(f, "#!/bin/sh\nmsg() {\n\tqcop QPE/Application/reader \"$1\" \"$2\" \"$3\"\n}\n"); 3827#else
3828#else 3828 fprintf(f, "#!/bin/bash\nmsg() {\n\tqcop QPE/Application/uqtreader \"$1\" \"$2\" \"$3\"\n}\n");
3829 fprintf(f, "#!/bin/bash\nmsg() {\n\tqcop QPE/Application/uqtreader \"$1\" \"$2\" \"$3\"\n}\n"); 3829#endif
3830#endif 3830 fprintf(f, "msg \"Update(int)\" 0\n");
3831 fprintf(f, "msg \"Update(int)\" 0\n"); 3831 fprintf(f, "msg \"Layout/StripCR(int)\" %d\n", (reader->bstripcr) ? 1:0);
3832 fprintf(f, "msg \"Layout/StripCR(int)\" %d\n", (reader->bstripcr) ? 1:0); 3832 if (reader->btextfmt) fprintf(f, "msg \"Markup(QString)\" \"Text\"\n");
3833 if (reader->btextfmt) fprintf(f, "msg \"Markup(QString)\" \"Text\"\n"); 3833 else if (reader->bautofmt) fprintf(f, "msg \"Markup(QString)\" \"Auto\"\n");
3834 else if (reader->bautofmt) fprintf(f, "msg \"Markup(QString)\" \"Auto\"\n"); 3834 else if (reader->bstriphtml) fprintf(f, "msg \"Markup(QString)\" \"HTML\"\n");
3835 else if (reader->bstriphtml) fprintf(f, "msg \"Markup(QString)\" \"HTML\"\n"); 3835 else if (reader->bpeanut) fprintf(f, "msg \"Markup(QString)\" \"Peanut/PML\"\n");
3836 else if (reader->bpeanut) fprintf(f, "msg \"Markup(QString)\" \"Peanut/PML\"\n"); 3836 else fprintf(f, "msg \"Markup(QString)\" \"None\"\n");
3837 else fprintf(f, "msg \"Markup(QString)\" \"None\"\n"); 3837 fprintf(f, "msg \"Layout/Dehyphen(int)\" %d\n", (reader->bdehyphen) ? 1:0);
3838 fprintf(f, "msg \"Layout/Dehyphen(int)\" %d\n", (reader->bdehyphen) ? 1:0); 3838 fprintf(f, "msg \"Layout/Depluck(int)\" %d\n", (reader->bdepluck) ? 1:0);
3839 fprintf(f, "msg \"Layout/Depluck(int)\" %d\n", (reader->bdepluck) ? 1:0); 3839 fprintf(f, "msg \"Layout/Dejpluck(int)\" %d\n", (reader->bdejpluck) ? 1:0);
3840 fprintf(f, "msg \"Layout/Dejpluck(int)\" %d\n", (reader->bdejpluck) ? 1:0); 3840 fprintf(f, "msg \"Layout/SingleSpace(int)\" %d\n", (reader->bonespace) ? 1:0);
3841 fprintf(f, "msg \"Layout/SingleSpace(int)\" %d\n", (reader->bonespace) ? 1:0); 3841 fprintf(f, "msg \"Layout/Unindent(int)\" %d\n", (reader->bunindent) ? 1:0);
3842 fprintf(f, "msg \"Layout/Unindent(int)\" %d\n", (reader->bunindent) ? 1:0); 3842 fprintf(f, "msg \"Layout/Re-paragraph(int)\" %d\n", (reader->brepara) ? 1:0);
3843 fprintf(f, "msg \"Layout/Re-paragraph(int)\" %d\n", (reader->brepara) ? 1:0); 3843 fprintf(f, "msg \"Layout/DoubleSpace(int)\" %d\n", (reader->bdblspce) ? 1:0);
3844 fprintf(f, "msg \"Layout/DoubleSpace(int)\" %d\n", (reader->bdblspce) ? 1:0); 3844 fprintf(f, "msg \"Layout/Indent(int)\" %d\n", reader->bindenter);
3845 fprintf(f, "msg \"Layout/Indent(int)\" %d\n", reader->bindenter); 3845 fprintf(f, "msg \"Format/SetFont(QString,int)\" \"%s\" %d\n", (const char*)reader->m_fontname, reader->m_textsize);
3846 fprintf(f, "msg \"Format/SetFont(QString,int)\" \"%s\" %d\n", (const char*)reader->m_fontname, reader->m_textsize); 3846 fprintf(f, "msg \"Navigation/Page/LineScroll(int)\" %d\n", (reader->m_bpagemode) ? 1:0);
3847 fprintf(f, "msg \"Navigation/Page/LineScroll(int)\" %d\n", (reader->m_bpagemode) ? 1:0); 3847 fprintf(f, "msg \"Format/Ideogram/Word(int)\" %d\n", (reader->m_bMonoSpaced) ? 1:0);
3848 fprintf(f, "msg \"Format/Ideogram/Word(int)\" %d\n", (reader->m_bMonoSpaced) ? 1:0); 3848 fprintf(f, "msg \"Format/Encoding(QString)\" \"%s\"\n", (const char*)m_EncodingAction[reader->m_encd]->text());
3849 fprintf(f, "msg \"Format/Encoding(QString)\" \"%s\"\n", (const char*)m_EncodingAction[reader->m_encd]->text()); 3849 fprintf(f, "msg \"Format/SetWidth(int)\" %d\n", reader->m_charpc);
3850 fprintf(f, "msg \"Format/SetWidth(int)\" %d\n", reader->m_charpc); 3850 fprintf(f, "msg \"Navigation/SetOverlap(int)\" %d\n", reader->m_overlap);
3851 fprintf(f, "msg \"Navigation/SetOverlap(int)\" %d\n", reader->m_overlap); 3851 fprintf(f, "msg \"Layout/Remap(int)\" %d\n", (reader->bremap) ? 1:0);
3852 fprintf(f, "msg \"Layout/Remap(int)\" %d\n", (reader->bremap) ? 1:0); 3852 fprintf(f, "msg \"Layout/Embolden(int)\" %d\n", (reader->bmakebold) ? 1:0);
3853 fprintf(f, "msg \"Layout/Embolden(int)\" %d\n", (reader->bmakebold) ? 1:0); 3853 fprintf(f, "msg \"File/Continuous(int)\" %d\n", (reader->m_continuousDocument) ? 1:0);
3854 fprintf(f, "msg \"File/Continuous(int)\" %d\n", (reader->m_continuousDocument) ? 1:0); 3854 fprintf(f, "msg \"File/SetDictionary(QString)\" \"%s/%s\"\n", (const char *)m_targetapp, (const char *)m_targetmsg);
3855 fprintf(f, "msg \"File/SetDictionary(QString)\" \"%s/%s\"\n", (const char *)m_targetapp, (const char *)m_targetmsg); 3855#ifdef _SCROLLPIPE
3856#ifdef _SCROLLPIPE 3856 fprintf(f, "msg \"File/SetScrollTarget(QString)\" \"%s\"\n", (const char *)reader->m_pipetarget);
3857 fprintf(f, "msg \"File/SetScrollTarget(QString)\" \"%s\"\n", (const char *)reader->m_pipetarget); 3857#endif
3858#endif 3858 fprintf(f, "msg \"File/Two/OneTouch(int)\" %d\n", (m_twoTouch) ? 1:0);
3859 fprintf(f, "msg \"File/Two/OneTouch(int)\" %d\n", (m_twoTouch) ? 1:0); 3859 fprintf(f, "msg \"Target/Annotation(int)\" %d\n", (m_doAnnotation) ? 1:0);
3860 fprintf(f, "msg \"Target/Annotation(int)\" %d\n", (m_doAnnotation) ? 1:0); 3860 fprintf(f, "msg \"Target/Dictionary(int)\" %d\n", (m_doDictionary) ? 1:0);
3861 fprintf(f, "msg \"Target/Dictionary(int)\" %d\n", (m_doDictionary) ? 1:0); 3861 fprintf(f, "msg \"Target/Clipboard(int)\" %d\n", (m_doClipboard) ? 1:0);
3862 fprintf(f, "msg \"Target/Clipboard(int)\" %d\n", (m_doClipboard) ? 1:0); 3862 fprintf(f, "msg \"File/Action(QString)\" \"%s\"\n", (const char *)m_buttonAction[m_spaceTarget]->text());
3863 fprintf(f, "msg \"File/Action(QString)\" \"%s\"\n", (const char *)m_buttonAction[m_spaceTarget]->text()); 3863 fprintf(f, "msg \"Update(int)\" 1\n");
3864 fprintf(f, "msg \"Update(int)\" 1\n"); 3864 fprintf(f, "msg \"info(QString)\" \"All Done\"\n");
3865 fprintf(f, "msg \"info(QString)\" \"All Done\"\n"); 3865 fclose(f);
3866 fclose(f); 3866 chmod(sname, S_IXUSR | S_IXGRP | S_IXOTH);
3867 chmod(sname, S_IXUSR | S_IXGRP | S_IXOTH); 3867 }
3868 } 3868}
3869} 3869
3870 3870void QTReaderApp::SaveConfig()
3871void QTReaderApp::SaveConfig() 3871{
3872{ 3872 m_nRegAction = cSetConfigName;
3873 m_nRegAction = cSetConfigName; 3873 regEdit->setText("");
3874 regEdit->setText(""); 3874 do_regedit();
3875 do_regedit(); 3875}
3876} 3876
3877 3877void QTReaderApp::do_saveconfig(const QString& _txt)
3878void QTReaderApp::do_saveconfig(const QString& _txt) 3878{
3879{ 3879 SaveScript(Global::applicationFileName(APPDIR "/scripts", _txt));
3880 SaveScript(Global::applicationFileName(APPDIR "/scripts", _txt)); 3880}
3881} 3881#endif
3882#endif 3882
3883 3883#ifdef _SCROLLPIPE
3884#ifdef _SCROLLPIPE 3884void QTReaderApp::setpipetarget()
3885void QTReaderApp::setpipetarget() 3885{
3886{ 3886 m_nRegAction = cSetPipeTarget;
3887 m_nRegAction = cSetPipeTarget; 3887 QString text = (reader->m_pipetarget.isEmpty()) ? QString("") : reader->m_pipetarget;
3888 QString text = (reader->m_pipetarget.isEmpty()) ? QString("") : reader->m_pipetarget; 3888 regEdit->setText(text);
3889 regEdit->setText(text); 3889 do_regedit();
3890 do_regedit(); 3890}
3891} 3891
3892 3892void QTReaderApp::do_setpipetarget(const QString& _txt)
3893void QTReaderApp::do_setpipetarget(const QString& _txt) 3893{
3894{ 3894 reader->m_pipetarget = _txt;
3895 reader->m_pipetarget = _txt; 3895}
3896} 3896
3897 3897void QTReaderApp::setpause(bool sfs)
3898void QTReaderApp::setpause(bool sfs) 3898{
3899{ 3899 reader->m_pauseAfterEachPara = sfs;
3900 reader->m_pauseAfterEachPara = sfs; 3900}
3901} 3901#endif
3902#endif 3902
3903 3903void QTReaderApp::monospace(bool _b)
3904void QTReaderApp::monospace(bool _b) 3904{
3905{ 3905 reader->setmono(_b);
3906 reader->setmono(_b); 3906}
3907} 3907
3908 3908bool QTReaderApp::readconfig(const QString& _txt, bool full=false)
3909bool QTReaderApp::readconfig(const QString& _txt, bool full=false) 3909{
3910{ 3910#ifdef USEQPE
3911#ifdef USEQPE 3911 QString configname;
3912 QString configname; 3912 Config::Domain dom;
3913 Config::Domain dom; 3913
3914 3914 if (full)
3915 if (full) 3915 {
3916 { 3916 configname = _txt;
3917 configname = _txt; 3917 dom = Config::User;
3918 dom = Config::User; 3918 }
3919 } 3919 else
3920 else 3920 {
3921 { 3921 configname = Global::applicationFileName(APPDIR "/configs", _txt);
3922 configname = Global::applicationFileName(APPDIR "/configs", _txt); 3922 QFileInfo fm(configname);
3923 QFileInfo fm(configname); 3923 if ( !fm.exists() ) return false;
3924 if ( !fm.exists() ) return false; 3924 dom = Config::File;
3925 dom = Config::File; 3925 }
3926 } 3926
3927 3927 Config config(configname, dom);
3928 Config config(configname, dom); 3928 config.setGroup( "View" );
3929 config.setGroup( "View" ); 3929
3930 3930#else
3931#else 3931 QFileInfo fi;
3932 QFileInfo fi; 3932 if (full)
3933 if (full) 3933 {
3934 { 3934 QDir d = QDir::home(); // "/"
3935 QDir d = QDir::home(); // "/" 3935 if ( !d.cd(_txt) )
3936 if ( !d.cd(_txt) ) 3936 { // "/tmp"
3937 { // "/tmp" 3937 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt );
3938 qWarning( "Cannot find the \"~/%s\" directory", (const char*)_txt ); 3938 d = QDir::home();
3939 d = QDir::home(); 3939 d.mkdir(_txt);
3940 d.mkdir(_txt); 3940 d.cd(_txt);
3941 d.cd(_txt); 3941 }
3942 } 3942 fi.setFile(d, INIFILE);
3943 fi.setFile(d, INIFILE); 3943 }
3944 } 3944 else
3945 else 3945 {
3946 { 3946 QDir d = QDir::home(); // "/"
3947 QDir d = QDir::home(); // "/" 3947 if ( !d.cd(APPDIR) )
3948 if ( !d.cd(APPDIR) ) 3948 { // "/tmp"
3949 { // "/tmp" 3949 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
3950 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 3950 d = QDir::home();
3951 d = QDir::home(); 3951 d.mkdir(APPDIR);
3952 d.mkdir(APPDIR); 3952 d.cd(APPDIR);
3953 d.cd(APPDIR); 3953 }
3954 } 3954 if ( !d.cd("configs") )
3955 if ( !d.cd("configs") ) 3955 { // "/tmp"
3956 { // "/tmp" 3956 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" );
3957 qWarning( "Cannot find the \"~/" APPDIR "/configs\" directory" ); 3957 d = QDir::home();
3958 d = QDir::home(); 3958 d.mkdir("configs");
3959 d.mkdir("configs"); 3959 d.cd("configs");
3960 d.cd("configs"); 3960 }
3961 } 3961 fi.setFile(d, _txt);
3962 fi.setFile(d, _txt); 3962 }
3963 } 3963#ifdef _WINDOWS
3964#ifdef _WINDOWS 3964 struct stat fnstat;
3965 struct stat fnstat; 3965 if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows
3966 if (stat((const char *)reader->m_lastfile, &fnstat) == 0) return false; // get round fileinfo bug on windows 3966#else
3967#else 3967 if (!fi.exists()) return false;
3968 if (!fi.exists()) return false; 3968#endif
3969#endif 3969 Config config(fi.absFilePath());
3970 Config config(fi.absFilePath()); 3970#endif
3971#endif 3971 if (full)
3972 if (full) 3972 {
3973 { 3973 config.setGroup("Toolbar");
3974 config.setGroup("Toolbar"); 3974 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false);
3975 m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); 3975 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1);
3976 m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); 3976 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2);
3977 m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); 3977 }
3978 } 3978 config.setGroup( "View" );
3979 config.setGroup( "View" ); 3979 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false);
3980 m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); 3980 reader->bstripcr = config.readBoolEntry( "StripCr", true );
3981 reader->bstripcr = config.readBoolEntry( "StripCr", true ); 3981 reader->bfulljust = config.readBoolEntry( "FullJust", false );
3982 reader->bfulljust = config.readBoolEntry( "FullJust", false ); 3982 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 ));
3983 reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); 3983 reader->setlead(config.readNumEntry( "ExtraLead", 0 ));
3984 reader->setlead(config.readNumEntry( "ExtraLead", 0 )); 3984 reader->btextfmt = config.readBoolEntry( "TextFmt", false );
3985 reader->btextfmt = config.readBoolEntry( "TextFmt", false ); 3985 reader->bautofmt = config.readBoolEntry( "AutoFmt", true );
3986 reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); 3986 reader->bstriphtml = config.readBoolEntry( "StripHtml", false );
3987 reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); 3987 reader->bpeanut = config.readBoolEntry( "Peanut", false );
3988 reader->bpeanut = config.readBoolEntry( "Peanut", false ); 3988 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false );
3989 reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); 3989 reader->bdepluck = config.readBoolEntry( "Depluck", false );
3990 reader->bdepluck = config.readBoolEntry( "Depluck", false ); 3990 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false );
3991 reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); 3991 reader->bonespace = config.readBoolEntry( "OneSpace", false );
3992 reader->bonespace = config.readBoolEntry( "OneSpace", false ); 3992 reader->bunindent = config.readBoolEntry( "Unindent", false );
3993 reader->bunindent = config.readBoolEntry( "Unindent", false ); 3993 reader->brepara = config.readBoolEntry( "Repara", false );
3994 reader->brepara = config.readBoolEntry( "Repara", false ); 3994 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false );
3995 reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); 3995 reader->bindenter = config.readNumEntry( "Indent", 0 );
3996 reader->bindenter = config.readNumEntry( "Indent", 0 ); 3996 reader->m_textsize = config.readNumEntry( "FontSize", 12 );
3997 reader->m_textsize = config.readNumEntry( "FontSize", 12 ); 3997 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184);
3998 reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); 3998 if (full)
3999 if (full) 3999 {
4000 { 4000 reader->m_lastfile = config.readEntry( "LastFile", QString::null );
4001 reader->m_lastfile = config.readEntry( "LastFile", QString::null ); 4001 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 );
4002 reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); 4002 }
4003 } 4003 reader->m_bpagemode = config.readBoolEntry( "PageMode", true );
4004 reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); 4004 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false);
4005 reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); 4005 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false);
4006 reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); 4006 reader->m_fontname = config.readEntry( "Fontname", "helvetica" );
4007 reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); 4007 reader->m_encd = config.readNumEntry( "Encoding", 0 );
4008 reader->m_encd = config.readNumEntry( "Encoding", 0 ); 4008 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 );
4009 reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); 4009 reader->m_overlap = config.readNumEntry( "Overlap", 0 );
4010 reader->m_overlap = config.readNumEntry( "Overlap", 0 ); 4010 reader->m_border = config.readNumEntry( "Margin", 6 );
4011 reader->m_border = config.readNumEntry( "Margin", 6 ); 4011#ifdef REPALM
4012#ifdef REPALM 4012 reader->brepalm = config.readBoolEntry( "Repalm", true );
4013 reader->brepalm = config.readBoolEntry( "Repalm", true ); 4013#endif
4014#endif 4014 reader->bremap = config.readBoolEntry( "Remap", true );
4015 reader->bremap = config.readBoolEntry( "Remap", true ); 4015 reader->bmakebold = config.readBoolEntry( "MakeBold", false );
4016 reader->bmakebold = config.readBoolEntry( "MakeBold", false ); 4016 reader->setContinuous(config.readBoolEntry( "Continuous", true ));
4017 reader->setContinuous(config.readBoolEntry( "Continuous", true )); 4017 m_targetapp = config.readEntry( "TargetApp", QString::null );
4018 m_targetapp = config.readEntry( "TargetApp", QString::null ); 4018 m_targetmsg = config.readEntry( "TargetMsg", QString::null );
4019 m_targetmsg = config.readEntry( "TargetMsg", QString::null ); 4019#ifdef _SCROLLPIPE
4020#ifdef _SCROLLPIPE 4020 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null );
4021 reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); 4021 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true );
4022 reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); 4022#endif
4023#endif 4023 m_twoTouch = config.readBoolEntry( "TwoTouch", false);
4024 m_twoTouch = config.readBoolEntry( "TwoTouch", false); 4024 m_doAnnotation = config.readBoolEntry( "Annotation", false);
4025 m_doAnnotation = config.readBoolEntry( "Annotation", false); 4025 m_doDictionary = config.readBoolEntry( "Dictionary", false);
4026 m_doDictionary = config.readBoolEntry( "Dictionary", false); 4026 m_doClipboard = config.readBoolEntry( "Clipboard", false);
4027 m_doClipboard = config.readBoolEntry( "Clipboard", false); 4027 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll);
4028 m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); 4028 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone);
4029 m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); 4029 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen);
4030 m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); 4030 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut);
4031 m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); 4031 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn);
4032 m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); 4032 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp);
4033 m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); 4033 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown);
4034 m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); 4034
4035 4035 m_leftScroll = config.readBoolEntry("LeftScroll", false);
4036 m_leftScroll = config.readBoolEntry("LeftScroll", false); 4036 m_rightScroll = config.readBoolEntry("RightScroll", false);
4037 m_rightScroll = config.readBoolEntry("RightScroll", false); 4037 m_upScroll = config.readBoolEntry("UpScroll", true);
4038 m_upScroll = config.readBoolEntry("UpScroll", true); 4038 m_downScroll = config.readBoolEntry("DownScroll", true);
4039 m_downScroll = config.readBoolEntry("DownScroll", true); 4039 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false);
4040 m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); 4040 reader->setBaseSize(config.readNumEntry( "Basesize", 10 ));
4041 reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); 4041 reader->setTwoTouch(m_twoTouch);
4042 reader->setTwoTouch(m_twoTouch); 4042
4043 4043 m_touch_action->setOn(m_twoTouch);
4044 m_touch_action->setOn(m_twoTouch); 4044 m_setmono_action->setOn(reader->m_bMonoSpaced);
4045 m_setmono_action->setOn(reader->m_bMonoSpaced); 4045 setfontHelper(reader->m_fontname);
4046 setfontHelper(reader->m_fontname); 4046 if (full)
4047 if (full) 4047 {
4048 { 4048 addtoolbars(&config);
4049 addtoolbars(&config); 4049 }
4050 } 4050 reader->setfilter(reader->getfilter());
4051 reader->setfilter(reader->getfilter()); 4051 reader->refresh();
4052 reader->refresh(); 4052 return true;
4053 return true; 4053}
4054} 4054
4055 4055bool QTReaderApp::PopulateConfig(const char* tgtdir)
4056bool QTReaderApp::PopulateConfig(const char* tgtdir) 4056{
4057{ 4057 bkmkselector->clear();
4058 bkmkselector->clear(); 4058 bkmkselector->setText("Cancel");
4059 bkmkselector->setText("Cancel"); 4059#ifndef USEQPE
4060#ifndef USEQPE 4060 int cnt = 0;
4061 int cnt = 0; 4061
4062 4062 QDir d = QDir::home(); // "/"
4063 QDir d = QDir::home(); // "/" 4063 if ( !d.cd(APPDIR) ) { // "/tmp"
4064 if ( !d.cd(APPDIR) ) { // "/tmp" 4064 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
4065 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 4065 d = QDir::home();
4066 d = QDir::home(); 4066 d.mkdir(APPDIR);
4067 d.mkdir(APPDIR); 4067 d.cd(APPDIR);
4068 d.cd(APPDIR); 4068 }
4069 } 4069 if ( !d.cd(tgtdir) ) { // "/tmp"
4070 if ( !d.cd(tgtdir) ) { // "/tmp" 4070 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir );
4071 qWarning( "Cannot find the \"~/" APPDIR "/%s\" directory", tgtdir ); 4071 d = QDir::home();
4072 d = QDir::home(); 4072 d.mkdir(tgtdir);
4073 d.mkdir(tgtdir); 4073 d.cd(tgtdir);
4074 d.cd(tgtdir); 4074 }
4075 } 4075 d.setFilter( QDir::Files | QDir::NoSymLinks );
4076 d.setFilter( QDir::Files | QDir::NoSymLinks ); 4076// d.setSorting( QDir::Size | QDir::Reversed );
4077// d.setSorting( QDir::Size | QDir::Reversed ); 4077
4078 4078 const QFileInfoList *list = d.entryInfoList();
4079 const QFileInfoList *list = d.entryInfoList(); 4079 QFileInfoListIterator it( *list ); // create list iterator
4080 QFileInfoListIterator it( *list ); // create list iterator 4080 QFileInfo *fi; // pointer for traversing
4081 QFileInfo *fi; // pointer for traversing 4081
4082 4082 while ( (fi=it.current()) ) { // for each file...
4083 while ( (fi=it.current()) ) { // for each file... 4083
4084 4084 bkmkselector->insertItem(fi->fileName());
4085 bkmkselector->insertItem(fi->fileName()); 4085 cnt++;
4086 cnt++; 4086
4087 4087 //qDebug( "%10li %s", fi->size(), fi->fileName().data() );
4088 //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); 4088 ++it; // goto next list element
4089 ++it; // goto next list element 4089 }
4090 } 4090
4091 4091#else /* USEQPE */
4092#else /* USEQPE */ 4092 int cnt = 0;
4093 int cnt = 0; 4093 DIR *d;
4094 DIR *d; 4094 char* finaldir;
4095 char* finaldir; 4095 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1];
4096 finaldir = new char[strlen(APPDIR)+1+strlen(tgtdir)+1]; 4096 strcpy(finaldir, APPDIR);
4097 strcpy(finaldir, APPDIR); 4097 strcat(finaldir, "/");
4098 strcat(finaldir, "/"); 4098 strcat(finaldir, tgtdir);
4099 strcat(finaldir, tgtdir); 4099 d = opendir((const char *)Global::applicationFileName(finaldir,""));
4100 d = opendir((const char *)Global::applicationFileName(finaldir,"")); 4100
4101 4101 while(1)
4102 while(1) 4102 {
4103 { 4103 struct dirent* de;
4104 struct dirent* de; 4104 struct stat buf;
4105 struct stat buf; 4105 de = readdir(d);
4106 de = readdir(d); 4106 if (de == NULL) break;
4107 if (de == NULL) break; 4107
4108 4108 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode))
4109 if (lstat((const char *)Global::applicationFileName(finaldir,de->d_name),&buf) == 0 && S_ISREG(buf.st_mode)) 4109 {
4110 { 4110 bkmkselector->insertItem(de->d_name);
4111 bkmkselector->insertItem(de->d_name); 4111 cnt++;
4112 cnt++; 4112 }
4113 } 4113 }
4114 } 4114 delete [] finaldir;
4115 delete [] finaldir; 4115 closedir(d);
4116 closedir(d); 4116#endif
4117#endif 4117 return (cnt > 0);
4118 return (cnt > 0); 4118}
4119} 4119
4120 4120void QTReaderApp::LoadConfig()
4121void QTReaderApp::LoadConfig() 4121{
4122{ 4122 if (PopulateConfig("configs"))
4123 if (PopulateConfig("configs")) 4123 {
4124 { 4124 editorStack->raiseWidget( bkmkselector );
4125 editorStack->raiseWidget( bkmkselector ); 4125 hidetoolbars();
4126 hidetoolbars(); 4126 m_nBkmkAction = cLdConfig;
4127 m_nBkmkAction = cLdConfig; 4127 }
4128 } 4128 else
4129 else 4129 QMessageBox::information(this, PROGNAME, "No config files");
4130 QMessageBox::information(this, PROGNAME, "No config files"); 4130}
4131} 4131
4132 4132void QTReaderApp::TidyConfig()
4133void QTReaderApp::TidyConfig() 4133{
4134{ 4134 if (PopulateConfig("configs"))
4135 if (PopulateConfig("configs")) 4135 {
4136 { 4136 editorStack->raiseWidget( bkmkselector );
4137 editorStack->raiseWidget( bkmkselector ); 4137 hidetoolbars();
4138 hidetoolbars(); 4138 m_nBkmkAction = cRmConfig;
4139 m_nBkmkAction = cRmConfig; 4139 }
4140 } 4140 else
4141 else 4141 QMessageBox::information(this, PROGNAME, "No config files");
4142 QMessageBox::information(this, PROGNAME, "No config files"); 4142}
4143} 4143
4144 4144void QTReaderApp::ExportLinks()
4145void QTReaderApp::ExportLinks() 4145{
4146{ 4146 if (PopulateConfig("urls"))
4147 if (PopulateConfig("urls")) 4147 {
4148 { 4148 editorStack->raiseWidget( bkmkselector );
4149 editorStack->raiseWidget( bkmkselector ); 4149 hidetoolbars();
4150 hidetoolbars(); 4150 m_nBkmkAction = cExportLinks;
4151 m_nBkmkAction = cExportLinks; 4151 }
4152 } 4152 else
4153 else 4153 QMessageBox::information(this, PROGNAME, "No url files");
4154 QMessageBox::information(this, PROGNAME, "No url files"); 4154}
4155} 4155
4156 4156void QTReaderApp::OnURLSelected(const QString& href)
4157void QTReaderApp::OnURLSelected(const QString& href) 4157{
4158{ 4158 CURLDialog* urld = new CURLDialog(href, false, this);
4159 CURLDialog* urld = new CURLDialog(href, false, this); 4159 urld->clipboard(m_url_clipboard);
4160 urld->clipboard(m_url_clipboard); 4160 urld->localfile(m_url_localfile);
4161 urld->localfile(m_url_localfile); 4161 urld->globalfile(m_url_globalfile);
4162 urld->globalfile(m_url_globalfile); 4162 if (urld->exec())
4163 if (urld->exec()) 4163 {
4164 { 4164 m_url_clipboard = urld->clipboard();
4165 m_url_clipboard = urld->clipboard(); 4165 m_url_localfile = urld->localfile();
4166 m_url_localfile = urld->localfile(); 4166 m_url_globalfile = urld->globalfile();
4167 m_url_globalfile = urld->globalfile(); 4167 if (m_url_clipboard)
4168 if (m_url_clipboard) 4168 {
4169 { 4169 QClipboard* cb = QApplication::clipboard();
4170 QClipboard* cb = QApplication::clipboard(); 4170 cb->setText(href);
4171 cb->setText(href); 4171 qDebug("<a href=\"%s\">%s</a>", (const char*)href, (const char*)href);
4172 qDebug("<a href=\"%s\">%s</a>", (const char*)href, (const char*)href); 4172 }
4173 } 4173 if (m_url_localfile)
4174 if (m_url_localfile) 4174 {
4175 { 4175 writeUrl(reader->m_string, href);
4176 writeUrl(reader->m_string, href); 4176 }
4177 } 4177 if (m_url_globalfile)
4178 if (m_url_globalfile) 4178 {
4179 { 4179 writeUrl("GlobalURLFile", href);
4180 writeUrl("GlobalURLFile", href); 4180 }
4181 } 4181 }
4182 } 4182 delete urld;
4183 delete urld; 4183}
4184} 4184
4185 4185void QTReaderApp::writeUrl(const QString& file, const QString& href)
4186void QTReaderApp::writeUrl(const QString& file, const QString& href) 4186{
4187{ 4187 QString filename;
4188 QString filename; 4188#ifdef USEQPE
4189#ifdef USEQPE 4189 filename = Global::applicationFileName(APPDIR "/urls", file);
4190 filename = Global::applicationFileName(APPDIR "/urls", file); 4190#else
4191#else 4191 QFileInfo fi;
4192 QFileInfo fi; 4192 QDir d = QDir::home(); // "/"
4193 QDir d = QDir::home(); // "/" 4193 if ( !d.cd(APPDIR) )
4194 if ( !d.cd(APPDIR) ) 4194 { // "/tmp"
4195 { // "/tmp" 4195 qWarning( "Cannot find the \"~/" APPDIR "\" directory" );
4196 qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); 4196 d = QDir::home();
4197 d = QDir::home(); 4197 d.mkdir(APPDIR);
4198 d.mkdir(APPDIR); 4198 d.cd(APPDIR);
4199 d.cd(APPDIR); 4199 }
4200 } 4200 if ( !d.cd("urls") )
4201 if ( !d.cd("urls") ) 4201 { // "/tmp"
4202 { // "/tmp" 4202 qWarning( "Cannot find the \"~/" APPDIR "/urls\" directory" );
4203 qWarning( "Cannot find the \"~/" APPDIR "/urls\" directory" ); 4203 d = QDir::home();
4204 d = QDir::home(); 4204 d.cd(APPDIR);
4205 d.cd(APPDIR); 4205 d.mkdir("urls");
4206 d.mkdir("urls"); 4206 d.cd("urls");
4207 d.cd("urls"); 4207 }
4208 } 4208 fi.setFile(d, file);
4209 fi.setFile(d, file); 4209 filename = fi.absFilePath();
4210 filename = fi.absFilePath(); 4210#endif
4211#endif 4211 FILE* fout = fopen(filename, "a");
4212 FILE* fout = fopen(filename, "a"); 4212 if (fout != NULL)
4213 if (fout != NULL) 4213 {
4214 { 4214 fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href);
4215 fprintf(fout, "<p><a href=\"%s\">%s</a>\n", (const char*)href, (const char*)href); 4215 fclose(fout);
4216 fclose(fout); 4216 }
4217 } 4217 else
4218 else 4218 {
4219 { 4219 QMessageBox::warning(this, PROGNAME, "Problem with writing URL");
4220 QMessageBox::warning(this, PROGNAME, "Problem with writing URL"); 4220 }
4221 } 4221}
4222}