summaryrefslogtreecommitdiff
authorchicken <chicken>2004-03-01 19:23:21 (UTC)
committer chicken <chicken>2004-03-01 19:23:21 (UTC)
commite6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a (patch) (unidiff)
tree35b7298eb0d91fa038f84814205f415102975f3f
parentddc3d749af5f7afebf69488b79641771fe246b5b (diff)
downloadopie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.zip
opie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.tar.gz
opie-e6fcfb9a4c0c744ea7b0ec8b7e200b185a8a309a.tar.bz2
fix includes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/Bkmks.cpp2
-rw-r--r--noncore/apps/opie-reader/BuffDoc.cpp4
-rw-r--r--noncore/apps/opie-reader/CDrawBuffer.cpp4
-rw-r--r--noncore/apps/opie-reader/CEncoding_tables.cpp1
-rw-r--r--noncore/apps/opie-reader/CFilter.cpp1
-rw-r--r--noncore/apps/opie-reader/FontControl.cpp2
-rw-r--r--noncore/apps/opie-reader/Palm2QImage.cpp1
-rw-r--r--noncore/apps/opie-reader/Prefs.cpp9
-rw-r--r--noncore/apps/opie-reader/QTReader.cpp9
-rw-r--r--noncore/apps/opie-reader/QTReaderApp.cpp8443
-rw-r--r--noncore/apps/opie-reader/ToolbarPrefs.cpp10
-rw-r--r--noncore/apps/opie-reader/fileBrowser.cpp3
-rw-r--r--noncore/apps/opie-reader/main.cpp2
-rw-r--r--noncore/apps/opie-reader/plucker.cpp5
-rw-r--r--noncore/apps/opie-reader/plucker_base.cpp5
-rw-r--r--noncore/apps/opie-reader/ppm.cpp1
-rw-r--r--noncore/apps/opie-reader/version.cpp2
-rw-r--r--noncore/apps/opie-sheet/Excel.cpp3
-rw-r--r--noncore/apps/opie-sheet/mainwindow.cpp4
-rw-r--r--noncore/apps/opie-sheet/sheet.cpp1
20 files changed, 4221 insertions, 4291 deletions
diff --git a/noncore/apps/opie-reader/Bkmks.cpp b/noncore/apps/opie-reader/Bkmks.cpp
index 889c6d8..16bc1f1 100644
--- a/noncore/apps/opie-reader/Bkmks.cpp
+++ b/noncore/apps/opie-reader/Bkmks.cpp
@@ -1,102 +1,100 @@
1#include <qmessagebox.h> 1#include <qmessagebox.h>
2 2
3#include "Bkmks.h" 3#include "Bkmks.h"
4 4
5#include "StyleConsts.h"
6#include "Markups.h"
7#include "my_list.h" 5#include "my_list.h"
8#include "version.h" 6#include "version.h"
9#include "names.h" 7#include "names.h"
10 8
11const unsigned long BkmkFile::magic = ((unsigned long)'q' << 24) | ((unsigned long)'t' << 16) | ((unsigned long)'r' << 8) | ((unsigned long)BKMKTYPE); 9const unsigned long BkmkFile::magic = ((unsigned long)'q' << 24) | ((unsigned long)'t' << 16) | ((unsigned long)'r' << 8) | ((unsigned long)BKMKTYPE);
12 10
13Bkmk::Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p) : m_position(_p) 11Bkmk::Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p) : m_position(_p)
14{ 12{
15 init(_nm, _nmlen, _anno, _annolen, _p); 13 init(_nm, _nmlen, _anno, _annolen, _p);
16} 14}
17 15
18Bkmk::Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short annolen, unsigned int _p) : m_position(_p) 16Bkmk::Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short annolen, unsigned int _p) : m_position(_p)
19{ 17{
20 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, annolen, _p); 18 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, annolen, _p);
21} 19}
22 20
23Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p) : m_position(_p) 21Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p) : m_position(_p)
24{ 22{
25 23
26 if (_anno == NULL) 24 if (_anno == NULL)
27 { 25 {
28 tchar t = 0; 26 tchar t = 0;
29 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), &t, sizeof(t), _p); 27 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), &t, sizeof(t), _p);
30 } 28 }
31 else 29 else
32 { 30 {
33 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, sizeof(tchar)*(ustrlen(_anno)+1), _p); 31 init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, sizeof(tchar)*(ustrlen(_anno)+1), _p);
34 } 32 }
35} 33}
36 34
37void Bkmk::init(const void* _nm, unsigned short _nmlen, const void* _anno, unsigned short _annolen, unsigned int _p) 35void Bkmk::init(const void* _nm, unsigned short _nmlen, const void* _anno, unsigned short _annolen, unsigned int _p)
38{ 36{
39 m_namelen = _nmlen; 37 m_namelen = _nmlen;
40 if (m_namelen > 0) 38 if (m_namelen > 0)
41 { 39 {
42 m_name = new unsigned char[m_namelen]; 40 m_name = new unsigned char[m_namelen];
43 memcpy(m_name, _nm, m_namelen); 41 memcpy(m_name, _nm, m_namelen);
44 } 42 }
45 else 43 else
46 { 44 {
47 m_name = NULL; 45 m_name = NULL;
48 } 46 }
49 47
50 m_annolen = _annolen; 48 m_annolen = _annolen;
51 if (m_annolen > 0) 49 if (m_annolen > 0)
52 { 50 {
53 m_anno = new unsigned char[m_annolen]; 51 m_anno = new unsigned char[m_annolen];
54 memcpy(m_anno, _anno, m_annolen); 52 memcpy(m_anno, _anno, m_annolen);
55 } 53 }
56 else 54 else
57 { 55 {
58 m_anno = NULL; 56 m_anno = NULL;
59 } 57 }
60 m_position = _p; 58 m_position = _p;
61} 59}
62 60
63Bkmk::~Bkmk() 61Bkmk::~Bkmk()
64{ 62{
65 if (m_name != NULL) delete [] m_name; 63 if (m_name != NULL) delete [] m_name;
66 m_name = NULL; 64 m_name = NULL;
67 if (m_anno != NULL) delete [] m_anno; 65 if (m_anno != NULL) delete [] m_anno;
68 m_anno = NULL; 66 m_anno = NULL;
69} 67}
70 68
71Bkmk& Bkmk::operator=(const Bkmk& rhs) 69Bkmk& Bkmk::operator=(const Bkmk& rhs)
72{ 70{
73 if (m_name != NULL) 71 if (m_name != NULL)
74 { 72 {
75 delete [] m_name; 73 delete [] m_name;
76 m_name = NULL; 74 m_name = NULL;
77 } 75 }
78 if (m_anno != NULL) 76 if (m_anno != NULL)
79 { 77 {
80 delete [] m_anno; 78 delete [] m_anno;
81 m_anno = NULL; 79 m_anno = NULL;
82 } 80 }
83 if (rhs.m_name != NULL) 81 if (rhs.m_name != NULL)
84 { 82 {
85 m_namelen = rhs.m_namelen; 83 m_namelen = rhs.m_namelen;
86 m_name = new unsigned char[m_namelen]; 84 m_name = new unsigned char[m_namelen];
87 memcpy(m_name, rhs.m_name, m_namelen); 85 memcpy(m_name, rhs.m_name, m_namelen);
88 } 86 }
89 else 87 else
90 m_name = NULL; 88 m_name = NULL;
91 if (rhs.m_anno != NULL) 89 if (rhs.m_anno != NULL)
92 { 90 {
93 m_annolen = rhs.m_annolen; 91 m_annolen = rhs.m_annolen;
94 m_anno = new unsigned char[m_annolen]; 92 m_anno = new unsigned char[m_annolen];
95 memcpy(m_anno, rhs.m_anno, m_annolen); 93 memcpy(m_anno, rhs.m_anno, m_annolen);
96 } 94 }
97 else 95 else
98 m_anno = NULL; 96 m_anno = NULL;
99 m_position = rhs.m_position; 97 m_position = rhs.m_position;
100 return *this; 98 return *this;
101} 99}
102 100
diff --git a/noncore/apps/opie-reader/BuffDoc.cpp b/noncore/apps/opie-reader/BuffDoc.cpp
index 2402904..4fbab93 100644
--- a/noncore/apps/opie-reader/BuffDoc.cpp
+++ b/noncore/apps/opie-reader/BuffDoc.cpp
@@ -1,106 +1,102 @@
1#include "names.h"
2 1
3#define NEWLINEBREAK 2#define NEWLINEBREAK
4 3
5#include "BuffDoc.h" 4#include "BuffDoc.h"
6//#include <FL/fl_draw.h> 5//#include <FL/fl_draw.h>
7#include "config.h"
8#include "CDrawBuffer.h"
9#include "plucker.h" 6#include "plucker.h"
10#include "usenef.h"
11#ifdef USENEF 7#ifdef USENEF
12#include "nef.h" 8#include "nef.h"
13#include "arrierego.h" 9#include "arrierego.h"
14#endif 10#endif
15 11
16linkType BuffDoc::hyperlink(unsigned int n, QString& wrd) 12linkType BuffDoc::hyperlink(unsigned int n, QString& wrd)
17{ 13{
18 linkType bRet = eNone; 14 linkType bRet = eNone;
19 if (exp != NULL) 15 if (exp != NULL)
20 { 16 {
21 bRet = exp->hyperlink(n, wrd); 17 bRet = exp->hyperlink(n, wrd);
22 if (bRet == eLink) 18 if (bRet == eLink)
23 { 19 {
24 lastword.empty(); 20 lastword.empty();
25 lastsizes[0] = laststartline = n; 21 lastsizes[0] = laststartline = n;
26#ifdef NEWLINEBREAK 22#ifdef NEWLINEBREAK
27 lastispara = true; 23 lastispara = true;
28#else 24#else
29 lastispara = false; 25 lastispara = false;
30#endif 26#endif
31 lastsizes[0] = laststartline = exp->locate(); 27 lastsizes[0] = laststartline = exp->locate();
32 } 28 }
33 } 29 }
34 return bRet; 30 return bRet;
35} 31}
36 32
37void BuffDoc::locate(unsigned int n) 33void BuffDoc::locate(unsigned int n)
38{ 34{
39 // //qDebug("BuffDoc:locating:%u",n); 35 // //qDebug("BuffDoc:locating:%u",n);
40 lastword.empty(); 36 lastword.empty();
41 lastsizes[0] = laststartline = n; 37 lastsizes[0] = laststartline = n;
42#ifdef NEWLINEBREAK 38#ifdef NEWLINEBREAK
43 lastispara = true; 39 lastispara = true;
44#else 40#else
45 lastispara = false; 41 lastispara = false;
46#endif 42#endif
47 // tchar linebuf[1024]; 43 // tchar linebuf[1024];
48 if (exp != NULL) exp->locate(n); 44 if (exp != NULL) exp->locate(n);
49 // //qDebug("BuffDoc:Located"); 45 // //qDebug("BuffDoc:Located");
50} 46}
51 47
52#ifdef NEWLINEBREAK 48#ifdef NEWLINEBREAK
53bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border) 49bool BuffDoc::getline(CDrawBuffer* buff, int wth, unsigned char _border)
54{ 50{
55 bool moreleft = true; 51 bool moreleft = true;
56 bool margindone = false; 52 bool margindone = false;
57 int w = wth-2*_border; 53 int w = wth-2*_border;
58 tchar ch = 32; 54 tchar ch = 32;
59 CStyle cs; 55 CStyle cs;
60 buff->empty(); 56 buff->empty();
61 if (exp == NULL) 57 if (exp == NULL)
62 { 58 {
63 buff->empty(); 59 buff->empty();
64 buff->setEof(); 60 buff->setEof();
65 return false; 61 return false;
66 } 62 }
67 int len = 0; 63 int len = 0;
68 if (lastword.length() > 0) 64 if (lastword.length() > 0)
69 { 65 {
70 *buff = lastword; 66 *buff = lastword;
71 cs = lastword.laststyle(); 67 cs = lastword.laststyle();
72 w -= buff->leftMargin() + buff->rightMargin(); 68 w -= buff->leftMargin() + buff->rightMargin();
73 margindone = true; 69 margindone = true;
74 len = lastword.length(); 70 len = lastword.length();
75 } 71 }
76 else buff->empty(); 72 else buff->empty();
77 lastword.empty(); 73 lastword.empty();
78 unsigned int slen = buff->width(len); 74 unsigned int slen = buff->width(len);
79 if (lastispara) buff->setstartpara(); 75 if (lastispara) buff->setstartpara();
80 while (1) 76 while (1)
81 { 77 {
82 lastsizes[len] = exp->locate(); 78 lastsizes[len] = exp->locate();
83 getch(ch, cs); 79 getch(ch, cs);
84 if (ch == 10 && len == 0 && !lastispara) 80 if (ch == 10 && len == 0 && !lastispara)
85 { 81 {
86 lastsizes[len] = exp->locate(); 82 lastsizes[len] = exp->locate();
87 getch(ch, cs); 83 getch(ch, cs);
88 } 84 }
89 if (ch == UEOF) 85 if (ch == UEOF)
90 { 86 {
91 if (len == 0) 87 if (len == 0)
92 { 88 {
93 buff->setEof(); 89 buff->setEof();
94 moreleft = false; 90 moreleft = false;
95 } 91 }
96 laststartline = exp->locate(); 92 laststartline = exp->locate();
97 break; 93 break;
98 } 94 }
99 if (ch == 10) 95 if (ch == 10)
100 { 96 {
101 buff->setendpara(); 97 buff->setendpara();
102 lastispara = true; 98 lastispara = true;
103 laststartline = exp->locate(); 99 laststartline = exp->locate();
104 break; 100 break;
105 } 101 }
106 lastispara = false; 102 lastispara = false;
diff --git a/noncore/apps/opie-reader/CDrawBuffer.cpp b/noncore/apps/opie-reader/CDrawBuffer.cpp
index 77b76fb..ec36fb2 100644
--- a/noncore/apps/opie-reader/CDrawBuffer.cpp
+++ b/noncore/apps/opie-reader/CDrawBuffer.cpp
@@ -1,104 +1,100 @@
1#include "CDrawBuffer.h" 1#include "CDrawBuffer.h"
2#include "FontControl.h" 2#include "FontControl.h"
3#include <qfontmetrics.h>
4#include <qpainter.h> 3#include <qpainter.h>
5#include <qpixmap.h>
6#include <qimage.h> 4#include <qimage.h>
7#include "useqpe.h"
8#include "opie.h"
9 5
10CDrawBuffer::~CDrawBuffer() 6CDrawBuffer::~CDrawBuffer()
11{ 7{
12 while (!segs.isEmpty()) segs.erase(0); 8 while (!segs.isEmpty()) segs.erase(0);
13} 9}
14 10
15void CDrawBuffer::setright(CDrawBuffer& rhs, int f) 11void CDrawBuffer::setright(CDrawBuffer& rhs, int f)
16{ 12{
17 int i; 13 int i;
18 len = rhs.len; 14 len = rhs.len;
19 fc = rhs.fc; 15 fc = rhs.fc;
20 m_maxstyle = m_ascent = m_descent = m_lineSpacing = m_lineExtraSpacing = 0; 16 m_maxstyle = m_ascent = m_descent = m_lineSpacing = m_lineExtraSpacing = 0;
21 while (!segs.isEmpty()) 17 while (!segs.isEmpty())
22 { 18 {
23 segs.erase(0); 19 segs.erase(0);
24 } 20 }
25 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); ) 21 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); )
26 { 22 {
27 CList<textsegment>::iterator next = iter; 23 CList<textsegment>::iterator next = iter;
28 iter++; 24 iter++;
29 if (iter == rhs.segs.end() || iter->start > f) 25 if (iter == rhs.segs.end() || iter->start > f)
30 { 26 {
31 int st = next->start-f; 27 int st = next->start-f;
32 if (st < 0) st = 0; 28 if (st < 0) st = 0;
33 29
34 CStyle _style = next->style; 30 CStyle _style = next->style;
35 31
36 segs.push_back(textsegment(st,next->style)); 32 segs.push_back(textsegment(st,next->style));
37 } 33 }
38 } 34 }
39 for (i = f; rhs[i] != '\0'; i++) (*this)[i-f] = rhs[i]; 35 for (i = f; rhs[i] != '\0'; i++) (*this)[i-f] = rhs[i];
40 (*this)[i-f] = '\0'; 36 (*this)[i-f] = '\0';
41 len = i; 37 len = i;
42} 38}
43 39
44CDrawBuffer& CDrawBuffer::operator=(CDrawBuffer& rhs) 40CDrawBuffer& CDrawBuffer::operator=(CDrawBuffer& rhs)
45{ 41{
46 int i; 42 int i;
47// //qDebug("Trying 2"); 43// //qDebug("Trying 2");
48 len = rhs.len; 44 len = rhs.len;
49 m_maxstyle = rhs.m_maxstyle; 45 m_maxstyle = rhs.m_maxstyle;
50 m_ascent = rhs.m_ascent; 46 m_ascent = rhs.m_ascent;
51 m_descent = rhs.m_descent; 47 m_descent = rhs.m_descent;
52 m_lineSpacing = rhs.m_lineSpacing; 48 m_lineSpacing = rhs.m_lineSpacing;
53 m_lineExtraSpacing = rhs.m_lineExtraSpacing; 49 m_lineExtraSpacing = rhs.m_lineExtraSpacing;
54 while (!segs.isEmpty()) 50 while (!segs.isEmpty())
55 { 51 {
56 segs.erase(0); 52 segs.erase(0);
57 } 53 }
58 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); iter++) 54 for (CList<textsegment>::iterator iter = rhs.segs.begin(); iter != rhs.segs.end(); iter++)
59 { 55 {
60 segs.push_back(*iter); 56 segs.push_back(*iter);
61 } 57 }
62 for (i = 0; rhs[i] != '\0'; i++) (*this)[i] = rhs[i]; 58 for (i = 0; rhs[i] != '\0'; i++) (*this)[i] = rhs[i];
63 (*this)[i] = '\0'; 59 (*this)[i] = '\0';
64 len = i; 60 len = i;
65// //qDebug("Tried 2"); 61// //qDebug("Tried 2");
66 return *this; 62 return *this;
67} 63}
68 64
69CDrawBuffer& CDrawBuffer::operator=(const tchar*sztmp) 65CDrawBuffer& CDrawBuffer::operator=(const tchar*sztmp)
70{ 66{
71 int i; 67 int i;
72 while (!segs.isEmpty()) 68 while (!segs.isEmpty())
73 { 69 {
74 segs.erase(0); 70 segs.erase(0);
75 } 71 }
76 segs.push_back(textsegment(0, CStyle())); 72 segs.push_back(textsegment(0, CStyle()));
77 for (i = 0; sztmp[i] != '\0'; i++) (*this)[i] = sztmp[i]; 73 for (i = 0; sztmp[i] != '\0'; i++) (*this)[i] = sztmp[i];
78 (*this)[i] = '\0'; 74 (*this)[i] = '\0';
79 len = i; 75 len = i;
80 return *this; 76 return *this;
81} 77}
82 78
83void CDrawBuffer::empty() 79void CDrawBuffer::empty()
84{ 80{
85 m_bSop = false; 81 m_bSop = false;
86 m_bEop = false; 82 m_bEop = false;
87 len = 0; 83 len = 0;
88 (*this)[0] = 0; 84 (*this)[0] = 0;
89 while (!segs.isEmpty()) 85 while (!segs.isEmpty())
90 { 86 {
91 segs.erase(0); 87 segs.erase(0);
92 } 88 }
93 segs.push_back(textsegment(0,CStyle())); 89 segs.push_back(textsegment(0,CStyle()));
94 m_maxstyle = m_ascent = m_descent = m_lineSpacing = m_lineExtraSpacing = 0; 90 m_maxstyle = m_ascent = m_descent = m_lineSpacing = m_lineExtraSpacing = 0;
95 m_bEof = false; 91 m_bEof = false;
96} 92}
97 93
98void CDrawBuffer::addch(tchar ch, CStyle _style/* = ucFontBase*/) 94void CDrawBuffer::addch(tchar ch, CStyle _style/* = ucFontBase*/)
99{ 95{
100 if (len == 0) 96 if (len == 0)
101 { 97 {
102 segs.first().start = 0; 98 segs.first().start = 0;
103 segs.first().style = _style; 99 segs.first().style = _style;
104 } 100 }
diff --git a/noncore/apps/opie-reader/CEncoding_tables.cpp b/noncore/apps/opie-reader/CEncoding_tables.cpp
index 667bda0..e335819 100644
--- a/noncore/apps/opie-reader/CEncoding_tables.cpp
+++ b/noncore/apps/opie-reader/CEncoding_tables.cpp
@@ -1,98 +1,97 @@
1#include "CEncoding_tables.h" 1#include "CEncoding_tables.h"
2#include "config.h"
3 2
4static const unicodetable unicodevalues[] = { 3static const unicodetable unicodevalues[] = {
5 // from RFC 1489, ftp://ftp.isi.edu/in-notes/rfc1489.txt 4 // from RFC 1489, ftp://ftp.isi.edu/in-notes/rfc1489.txt
6 { "KOI8-R", "KOI8-R", 2084, 5 { "KOI8-R", "KOI8-R", 2084,
7 { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, 6 { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
8 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, 7 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
9 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219/**/, 0x221A, 0x2248, 8 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219/**/, 0x221A, 0x2248,
10 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, 9 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
11 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, 10 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
12 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, 11 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E,
13 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, 12 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
14 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, 13 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
15 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 14 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
16 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 15 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
17 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 16 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
18 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 17 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
19 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 18 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
20 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 19 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
21 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 20 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
22 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } }, 21 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } },
23 // /**/ - The BULLET OPERATOR is confused. Some people think 22 // /**/ - The BULLET OPERATOR is confused. Some people think
24 // it should be 0x2022 (BULLET). 23 // it should be 0x2022 (BULLET).
25 24
26 // from RFC 2319, ftp://ftp.isi.edu/in-notes/rfc2319.txt 25 // from RFC 2319, ftp://ftp.isi.edu/in-notes/rfc2319.txt
27 { "KOI8-U", "KOI8-U", 2088, 26 { "KOI8-U", "KOI8-U", 2088,
28 { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, 27 { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
29 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, 28 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
30 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, 29 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
31 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, 30 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
32 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, 31 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
33 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, 32 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E,
34 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, 33 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
35 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, 34 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9,
36 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 35 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
37 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 36 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
38 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 37 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
39 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 38 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
40 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 39 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
41 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 40 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
42 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 41 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
43 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } }, 42 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } },
44 43
45 // next bits generated from tables on the Unicode 2.0 CD. we can 44 // next bits generated from tables on the Unicode 2.0 CD. we can
46 // use these tables since this is part of the transition to using 45 // use these tables since this is part of the transition to using
47 // unicode everywhere in qt. 46 // unicode everywhere in qt.
48 47
49 // $ for A in 8 9 A B C D E F ; do for B in 0 1 2 3 4 5 6 7 8 9 A B C D E F ; do echo 0x${A}${B} 0xFFFD ; done ; done > /tmp/digits ; for a in 8859-* ; do ( awk '/^0x[89ABCDEF]/{ print $1, $2 }' < $a ; cat /tmp/digits ) | sort | uniq -w4 | cut -c6- | paste '-d ' - - - - - - - - | sed -e 's/ /, /g' -e 's/$/,/' -e '$ s/,$/} },/' -e '1 s/^/{ /' > ~/tmp/$a ; done 48 // $ for A in 8 9 A B C D E F ; do for B in 0 1 2 3 4 5 6 7 8 9 A B C D E F ; do echo 0x${A}${B} 0xFFFD ; done ; done > /tmp/digits ; for a in 8859-* ; do ( awk '/^0x[89ABCDEF]/{ print $1, $2 }' < $a ; cat /tmp/digits ) | sort | uniq -w4 | cut -c6- | paste '-d ' - - - - - - - - | sed -e 's/ /, /g' -e 's/$/,/' -e '$ s/,$/} },/' -e '1 s/^/{ /' > ~/tmp/$a ; done
50 49
51 // then I inserted the files manually. 50 // then I inserted the files manually.
52 { "ISO-8859-2", "ISO 8859-2", 5, 51 { "ISO-8859-2", "ISO 8859-2", 5,
53 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 52 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
54 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 53 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
55 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 54 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
56 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, 55 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
57 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, 56 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
58 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, 57 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
59 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, 58 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
60 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, 59 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
61 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, 60 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
62 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, 61 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
63 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, 62 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
64 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, 63 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
65 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, 64 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
66 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, 65 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
67 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, 66 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
68 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9} }, 67 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9} },
69 { "ISO-8859-3", "ISO 8859-3", 6, 68 { "ISO-8859-3", "ISO 8859-3", 6,
70 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 69 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
71 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 70 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
72 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 71 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
73 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, 72 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
74 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xFFFD, 0x0124, 0x00A7, 73 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xFFFD, 0x0124, 0x00A7,
75 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xFFFD, 0x017B, 74 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xFFFD, 0x017B,
76 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, 75 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
77 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xFFFD, 0x017C, 76 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xFFFD, 0x017C,
78 0x00C0, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0x010A, 0x0108, 0x00C7, 77 0x00C0, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0x010A, 0x0108, 0x00C7,
79 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 78 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
80 0xFFFD, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, 79 0xFFFD, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
81 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, 80 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
82 0x00E0, 0x00E1, 0x00E2, 0xFFFD, 0x00E4, 0x010B, 0x0109, 0x00E7, 81 0x00E0, 0x00E1, 0x00E2, 0xFFFD, 0x00E4, 0x010B, 0x0109, 0x00E7,
83 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 82 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
84 0xFFFD, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, 83 0xFFFD, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
85 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9} }, 84 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9} },
86 { "ISO-8859-4", "ISO 8859-4", 7, 85 { "ISO-8859-4", "ISO 8859-4", 7,
87 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 86 { 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
88 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 87 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
89 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 88 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
90 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, 89 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
91 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, 90 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7,
92 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, 91 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF,
93 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, 92 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7,
94 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, 93 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B,
95 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, 94 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E,
96 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, 95 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A,
97 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 96 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
98 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, 97 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF,
diff --git a/noncore/apps/opie-reader/CFilter.cpp b/noncore/apps/opie-reader/CFilter.cpp
index 73a0872..0422ba6 100644
--- a/noncore/apps/opie-reader/CFilter.cpp
+++ b/noncore/apps/opie-reader/CFilter.cpp
@@ -1,97 +1,96 @@
1#include "CDrawBuffer.h"
2#include "CFilter.h" 1#include "CFilter.h"
3 2
4unsigned short striphtml::skip_ws() 3unsigned short striphtml::skip_ws()
5{ 4{
6 tchar ch; 5 tchar ch;
7 CStyle sty; 6 CStyle sty;
8 do 7 do
9 { 8 {
10 parent->getch(ch, sty); 9 parent->getch(ch, sty);
11 } 10 }
12 while (ch < 33); 11 while (ch < 33);
13 return ch; 12 return ch;
14} 13}
15 14
16unsigned short striphtml::skip_ws_end() 15unsigned short striphtml::skip_ws_end()
17{ 16{
18 tchar ch; 17 tchar ch;
19 CStyle sty; 18 CStyle sty;
20 parent->getch(ch, sty); 19 parent->getch(ch, sty);
21 if (ch == ' ') 20 if (ch == ' ')
22 { 21 {
23 do 22 do
24 { 23 {
25 parent->getch(ch, sty); 24 parent->getch(ch, sty);
26 } 25 }
27 while (ch != '>'); 26 while (ch != '>');
28 } 27 }
29 return ch; 28 return ch;
30} 29}
31 30
32unsigned short striphtml::parse_m() 31unsigned short striphtml::parse_m()
33{ 32{
34 tchar ch; 33 tchar ch;
35 CStyle sty; 34 CStyle sty;
36 parent->getch(ch, sty); 35 parent->getch(ch, sty);
37 if (ch == 'm' || ch == 'M') 36 if (ch == 'm' || ch == 'M')
38 { 37 {
39 ch = skip_ws_end(); 38 ch = skip_ws_end();
40 if (ch == '>') 39 if (ch == '>')
41 { 40 {
42 return 0; 41 return 0;
43 } 42 }
44 } 43 }
45 return ch; 44 return ch;
46} 45}
47 46
48void striphtml::mygetch(tchar& ch, CStyle& sty) 47void striphtml::mygetch(tchar& ch, CStyle& sty)
49{ 48{
50 parent->getch(ch, sty); 49 parent->getch(ch, sty);
51 if (ch == 10) ch = ' '; 50 if (ch == 10) ch = ' ';
52} 51}
53 52
54void striphtml::getch(tchar& ch, CStyle& sty) 53void striphtml::getch(tchar& ch, CStyle& sty)
55{ 54{
56 CStyle dummy; 55 CStyle dummy;
57 mygetch(ch, dummy); 56 mygetch(ch, dummy);
58 if (ch == 10) ch = ' '; 57 if (ch == 10) ch = ' ';
59 while (ch == '<') 58 while (ch == '<')
60 { 59 {
61 ch = skip_ws(); 60 ch = skip_ws();
62 61
63 switch (ch) 62 switch (ch)
64 { 63 {
65 case 'p': 64 case 'p':
66 case 'P': 65 case 'P':
67 ch = skip_ws_end(); 66 ch = skip_ws_end();
68 if (ch == '>') 67 if (ch == '>')
69 { 68 {
70 ch = 10; 69 ch = 10;
71 continue; 70 continue;
72 } 71 }
73 break; 72 break;
74 case 'b': 73 case 'b':
75 case 'B': 74 case 'B':
76 ch = skip_ws_end(); 75 ch = skip_ws_end();
77 if (ch == '>') 76 if (ch == '>')
78 { 77 {
79 currentstyle.setBold(); 78 currentstyle.setBold();
80 mygetch(ch, dummy); 79 mygetch(ch, dummy);
81 continue; 80 continue;
82 } 81 }
83 else if (ch == 'r' || ch == 'R') 82 else if (ch == 'r' || ch == 'R')
84 { 83 {
85 ch = skip_ws_end(); 84 ch = skip_ws_end();
86 if (ch == '>') 85 if (ch == '>')
87 { 86 {
88 ch = 10; 87 ch = 10;
89 continue; 88 continue;
90 } 89 }
91 } 90 }
92 break; 91 break;
93 case 'i': 92 case 'i':
94 case 'I': 93 case 'I':
95 ch = skip_ws_end(); 94 ch = skip_ws_end();
96 if (ch == '>') 95 if (ch == '>')
97 { 96 {
diff --git a/noncore/apps/opie-reader/FontControl.cpp b/noncore/apps/opie-reader/FontControl.cpp
index e03bf64..cfa8534 100644
--- a/noncore/apps/opie-reader/FontControl.cpp
+++ b/noncore/apps/opie-reader/FontControl.cpp
@@ -1,60 +1,58 @@
1#include "opie.h"
2#include "useqpe.h"
3#include "FontControl.h" 1#include "FontControl.h"
4 2
5int FontControl::gzoom() 3int FontControl::gzoom()
6{ 4{
7 int ret; 5 int ret;
8 if (m_size == g_size) 6 if (m_size == g_size)
9 { 7 {
10 ret = m_fontsizes[m_size]*m_basesize; 8 ret = m_fontsizes[m_size]*m_basesize;
11 } 9 }
12 else if (g_size < 0) 10 else if (g_size < 0)
13 { 11 {
14 int f = -g_size; 12 int f = -g_size;
15 ret = (m_fontsizes[0]*m_basesize) >> (f/2); 13 ret = (m_fontsizes[0]*m_basesize) >> (f/2);
16 if (f%2) ret = (2*ret/3); 14 if (f%2) ret = (2*ret/3);
17 } 15 }
18 else 16 else
19 { 17 {
20 int f = g_size - m_maxsize + 1; 18 int f = g_size - m_maxsize + 1;
21 ret = (m_fontsizes[m_maxsize-1]*m_basesize) << (f/2); 19 ret = (m_fontsizes[m_maxsize-1]*m_basesize) << (f/2);
22 if (f%2) ret = (3*ret/2); 20 if (f%2) ret = (3*ret/2);
23 } 21 }
24 return ret; 22 return ret;
25} 23}
26 24
27bool FontControl::ChangeFont(QString& n, int tgt) 25bool FontControl::ChangeFont(QString& n, int tgt)
28{ 26{
29 QValueList<int>::Iterator it; 27 QValueList<int>::Iterator it;
30 QFontDatabase fdb; 28 QFontDatabase fdb;
31 QValueList<int> sizes = fdb.pointSizes(n); 29 QValueList<int> sizes = fdb.pointSizes(n);
32 if (sizes.count() == 0) 30 if (sizes.count() == 0)
33 { 31 {
34 return false; 32 return false;
35 } 33 }
36 else 34 else
37 { 35 {
38 m_fontname = n; 36 m_fontname = n;
39 m_maxsize = sizes.count(); 37 m_maxsize = sizes.count();
40 if (m_fontsizes != NULL) delete [] m_fontsizes; 38 if (m_fontsizes != NULL) delete [] m_fontsizes;
41 m_fontsizes = new int[m_maxsize]; 39 m_fontsizes = new int[m_maxsize];
42 uint i = 0; 40 uint i = 0;
43 uint best = 0; 41 uint best = 0;
44 for (it = sizes.begin(); it != sizes.end(); it++) 42 for (it = sizes.begin(); it != sizes.end(); it++)
45 { 43 {
46#if defined(OPIE) || !defined(USEQPE) 44#if defined(OPIE) || !defined(USEQPE)
47 m_fontsizes[i] = (*it); 45 m_fontsizes[i] = (*it);
48#else 46#else
49 m_fontsizes[i] = (*it)/10; 47 m_fontsizes[i] = (*it)/10;
50#endif 48#endif
51 if (abs(tgt-m_fontsizes[i]) < abs(tgt-m_fontsizes[best])) 49 if (abs(tgt-m_fontsizes[i]) < abs(tgt-m_fontsizes[best]))
52 { 50 {
53 best = i; 51 best = i;
54 } 52 }
55 i++; 53 i++;
56 } 54 }
57 g_size = m_size = best; 55 g_size = m_size = best;
58 } 56 }
59 return true; 57 return true;
60} 58}
diff --git a/noncore/apps/opie-reader/Palm2QImage.cpp b/noncore/apps/opie-reader/Palm2QImage.cpp
index bf5ece3..9339595 100644
--- a/noncore/apps/opie-reader/Palm2QImage.cpp
+++ b/noncore/apps/opie-reader/Palm2QImage.cpp
@@ -1,98 +1,97 @@
1/* -*- mode: c; indent-tabs-mode: nil; -*- */ 1/* -*- mode: c; indent-tabs-mode: nil; -*- */
2#include "useqpe.h"
3#include <stdio.h> 2#include <stdio.h>
4#include <stdlib.h> 3#include <stdlib.h>
5#include <string.h> 4#include <string.h>
6#ifndef _WINDOWS 5#ifndef _WINDOWS
7#include <unistd.h> /* for link */ 6#include <unistd.h> /* for link */
8#endif 7#endif
9#include <sys/types.h> 8#include <sys/types.h>
10#include <sys/stat.h> 9#include <sys/stat.h>
11#include <stdarg.h> 10#include <stdarg.h>
12 11
13#include <qimage.h> 12#include <qimage.h>
14 13
15/***********************************************************************/ 14/***********************************************************************/
16/***********************************************************************/ 15/***********************************************************************/
17/***** *****/ 16/***** *****/
18/***** Code to decode the Palm image format to JPEG *****/ 17/***** Code to decode the Palm image format to JPEG *****/
19/***** *****/ 18/***** *****/
20/***********************************************************************/ 19/***********************************************************************/
21/***********************************************************************/ 20/***********************************************************************/
22 21
23#define READ_BIGENDIAN_SHORT(p) (((p)[0] << 8)|((p)[1])) 22#define READ_BIGENDIAN_SHORT(p) (((p)[0] << 8)|((p)[1]))
24#define READ_BIGENDIAN_LONG(p) (((p)[0] << 24)|((p)[1] << 16)|((p)[2] << 8)|((p)[3])) 23#define READ_BIGENDIAN_LONG(p) (((p)[0] << 24)|((p)[1] << 16)|((p)[2] << 8)|((p)[3]))
25 24
26#define PALM_IS_COMPRESSED_FLAG 0x8000 25#define PALM_IS_COMPRESSED_FLAG 0x8000
27#define PALM_HAS_COLORMAP_FLAG 0x4000 26#define PALM_HAS_COLORMAP_FLAG 0x4000
28#define PALM_HAS_TRANSPARENCY_FLAG 0x2000 27#define PALM_HAS_TRANSPARENCY_FLAG 0x2000
29#define PALM_DIRECT_COLOR_FLAG 0x0400 28#define PALM_DIRECT_COLOR_FLAG 0x0400
30#define PALM_4_BYTE_FIELD_FLAG 0x0200 29#define PALM_4_BYTE_FIELD_FLAG 0x0200
31 30
32#define PALM_COMPRESSION_SCANLINE 0x00 31#define PALM_COMPRESSION_SCANLINE 0x00
33#define PALM_COMPRESSION_RLE 0x01 32#define PALM_COMPRESSION_RLE 0x01
34#define PALM_COMPRESSION_PACKBITS 0x02 33#define PALM_COMPRESSION_PACKBITS 0x02
35#define PALM_COMPRESSION_NONE 0xFF 34#define PALM_COMPRESSION_NONE 0xFF
36 35
37#define PALM_COLORMAP_SIZE 232 36#define PALM_COLORMAP_SIZE 232
38 37
39typedef struct { 38typedef struct {
40 unsigned char red; 39 unsigned char red;
41 unsigned char green; 40 unsigned char green;
42 unsigned char blue; 41 unsigned char blue;
43} ColorMapEntry; 42} ColorMapEntry;
44 43
45static ColorMapEntry Palm8BitColormap[] = { 44static ColorMapEntry Palm8BitColormap[] = {
46 { 255, 255, 255 }, { 255, 204, 255 }, { 255, 153, 255 }, { 255, 102, 255 }, 45 { 255, 255, 255 }, { 255, 204, 255 }, { 255, 153, 255 }, { 255, 102, 255 },
47 { 255, 51, 255 }, { 255, 0, 255 }, { 255, 255, 204 }, { 255, 204, 204 }, 46 { 255, 51, 255 }, { 255, 0, 255 }, { 255, 255, 204 }, { 255, 204, 204 },
48 { 255, 153, 204 }, { 255, 102, 204 }, { 255, 51, 204 }, { 255, 0, 204 }, 47 { 255, 153, 204 }, { 255, 102, 204 }, { 255, 51, 204 }, { 255, 0, 204 },
49 { 255, 255, 153 }, { 255, 204, 153 }, { 255, 153, 153 }, { 255, 102, 153 }, 48 { 255, 255, 153 }, { 255, 204, 153 }, { 255, 153, 153 }, { 255, 102, 153 },
50 { 255, 51, 153 }, { 255, 0, 153 }, { 204, 255, 255 }, { 204, 204, 255 }, 49 { 255, 51, 153 }, { 255, 0, 153 }, { 204, 255, 255 }, { 204, 204, 255 },
51 { 204, 153, 255 }, { 204, 102, 255 }, { 204, 51, 255 }, { 204, 0, 255 }, 50 { 204, 153, 255 }, { 204, 102, 255 }, { 204, 51, 255 }, { 204, 0, 255 },
52 { 204, 255, 204 }, { 204, 204, 204 }, { 204, 153, 204 }, { 204, 102, 204 }, 51 { 204, 255, 204 }, { 204, 204, 204 }, { 204, 153, 204 }, { 204, 102, 204 },
53 { 204, 51, 204 }, { 204, 0, 204 }, { 204, 255, 153 }, { 204, 204, 153 }, 52 { 204, 51, 204 }, { 204, 0, 204 }, { 204, 255, 153 }, { 204, 204, 153 },
54 { 204, 153, 153 }, { 204, 102, 153 }, { 204, 51, 153 }, { 204, 0, 153 }, 53 { 204, 153, 153 }, { 204, 102, 153 }, { 204, 51, 153 }, { 204, 0, 153 },
55 { 153, 255, 255 }, { 153, 204, 255 }, { 153, 153, 255 }, { 153, 102, 255 }, 54 { 153, 255, 255 }, { 153, 204, 255 }, { 153, 153, 255 }, { 153, 102, 255 },
56 { 153, 51, 255 }, { 153, 0, 255 }, { 153, 255, 204 }, { 153, 204, 204 }, 55 { 153, 51, 255 }, { 153, 0, 255 }, { 153, 255, 204 }, { 153, 204, 204 },
57 { 153, 153, 204 }, { 153, 102, 204 }, { 153, 51, 204 }, { 153, 0, 204 }, 56 { 153, 153, 204 }, { 153, 102, 204 }, { 153, 51, 204 }, { 153, 0, 204 },
58 { 153, 255, 153 }, { 153, 204, 153 }, { 153, 153, 153 }, { 153, 102, 153 }, 57 { 153, 255, 153 }, { 153, 204, 153 }, { 153, 153, 153 }, { 153, 102, 153 },
59 { 153, 51, 153 }, { 153, 0, 153 }, { 102, 255, 255 }, { 102, 204, 255 }, 58 { 153, 51, 153 }, { 153, 0, 153 }, { 102, 255, 255 }, { 102, 204, 255 },
60 { 102, 153, 255 }, { 102, 102, 255 }, { 102, 51, 255 }, { 102, 0, 255 }, 59 { 102, 153, 255 }, { 102, 102, 255 }, { 102, 51, 255 }, { 102, 0, 255 },
61 { 102, 255, 204 }, { 102, 204, 204 }, { 102, 153, 204 }, { 102, 102, 204 }, 60 { 102, 255, 204 }, { 102, 204, 204 }, { 102, 153, 204 }, { 102, 102, 204 },
62 { 102, 51, 204 }, { 102, 0, 204 }, { 102, 255, 153 }, { 102, 204, 153 }, 61 { 102, 51, 204 }, { 102, 0, 204 }, { 102, 255, 153 }, { 102, 204, 153 },
63 { 102, 153, 153 }, { 102, 102, 153 }, { 102, 51, 153 }, { 102, 0, 153 }, 62 { 102, 153, 153 }, { 102, 102, 153 }, { 102, 51, 153 }, { 102, 0, 153 },
64 { 51, 255, 255 }, { 51, 204, 255 }, { 51, 153, 255 }, { 51, 102, 255 }, 63 { 51, 255, 255 }, { 51, 204, 255 }, { 51, 153, 255 }, { 51, 102, 255 },
65 { 51, 51, 255 }, { 51, 0, 255 }, { 51, 255, 204 }, { 51, 204, 204 }, 64 { 51, 51, 255 }, { 51, 0, 255 }, { 51, 255, 204 }, { 51, 204, 204 },
66 { 51, 153, 204 }, { 51, 102, 204 }, { 51, 51, 204 }, { 51, 0, 204 }, 65 { 51, 153, 204 }, { 51, 102, 204 }, { 51, 51, 204 }, { 51, 0, 204 },
67 { 51, 255, 153 }, { 51, 204, 153 }, { 51, 153, 153 }, { 51, 102, 153 }, 66 { 51, 255, 153 }, { 51, 204, 153 }, { 51, 153, 153 }, { 51, 102, 153 },
68 { 51, 51, 153 }, { 51, 0, 153 }, { 0, 255, 255 }, { 0, 204, 255 }, 67 { 51, 51, 153 }, { 51, 0, 153 }, { 0, 255, 255 }, { 0, 204, 255 },
69 { 0, 153, 255 }, { 0, 102, 255 }, { 0, 51, 255 }, { 0, 0, 255 }, 68 { 0, 153, 255 }, { 0, 102, 255 }, { 0, 51, 255 }, { 0, 0, 255 },
70 { 0, 255, 204 }, { 0, 204, 204 }, { 0, 153, 204 }, { 0, 102, 204 }, 69 { 0, 255, 204 }, { 0, 204, 204 }, { 0, 153, 204 }, { 0, 102, 204 },
71 { 0, 51, 204 }, { 0, 0, 204 }, { 0, 255, 153 }, { 0, 204, 153 }, 70 { 0, 51, 204 }, { 0, 0, 204 }, { 0, 255, 153 }, { 0, 204, 153 },
72 { 0, 153, 153 }, { 0, 102, 153 }, { 0, 51, 153 }, { 0, 0, 153 }, 71 { 0, 153, 153 }, { 0, 102, 153 }, { 0, 51, 153 }, { 0, 0, 153 },
73 { 255, 255, 102 }, { 255, 204, 102 }, { 255, 153, 102 }, { 255, 102, 102 }, 72 { 255, 255, 102 }, { 255, 204, 102 }, { 255, 153, 102 }, { 255, 102, 102 },
74 { 255, 51, 102 }, { 255, 0, 102 }, { 255, 255, 51 }, { 255, 204, 51 }, 73 { 255, 51, 102 }, { 255, 0, 102 }, { 255, 255, 51 }, { 255, 204, 51 },
75 { 255, 153, 51 }, { 255, 102, 51 }, { 255, 51, 51 }, { 255, 0, 51 }, 74 { 255, 153, 51 }, { 255, 102, 51 }, { 255, 51, 51 }, { 255, 0, 51 },
76 { 255, 255, 0 }, { 255, 204, 0 }, { 255, 153, 0 }, { 255, 102, 0 }, 75 { 255, 255, 0 }, { 255, 204, 0 }, { 255, 153, 0 }, { 255, 102, 0 },
77 { 255, 51, 0 }, { 255, 0, 0 }, { 204, 255, 102 }, { 204, 204, 102 }, 76 { 255, 51, 0 }, { 255, 0, 0 }, { 204, 255, 102 }, { 204, 204, 102 },
78 { 204, 153, 102 }, { 204, 102, 102 }, { 204, 51, 102 }, { 204, 0, 102 }, 77 { 204, 153, 102 }, { 204, 102, 102 }, { 204, 51, 102 }, { 204, 0, 102 },
79 { 204, 255, 51 }, { 204, 204, 51 }, { 204, 153, 51 }, { 204, 102, 51 }, 78 { 204, 255, 51 }, { 204, 204, 51 }, { 204, 153, 51 }, { 204, 102, 51 },
80 { 204, 51, 51 }, { 204, 0, 51 }, { 204, 255, 0 }, { 204, 204, 0 }, 79 { 204, 51, 51 }, { 204, 0, 51 }, { 204, 255, 0 }, { 204, 204, 0 },
81 { 204, 153, 0 }, { 204, 102, 0 }, { 204, 51, 0 }, { 204, 0, 0 }, 80 { 204, 153, 0 }, { 204, 102, 0 }, { 204, 51, 0 }, { 204, 0, 0 },
82 { 153, 255, 102 }, { 153, 204, 102 }, { 153, 153, 102 }, { 153, 102, 102 }, 81 { 153, 255, 102 }, { 153, 204, 102 }, { 153, 153, 102 }, { 153, 102, 102 },
83 { 153, 51, 102 }, { 153, 0, 102 }, { 153, 255, 51 }, { 153, 204, 51 }, 82 { 153, 51, 102 }, { 153, 0, 102 }, { 153, 255, 51 }, { 153, 204, 51 },
84 { 153, 153, 51 }, { 153, 102, 51 }, { 153, 51, 51 }, { 153, 0, 51 }, 83 { 153, 153, 51 }, { 153, 102, 51 }, { 153, 51, 51 }, { 153, 0, 51 },
85 { 153, 255, 0 }, { 153, 204, 0 }, { 153, 153, 0 }, { 153, 102, 0 }, 84 { 153, 255, 0 }, { 153, 204, 0 }, { 153, 153, 0 }, { 153, 102, 0 },
86 { 153, 51, 0 }, { 153, 0, 0 }, { 102, 255, 102 }, { 102, 204, 102 }, 85 { 153, 51, 0 }, { 153, 0, 0 }, { 102, 255, 102 }, { 102, 204, 102 },
87 { 102, 153, 102 }, { 102, 102, 102 }, { 102, 51, 102 }, { 102, 0, 102 }, 86 { 102, 153, 102 }, { 102, 102, 102 }, { 102, 51, 102 }, { 102, 0, 102 },
88 { 102, 255, 51 }, { 102, 204, 51 }, { 102, 153, 51 }, { 102, 102, 51 }, 87 { 102, 255, 51 }, { 102, 204, 51 }, { 102, 153, 51 }, { 102, 102, 51 },
89 { 102, 51, 51 }, { 102, 0, 51 }, { 102, 255, 0 }, { 102, 204, 0 }, 88 { 102, 51, 51 }, { 102, 0, 51 }, { 102, 255, 0 }, { 102, 204, 0 },
90 { 102, 153, 0 }, { 102, 102, 0 }, { 102, 51, 0 }, { 102, 0, 0 }, 89 { 102, 153, 0 }, { 102, 102, 0 }, { 102, 51, 0 }, { 102, 0, 0 },
91 { 51, 255, 102 }, { 51, 204, 102 }, { 51, 153, 102 }, { 51, 102, 102 }, 90 { 51, 255, 102 }, { 51, 204, 102 }, { 51, 153, 102 }, { 51, 102, 102 },
92 { 51, 51, 102 }, { 51, 0, 102 }, { 51, 255, 51 }, { 51, 204, 51 }, 91 { 51, 51, 102 }, { 51, 0, 102 }, { 51, 255, 51 }, { 51, 204, 51 },
93 { 51, 153, 51 }, { 51, 102, 51 }, { 51, 51, 51 }, { 51, 0, 51 }, 92 { 51, 153, 51 }, { 51, 102, 51 }, { 51, 51, 51 }, { 51, 0, 51 },
94 { 51, 255, 0 }, { 51, 204, 0 }, { 51, 153, 0 }, { 51, 102, 0 }, 93 { 51, 255, 0 }, { 51, 204, 0 }, { 51, 153, 0 }, { 51, 102, 0 },
95 { 51, 51, 0 }, { 51, 0, 0 }, { 0, 255, 102 }, { 0, 204, 102 }, 94 { 51, 51, 0 }, { 51, 0, 0 }, { 0, 255, 102 }, { 0, 204, 102 },
96 { 0, 153, 102 }, { 0, 102, 102 }, { 0, 51, 102 }, { 0, 0, 102 }, 95 { 0, 153, 102 }, { 0, 102, 102 }, { 0, 51, 102 }, { 0, 0, 102 },
97 { 0, 255, 51 }, { 0, 204, 51 }, { 0, 153, 51 }, { 0, 102, 51 }, 96 { 0, 255, 51 }, { 0, 204, 51 }, { 0, 153, 51 }, { 0, 102, 51 },
98 { 0, 51, 51 }, { 0, 0, 51 }, { 0, 255, 0 }, { 0, 204, 0 }, 97 { 0, 51, 51 }, { 0, 0, 51 }, { 0, 255, 0 }, { 0, 204, 0 },
diff --git a/noncore/apps/opie-reader/Prefs.cpp b/noncore/apps/opie-reader/Prefs.cpp
index 5150ca5..72eefba 100644
--- a/noncore/apps/opie-reader/Prefs.cpp
+++ b/noncore/apps/opie-reader/Prefs.cpp
@@ -1,118 +1,109 @@
1/**************************************************************************** 1/****************************************************************************
2** Form implementation generated from reading ui file 'Prefs.ui' 2** Form implementation generated from reading ui file 'Prefs.ui'
3** 3**
4** Created: Tue Feb 11 23:53:35 2003 4** Created: Tue Feb 11 23:53:35 2003
5** by: The User Interface Compiler (uic) 5** by: The User Interface Compiler (uic)
6** 6**
7** WARNING! All changes made in this file will be lost! 7** WARNING! All changes made in this file will be lost!
8****************************************************************************/ 8****************************************************************************/
9#include "useqpe.h"
10#include "Prefs.h" 9#include "Prefs.h"
11 10
12#include <qcheckbox.h>
13#include <qlabel.h> 11#include <qlabel.h>
14#include <qpushbutton.h>
15#include <qspinbox.h>
16#include <qlayout.h> 12#include <qlayout.h>
17#include <qvariant.h>
18#include <qtooltip.h>
19#include <qwhatsthis.h>
20#include <qcombobox.h>
21#include <qbuttongroup.h> 13#include <qbuttongroup.h>
22#include <qlineedit.h>
23#ifdef USEQPE 14#ifdef USEQPE
24#include <qpe/menubutton.h> 15#include <qpe/menubutton.h>
25#include <qpe/fontdatabase.h> 16#include <qpe/fontdatabase.h>
26#else 17#else
27#include <qfontdatabase.h> 18#include <qfontdatabase.h>
28#endif 19#endif
29 20
30#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
31 22
32CLayoutPrefs::CLayoutPrefs( QWidget* parent, const char* name, WFlags fl ) 23CLayoutPrefs::CLayoutPrefs( QWidget* parent, const char* name, WFlags fl )
33 : QWidget( parent, name, fl ) 24 : QWidget( parent, name, fl )
34{ 25{
35 QHBoxLayout* hb = new QHBoxLayout(this); 26 QHBoxLayout* hb = new QHBoxLayout(this);
36 QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, tr("Text"), this); 27 QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, tr("Text"), this);
37 hb->addWidget(bg); 28 hb->addWidget(bg);
38 29
39 StripCR = new QCheckBox( bg ); 30 StripCR = new QCheckBox( bg );
40 StripCR->setText( tr( "Strip CR" ) ); 31 StripCR->setText( tr( "Strip CR" ) );
41 32
42 Dehyphen = new QCheckBox( bg ); 33 Dehyphen = new QCheckBox( bg );
43 Dehyphen->setText( tr( "Dehyphen" ) ); 34 Dehyphen->setText( tr( "Dehyphen" ) );
44 35
45 SingleSpace = new QCheckBox( bg ); 36 SingleSpace = new QCheckBox( bg );
46 SingleSpace->setText( tr( "Single Space" ) ); 37 SingleSpace->setText( tr( "Single Space" ) );
47 38
48 Unindent = new QCheckBox( bg ); 39 Unindent = new QCheckBox( bg );
49 Unindent->setText( tr( "Unindent" ) ); 40 Unindent->setText( tr( "Unindent" ) );
50 41
51 Reparagraph = new QCheckBox( bg ); 42 Reparagraph = new QCheckBox( bg );
52 Reparagraph->setText( tr( "Reparagraph" ) ); 43 Reparagraph->setText( tr( "Reparagraph" ) );
53 44
54 DoubleSpace = new QCheckBox( bg ); 45 DoubleSpace = new QCheckBox( bg );
55 DoubleSpace->setText( tr( "Double Space" ) ); 46 DoubleSpace->setText( tr( "Double Space" ) );
56 47
57 Remap = new QCheckBox( bg ); 48 Remap = new QCheckBox( bg );
58 Remap->setText( tr( "Remap" ) ); 49 Remap->setText( tr( "Remap" ) );
59 50
60 Embolden = new QCheckBox( bg ); 51 Embolden = new QCheckBox( bg );
61 Embolden->setText( tr( "Embolden" ) ); 52 Embolden->setText( tr( "Embolden" ) );
62 53
63 FullJustify = new QCheckBox( bg ); 54 FullJustify = new QCheckBox( bg );
64 FullJustify->setText( tr( "Full Justify" ) ); 55 FullJustify->setText( tr( "Full Justify" ) );
65 56
66} 57}
67 58
68/* 59/*
69 * Destroys the object and frees any allocated resources 60 * Destroys the object and frees any allocated resources
70 */ 61 */
71CLayoutPrefs::~CLayoutPrefs() 62CLayoutPrefs::~CLayoutPrefs()
72{ 63{
73 // no need to delete child widgets, Qt does it all for us 64 // no need to delete child widgets, Qt does it all for us
74} 65}
75 66
76 67
77 68
78CLayoutPrefs2::CLayoutPrefs2( QWidget* parent, const char* name, WFlags fl ) 69CLayoutPrefs2::CLayoutPrefs2( QWidget* parent, const char* name, WFlags fl )
79 : QWidget( parent, name, fl ) 70 : QWidget( parent, name, fl )
80{ 71{
81 72
82 QVBoxLayout* vb = new QVBoxLayout(this); 73 QVBoxLayout* vb = new QVBoxLayout(this);
83 QGridLayout* gl = new QGridLayout(vb, 4, 3); 74 QGridLayout* gl = new QGridLayout(vb, 4, 3);
84 75
85 QLabel *TextLabel; 76 QLabel *TextLabel;
86 77
87 TextLabel = new QLabel( this, "TextLabel1" ); 78 TextLabel = new QLabel( this, "TextLabel1" );
88 TextLabel->setText( tr( "Indent" ) ); 79 TextLabel->setText( tr( "Indent" ) );
89 gl->addWidget(TextLabel, 0, 0); 80 gl->addWidget(TextLabel, 0, 0);
90 81
91 82
92 TextLabel = new QLabel( this ); 83 TextLabel = new QLabel( this );
93 TextLabel->setText( tr( "Page\nOverlap" ) ); 84 TextLabel->setText( tr( "Page\nOverlap" ) );
94 gl->addWidget(TextLabel, 0, 1); 85 gl->addWidget(TextLabel, 0, 1);
95 86
96 TextLabel = new QLabel( this ); 87 TextLabel = new QLabel( this );
97 TextLabel->setText( tr( "Graphics\nZoom" ) ); 88 TextLabel->setText( tr( "Graphics\nZoom" ) );
98 gl->addWidget(TextLabel, 0, 2); 89 gl->addWidget(TextLabel, 0, 2);
99 90
100 Indent = new QSpinBox( this, "Indent" ); 91 Indent = new QSpinBox( this, "Indent" );
101 Indent->setRange(0,20); 92 Indent->setRange(0,20);
102 gl->addWidget(Indent, 1, 0); 93 gl->addWidget(Indent, 1, 0);
103 94
104 pageoverlap = new QSpinBox( this ); 95 pageoverlap = new QSpinBox( this );
105 pageoverlap->setRange(0,20); 96 pageoverlap->setRange(0,20);
106 gl->addWidget(pageoverlap, 1, 1); 97 gl->addWidget(pageoverlap, 1, 1);
107 98
108 gfxzoom = new QSpinBox( this ); 99 gfxzoom = new QSpinBox( this );
109 gfxzoom->setRange(0,100); 100 gfxzoom->setRange(0,100);
110 gl->addWidget(gfxzoom, 1, 2); 101 gl->addWidget(gfxzoom, 1, 2);
111 102
112 TextLabel = new QLabel( this, "TextLabel4" ); 103 TextLabel = new QLabel( this, "TextLabel4" );
113 TextLabel->setText( tr( "Margin" ) ); 104 TextLabel->setText( tr( "Margin" ) );
114 gl->addWidget(TextLabel, 2, 0); 105 gl->addWidget(TextLabel, 2, 0);
115 106
116 TextLabel = new QLabel( this ); 107 TextLabel = new QLabel( this );
117 TextLabel->setText( tr( "Paragraph\nLeading" ) ); 108 TextLabel->setText( tr( "Paragraph\nLeading" ) );
118 gl->addWidget(TextLabel, 2, 1); 109 gl->addWidget(TextLabel, 2, 1);
diff --git a/noncore/apps/opie-reader/QTReader.cpp b/noncore/apps/opie-reader/QTReader.cpp
index 03c8fbe..d64abb4 100644
--- a/noncore/apps/opie-reader/QTReader.cpp
+++ b/noncore/apps/opie-reader/QTReader.cpp
@@ -1,127 +1,120 @@
1/**************************************************************************** 1/****************************************************************************
2** $Id$ 2** $Id$
3** 3**
4** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. 4** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
5** 5**
6** This file is part of an example program for Qt. This example 6** This file is part of an example program for Qt. This example
7** program may be used, distributed and modified without limitation. 7** program may be used, distributed and modified without limitation.
8** 8**
9*****************************************************************************/ 9*****************************************************************************/
10 10
11#include "useqpe.h"
12#include <qpainter.h>
13#include <qimage.h>
14#include <qtimer.h>
15#include "config.h"
16#include "QTReader.h" 11#include "QTReader.h"
17#include "QTReaderApp.h" 12#include "QTReaderApp.h"
18#include "CDrawBuffer.h"
19#ifdef USEQPE 13#ifdef USEQPE
20#include <qpe/qpeapplication.h> 14#include <qpe/qpeapplication.h>
21#endif 15#endif
22#include <math.h> 16#include <math.h>
23#include <ctype.h> 17#include <ctype.h>
24#include <stdio.h> //for sprintf 18#include <stdio.h> //for sprintf
25#ifdef USEQPE 19#ifdef USEQPE
26#include <qpe/config.h> 20#include <qpe/config.h>
27#include <qpe/applnk.h> 21#include <qpe/applnk.h>
28#include <qpe/global.h> 22#include <qpe/global.h>
29#include <qpe/qcopenvelope_qws.h> 23#include <qpe/qcopenvelope_qws.h>
30#endif 24#endif
31#include <qfontdatabase.h>
32 25
33#ifdef _UNICODE 26#ifdef _UNICODE
34const char *QTReader::fonts[] = { "unifont", "Courier", "Times", 0 }; 27const char *QTReader::fonts[] = { "unifont", "Courier", "Times", 0 };
35#else 28#else
36const char *QTReader::fonts[] = { "Helvetica", "Courier", "Times", 0 }; 29const char *QTReader::fonts[] = { "Helvetica", "Courier", "Times", 0 };
37#endif 30#endif
38//const int QTReader::fontsizes[] = { 8, 10, 12, 14, 18, 24, 30, 40, 50, 60, 70, 80, 90, 100, 0 }; 31//const int QTReader::fontsizes[] = { 8, 10, 12, 14, 18, 24, 30, 40, 50, 60, 70, 80, 90, 100, 0 };
39 32
40//const tchar *QTReader::fonts[] = { "unifont", "fixed", "micro", "smoothtimes", "Courier", "Times", 0 }; 33//const tchar *QTReader::fonts[] = { "unifont", "fixed", "micro", "smoothtimes", "Courier", "Times", 0 };
41//const int QTReader::fontsizes[] = {10,16,17,22,0}; 34//const int QTReader::fontsizes[] = {10,16,17,22,0};
42//const tchar *QTReader::fonts[] = { "verdana", "Courier", "Times", 0 }; 35//const tchar *QTReader::fonts[] = { "verdana", "Courier", "Times", 0 };
43//const int QTReader::fontsizes[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,0}; 36//const int QTReader::fontsizes[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,0};
44 37
45tchar QTReader::pluckernextpart[] = { 'C','l','i','c','k',' ','h','e','r','e',' ','f','o','r',' ','t','h','e',' ','n','e','x','t',' ','p','a','r','t',0 }; 38tchar QTReader::pluckernextpart[] = { 'C','l','i','c','k',' ','h','e','r','e',' ','f','o','r',' ','t','h','e',' ','n','e','x','t',' ','p','a','r','t',0 };
46tchar QTReader::jplucknextpart[] = { 'N','e','x','t',' ','P','a','r','t',' ','>','>',0 }; 39tchar QTReader::jplucknextpart[] = { 'N','e','x','t',' ','P','a','r','t',' ','>','>',0 };
47//tchar QTReader::jplucknextpart[] = { 10,'#',10,'N','e','x','t',' ','P','a','r','t',' ','>','>',0 }; 40//tchar QTReader::jplucknextpart[] = { 10,'#',10,'N','e','x','t',' ','P','a','r','t',' ','>','>',0 };
48 41
49QTReader::QTReader( QWidget *parent, const char *name, WFlags f) : 42QTReader::QTReader( QWidget *parent, const char *name, WFlags f) :
50 QWidget(parent, name, f), 43 QWidget(parent, name, f),
51 m_delay(100), 44 m_delay(100),
52 m_scrolldy1(0), 45 m_scrolldy1(0),
53 m_scrolldy2(0), 46 m_scrolldy2(0),
54 m_autoScroll(false), 47 m_autoScroll(false),
55 //textarray(NULL), 48 //textarray(NULL),
56 //locnarray(NULL), 49 //locnarray(NULL),
57 numlines(0), 50 numlines(0),
58 m_fontname("unifont"), 51 m_fontname("unifont"),
59 m_fm(NULL), 52 m_fm(NULL),
60 mouseUpOn(true), 53 mouseUpOn(true),
61 m_twotouch(true), 54 m_twotouch(true),
62 m_touchone(true), 55 m_touchone(true),
63 bDoUpdates(false), 56 bDoUpdates(false),
64#ifdef _SCROLLPIPE 57#ifdef _SCROLLPIPE
65 m_pipeout(NULL), 58 m_pipeout(NULL),
66#endif 59#endif
67 m_border(2) 60 m_border(2)
68{ 61{
69 m_overlap = 1; 62 m_overlap = 1;
70 setKeyCompression ( true ); 63 setKeyCompression ( true );
71// init(); 64// init();
72} 65}
73 66
74/* 67/*
75QTReader::QTReader( const QString& filename, QWidget *parent=0, const tchar *name=0, WFlags f = 0) : 68QTReader::QTReader( const QString& filename, QWidget *parent=0, const tchar *name=0, WFlags f = 0) :
76 QWidget(parent, name, f), 69 QWidget(parent, name, f),
77 m_textfont(0), 70 m_textfont(0),
78 m_textsize(1), 71 m_textsize(1),
79 textarray(NULL), 72 textarray(NULL),
80 numlines(0), 73 numlines(0),
81 bstripcr(true), 74 bstripcr(true),
82 bunindent(false), 75 bunindent(false),
83 brepara(false), 76 brepara(false),
84 bdblspce(false), 77 bdblspce(false),
85 btight(false), 78 btight(false),
86 bindenter(0), 79 bindenter(0),
87 m_fm(NULL) 80 m_fm(NULL)
88{ 81{
89 init(); 82 init();
90// // qDebug("Load_file(1)"); 83// // qDebug("Load_file(1)");
91 load_file((const tchar*)filename); 84 load_file((const tchar*)filename);
92} 85}
93*/ 86*/
94 87
95/* 88/*
96void QTReader::mouseMoveEvent(QMouseEvent* _e) 89void QTReader::mouseMoveEvent(QMouseEvent* _e)
97{ 90{
98 91
99 mouseUpOn = !(_e->pos().x() == -1); 92 mouseUpOn = !(_e->pos().x() == -1);
100 93
101 qDebug("MouseMove:[%d, %d]", _e->pos().x(), _e->pos().y()); 94 qDebug("MouseMove:[%d, %d]", _e->pos().x(), _e->pos().y());
102} 95}
103*/ 96*/
104long QTReader::real_delay() 97long QTReader::real_delay()
105{ 98{
106 return ( 8976 + m_delay ) / ( m_linespacing * m_linespacing ); 99 return ( 8976 + m_delay ) / ( m_linespacing * m_linespacing );
107} 100}
108 101
109void QTReader::mousePressEvent( QMouseEvent* _e ) 102void QTReader::mousePressEvent( QMouseEvent* _e )
110{ 103{
111 buffdoc.unsuspend(); 104 buffdoc.unsuspend();
112 if (_e->button() == RightButton) 105 if (_e->button() == RightButton)
113 { 106 {
114 //qDebug("MousePress"); 107 //qDebug("MousePress");
115 mouseUpOn = false; 108 mouseUpOn = false;
116 if (m_swapmouse) 109 if (m_swapmouse)
117 { 110 {
118 int lineno = 0; 111 int lineno = 0;
119 int ht = textarray[0]->lineSpacing(); 112 int ht = textarray[0]->lineSpacing();
120 while ((ht < _e->y()) && (lineno < numlines)) 113 while ((ht < _e->y()) && (lineno < numlines))
121 { 114 {
122 ht += textarray[++lineno]->lineSpacing(); 115 ht += textarray[++lineno]->lineSpacing();
123 } 116 }
124 size_t startpos, startoffset, tgt; 117 size_t startpos, startoffset, tgt;
125 getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt); 118 getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt);
126 processmousewordevent(startpos, startoffset, _e, lineno); 119 processmousewordevent(startpos, startoffset, _e, lineno);
127 } 120 }
@@ -355,194 +348,192 @@ void QTReader::mouseReleaseEvent( QMouseEvent* _e )
355 if (textarray[0] != NULL) 348 if (textarray[0] != NULL)
356 { 349 {
357 QString line; 350 QString line;
358 // int lineno = _e->y()/m_linespacing; 351 // int lineno = _e->y()/m_linespacing;
359 int lineno = 0; 352 int lineno = 0;
360 int ht = textarray[0]->lineSpacing(); 353 int ht = textarray[0]->lineSpacing();
361 while ((ht < _e->y()) && (lineno < numlines)) 354 while ((ht < _e->y()) && (lineno < numlines))
362 { 355 {
363 ht += textarray[++lineno]->lineSpacing(); 356 ht += textarray[++lineno]->lineSpacing();
364 } 357 }
365 size_t startpos, startoffset, tgt; 358 size_t startpos, startoffset, tgt;
366 switch (getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt)) 359 switch (getcurrentpos(_e->x(), _e->y(), startpos, startoffset, tgt))
367 { 360 {
368 case eLink: 361 case eLink:
369 { 362 {
370 size_t saveposn = pagelocate(); 363 size_t saveposn = pagelocate();
371 QString href; 364 QString href;
372 linkType lt = buffdoc.hyperlink(tgt, href); 365 linkType lt = buffdoc.hyperlink(tgt, href);
373 if (lt == eLink) 366 if (lt == eLink)
374 { 367 {
375 buffdoc.saveposn(saveposn); 368 buffdoc.saveposn(saveposn);
376 fillbuffer(); 369 fillbuffer();
377 update(); 370 update();
378 } 371 }
379 else 372 else
380 { 373 {
381 if (lt == ePicture) 374 if (lt == ePicture)
382 { 375 {
383 QImage* pm = buffdoc.getPicture(tgt); 376 QImage* pm = buffdoc.getPicture(tgt);
384 if (pm != NULL) 377 if (pm != NULL)
385 { 378 {
386 emit OnShowPicture(*pm); 379 emit OnShowPicture(*pm);
387 delete pm; 380 delete pm;
388 } 381 }
389 } 382 }
390 else 383 else
391 { 384 {
392 // QString anchortext = textarray[lineno]->getanchortext(startoffset); 385 // QString anchortext = textarray[lineno]->getanchortext(startoffset);
393 if (!href.isEmpty()) 386 if (!href.isEmpty())
394 { 387 {
395 emit OnURLSelected(href); 388 emit OnURLSelected(href);
396 } 389 }
397 } 390 }
398 locate(pagelocate()); 391 locate(pagelocate());
399 } 392 }
400 return; 393 return;
401 } 394 }
402 case ePicture: 395 case ePicture:
403 { 396 {
404 // qDebug("Picture:%x", tgt); 397 // qDebug("Picture:%x", tgt);
405 QImage* pm = buffdoc.getPicture(tgt); 398 QImage* pm = buffdoc.getPicture(tgt);
406 if (pm != NULL) 399 if (pm != NULL)
407 { 400 {
408 emit OnShowPicture(*pm); 401 emit OnShowPicture(*pm);
409 delete pm; 402 delete pm;
410 } 403 }
411 else 404 else
412 { 405 {
413 locate(pagelocate()); 406 locate(pagelocate());
414 } 407 }
415 return; 408 return;
416 } 409 }
417 case eNone: 410 case eNone:
418 break; 411 break;
419 default: 412 default:
420 // qDebug("Unknown linktype"); 413 // qDebug("Unknown linktype");
421 return; 414 return;
422 } 415 }
423 if (m_swapmouse) 416 if (m_swapmouse)
424 processmousepositionevent(_e); 417 processmousepositionevent(_e);
425 else 418 else
426 processmousewordevent(startpos, startoffset, _e, lineno); 419 processmousewordevent(startpos, startoffset, _e, lineno);
427 } 420 }
428 } 421 }
429 else 422 else
430 { 423 {
431 mouseUpOn = true; 424 mouseUpOn = true;
432 } 425 }
433 } 426 }
434} 427}
435 428
436void QTReader::focusInEvent(QFocusEvent* e) 429void QTReader::focusInEvent(QFocusEvent* e)
437{ 430{
438 if (m_autoScroll) timer->start(real_delay(), false); 431 if (m_autoScroll) timer->start(real_delay(), false);
439 update(); 432 update();
440} 433}
441 434
442void QTReader::focusOutEvent(QFocusEvent* e) 435void QTReader::focusOutEvent(QFocusEvent* e)
443{ 436{
444 if (m_autoScroll) 437 if (m_autoScroll)
445 { 438 {
446 timer->stop(); 439 timer->stop();
447 //m_scrolldy1 = m_scrolldy2 = 0; 440 //m_scrolldy1 = m_scrolldy2 = 0;
448 } 441 }
449} 442}
450 443
451#include <qapplication.h>
452#include <qdrawutil.h>
453#ifndef _WINDOWS 444#ifndef _WINDOWS
454#include <unistd.h> 445#include <unistd.h>
455#endif 446#endif
456 447
457void QTReader::goDown() 448void QTReader::goDown()
458{ 449{
459 if (m_bpagemode) 450 if (m_bpagemode)
460 { 451 {
461 dopagedn(); 452 dopagedn();
462 } 453 }
463 else 454 else
464 { 455 {
465 lineDown(); 456 lineDown();
466 } 457 }
467} 458}
468 459
469void QTReader::goUp() 460void QTReader::goUp()
470{ 461{
471 if (m_bpagemode) 462 if (m_bpagemode)
472 { 463 {
473 dopageup(); 464 dopageup();
474 } 465 }
475 else 466 else
476 { 467 {
477 lineUp(); 468 lineUp();
478 } 469 }
479} 470}
480 471
481void QTReader::NavUp() 472void QTReader::NavUp()
482{ 473{
483 buffdoc.unsuspend(); 474 buffdoc.unsuspend();
484 if (buffdoc.hasnavigation()) 475 if (buffdoc.hasnavigation())
485 { 476 {
486/* 477/*
487 size_t target = pagelocate(); 478 size_t target = pagelocate();
488 if (buffdoc.back(target)) 479 if (buffdoc.back(target))
489 { 480 {
490 locate(target); 481 locate(target);
491 } 482 }
492*/ 483*/
493 locate(buffdoc.startSection()); 484 locate(buffdoc.startSection());
494 } 485 }
495 else 486 else
496 { 487 {
497 goUp(); 488 goUp();
498 } 489 }
499} 490}
500 491
501void QTReader::NavDown() 492void QTReader::NavDown()
502{ 493{
503 buffdoc.unsuspend(); 494 buffdoc.unsuspend();
504 if (buffdoc.hasnavigation()) 495 if (buffdoc.hasnavigation())
505 { 496 {
506/* 497/*
507 size_t target = pagelocate(); 498 size_t target = pagelocate();
508 if (buffdoc.forward(target)) 499 if (buffdoc.forward(target))
509 { 500 {
510 locate(target); 501 locate(target);
511 } 502 }
512*/ 503*/
513 dopageup(buffdoc.endSection()); 504 dopageup(buffdoc.endSection());
514 } 505 }
515 else 506 else
516 { 507 {
517 goDown(); 508 goDown();
518 } 509 }
519} 510}
520 511
521void QTReader::zoomin() 512void QTReader::zoomin()
522{ 513{
523 if (m_fontControl.increasesize()) 514 if (m_fontControl.increasesize())
524 { 515 {
525 bool sc = m_autoScroll; 516 bool sc = m_autoScroll;
526 setfont(); 517 setfont();
527 m_autoScroll = false; 518 m_autoScroll = false;
528 locate(pagelocate()); 519 locate(pagelocate());
529 update(); 520 update();
530 m_autoScroll = sc; 521 m_autoScroll = sc;
531 if (m_autoScroll) autoscroll(); 522 if (m_autoScroll) autoscroll();
532 } 523 }
533} 524}
534 525
535void QTReader::zoomout() 526void QTReader::zoomout()
536{ 527{
537 if (m_fontControl.decreasesize()) 528 if (m_fontControl.decreasesize())
538 { 529 {
539 bool sc = m_autoScroll; 530 bool sc = m_autoScroll;
540 m_autoScroll = false; 531 m_autoScroll = false;
541 setfont(); 532 setfont();
542 locate(pagelocate()); 533 locate(pagelocate());
543 update(); 534 update();
544 m_autoScroll = sc; 535 m_autoScroll = sc;
545 if (m_autoScroll) autoscroll(); 536 if (m_autoScroll) autoscroll();
546 } 537 }
547} 538}
548 539
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}
diff --git a/noncore/apps/opie-reader/ToolbarPrefs.cpp b/noncore/apps/opie-reader/ToolbarPrefs.cpp
index d878829..0347736 100644
--- a/noncore/apps/opie-reader/ToolbarPrefs.cpp
+++ b/noncore/apps/opie-reader/ToolbarPrefs.cpp
@@ -1,118 +1,108 @@
1/**************************************************************************** 1/****************************************************************************
2** Form implementation generated from reading ui file 'Prefs.ui' 2** Form implementation generated from reading ui file 'Prefs.ui'
3** 3**
4** Created: Tue Feb 11 23:53:35 2003 4** Created: Tue Feb 11 23:53:35 2003
5** by: The User Interface Compiler (uic) 5** by: The User Interface Compiler (uic)
6** 6**
7** WARNING! All changes made in this file will be lost! 7** WARNING! All changes made in this file will be lost!
8****************************************************************************/ 8****************************************************************************/
9#include "useqpe.h"
10#include "ToolbarPrefs.h" 9#include "ToolbarPrefs.h"
11 10
12#include <qcheckbox.h>
13#include <qlabel.h>
14#include <qpushbutton.h>
15#include <qspinbox.h>
16#include <qlayout.h> 11#include <qlayout.h>
17#include <qvariant.h>
18#include <qtooltip.h>
19#include <qwhatsthis.h>
20#include <qcombobox.h>
21#include <qbuttongroup.h> 12#include <qbuttongroup.h>
22#include <qlineedit.h>
23#ifdef USEQPE 13#ifdef USEQPE
24#include <qpe/menubutton.h> 14#include <qpe/menubutton.h>
25#endif 15#endif
26#include <qpe/qpeapplication.h> 16#include <qpe/qpeapplication.h>
27 17
28CBarPrefs::CBarPrefs(const QString& appdir, bool fs, QWidget* parent, const char* name) : QDialog(parent, name, true), config( appdir ) 18CBarPrefs::CBarPrefs(const QString& appdir, bool fs, QWidget* parent, const char* name) : QDialog(parent, name, true), config( appdir )
29{ 19{
30 setCaption(tr( "Toolbar Settings" ) ); 20 setCaption(tr( "Toolbar Settings" ) );
31 QTabWidget* td = new QTabWidget(this); 21 QTabWidget* td = new QTabWidget(this);
32 misc = new CMiscBarPrefs(this); 22 misc = new CMiscBarPrefs(this);
33 filebar = new CFileBarPrefs(config, this); 23 filebar = new CFileBarPrefs(config, this);
34 navbar = new CNavBarPrefs(config, this); 24 navbar = new CNavBarPrefs(config, this);
35 viewbar = new CViewBarPrefs(config, this); 25 viewbar = new CViewBarPrefs(config, this);
36 markbar = new CMarkBarPrefs(config, this); 26 markbar = new CMarkBarPrefs(config, this);
37 indbar = new CIndBarPrefs(config, this); 27 indbar = new CIndBarPrefs(config, this);
38 td->addTab(filebar, tr("File")); 28 td->addTab(filebar, tr("File"));
39 td->addTab(navbar, tr("Navigation")); 29 td->addTab(navbar, tr("Navigation"));
40 td->addTab(viewbar, tr("View")); 30 td->addTab(viewbar, tr("View"));
41 td->addTab(markbar, tr("Marks")); 31 td->addTab(markbar, tr("Marks"));
42 td->addTab(indbar, tr("Indicators")); 32 td->addTab(indbar, tr("Indicators"));
43 td->addTab(misc, tr("Policy")); 33 td->addTab(misc, tr("Policy"));
44 QVBoxLayout* v = new QVBoxLayout(this); 34 QVBoxLayout* v = new QVBoxLayout(this);
45 v->addWidget(td); 35 v->addWidget(td);
46 36
47 if (fs) 37 if (fs)
48 QPEApplication::showDialog( this ); 38 QPEApplication::showDialog( this );
49} 39}
50 40
51/* 41/*
52CBarPrefs1::CBarPrefs1( Config& _config, QWidget* parent, const char* name, WFlags fl ) 42CBarPrefs1::CBarPrefs1( Config& _config, QWidget* parent, const char* name, WFlags fl )
53 : QWidget( parent, name, fl ), config(_config) 43 : QWidget( parent, name, fl ), config(_config)
54{ 44{
55 config.setGroup( "Toolbar" ); 45 config.setGroup( "Toolbar" );
56 QVBoxLayout* vb = new QVBoxLayout(this); 46 QVBoxLayout* vb = new QVBoxLayout(this);
57 47
58 QGroupBox* bg = new QGroupBox(3, Qt::Horizontal, "File", this); 48 QGroupBox* bg = new QGroupBox(3, Qt::Horizontal, "File", this);
59 vb->addWidget(bg); 49 vb->addWidget(bg);
60 50
61 open = new QCheckBox( tr("Open"), bg ); 51 open = new QCheckBox( tr("Open"), bg );
62 open->setChecked(config.readBoolEntry( "Open", false )); 52 open->setChecked(config.readBoolEntry( "Open", false ));
63 connect(open, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 53 connect(open, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
64 close = new QCheckBox( tr("Close"), bg ); 54 close = new QCheckBox( tr("Close"), bg );
65 close->setChecked(config.readBoolEntry( "Close", false )); 55 close->setChecked(config.readBoolEntry( "Close", false ));
66 connect(close, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 56 connect(close, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
67 info = new QCheckBox( tr("Info"), bg ); 57 info = new QCheckBox( tr("Info"), bg );
68 info->setChecked(config.readBoolEntry( "Info", false )); 58 info->setChecked(config.readBoolEntry( "Info", false ));
69 connect(info, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 59 connect(info, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
70 twotouch = new QCheckBox( tr("Two/One\nTouch"), bg ); 60 twotouch = new QCheckBox( tr("Two/One\nTouch"), bg );
71 twotouch->setChecked(config.readBoolEntry( "Two/One Touch", false )); 61 twotouch->setChecked(config.readBoolEntry( "Two/One Touch", false ));
72 connect(twotouch, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 62 connect(twotouch, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
73 find = new QCheckBox( tr("Find"), bg ); 63 find = new QCheckBox( tr("Find"), bg );
74 find->setChecked(config.readBoolEntry( "Find", false )); 64 find->setChecked(config.readBoolEntry( "Find", false ));
75 connect(find, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 65 connect(find, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
76 66
77 bg = new QGroupBox(2, Qt::Horizontal, "Navigation", this); 67 bg = new QGroupBox(2, Qt::Horizontal, "Navigation", this);
78 vb->addWidget(bg); 68 vb->addWidget(bg);
79 scroll = new QCheckBox( tr("Scroll"), bg ); 69 scroll = new QCheckBox( tr("Scroll"), bg );
80 scroll->setChecked(config.readBoolEntry( "Scroll", false )); 70 scroll->setChecked(config.readBoolEntry( "Scroll", false ));
81 connect(scroll, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 71 connect(scroll, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
82 navigation = new QCheckBox( tr("Back/Home/Forward"), bg ); 72 navigation = new QCheckBox( tr("Back/Home/Forward"), bg );
83 navigation->setChecked(config.readBoolEntry( "Back/Home/Forward", false )); 73 navigation->setChecked(config.readBoolEntry( "Back/Home/Forward", false ));
84 connect(navigation, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 74 connect(navigation, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
85 page = new QCheckBox( tr("Page\nUp/Down"), bg ); 75 page = new QCheckBox( tr("Page\nUp/Down"), bg );
86 page->setChecked(config.readBoolEntry( "Page Up/Down", false )); 76 page->setChecked(config.readBoolEntry( "Page Up/Down", false ));
87 connect(page, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 77 connect(page, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
88 startend = new QCheckBox( tr("Goto Start/End"), bg ); 78 startend = new QCheckBox( tr("Goto Start/End"), bg );
89 startend->setChecked(config.readBoolEntry( "Goto Start/End", false )); 79 startend->setChecked(config.readBoolEntry( "Goto Start/End", false ));
90 connect(startend, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 80 connect(startend, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
91 jump = new QCheckBox( tr("Jump"), bg ); 81 jump = new QCheckBox( tr("Jump"), bg );
92 jump->setChecked(config.readBoolEntry( "Jump", false )); 82 jump->setChecked(config.readBoolEntry( "Jump", false ));
93 connect(jump, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 83 connect(jump, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
94 pageline = new QCheckBox( tr("Page/Line Scroll"), bg ); 84 pageline = new QCheckBox( tr("Page/Line Scroll"), bg );
95 pageline->setChecked(config.readBoolEntry( "Page/Line Scroll", false )); 85 pageline->setChecked(config.readBoolEntry( "Page/Line Scroll", false ));
96 connect(pageline, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) ); 86 connect(pageline, SIGNAL(stateChanged(int)), this, SLOT( isChanged(int) ) );
97 m_isChanged = false; 87 m_isChanged = false;
98} 88}
99 89
100void CBarPrefs1::saveall() 90void CBarPrefs1::saveall()
101{ 91{
102 config.setGroup( "Toolbar" ); 92 config.setGroup( "Toolbar" );
103 config.writeEntry( "Open", open->isChecked()); 93 config.writeEntry( "Open", open->isChecked());
104 config.writeEntry( "Close", close->isChecked()); 94 config.writeEntry( "Close", close->isChecked());
105 config.writeEntry( "Info", info->isChecked()); 95 config.writeEntry( "Info", info->isChecked());
106 config.writeEntry( "Two/One Touch", twotouch->isChecked()); 96 config.writeEntry( "Two/One Touch", twotouch->isChecked());
107 config.writeEntry( "Find", find->isChecked()); 97 config.writeEntry( "Find", find->isChecked());
108 config.writeEntry( "Scroll", scroll->isChecked()); 98 config.writeEntry( "Scroll", scroll->isChecked());
109 config.writeEntry( "Back/Home/Forward", navigation->isChecked()); 99 config.writeEntry( "Back/Home/Forward", navigation->isChecked());
110 config.writeEntry( "Page Up/Down", page->isChecked()); 100 config.writeEntry( "Page Up/Down", page->isChecked());
111 config.writeEntry( "Goto Start/End", startend->isChecked()); 101 config.writeEntry( "Goto Start/End", startend->isChecked());
112 config.writeEntry( "Jump", jump->isChecked()); 102 config.writeEntry( "Jump", jump->isChecked());
113 config.writeEntry( "Page/Line Scroll", pageline->isChecked()); 103 config.writeEntry( "Page/Line Scroll", pageline->isChecked());
114} 104}
115 105
116CBarPrefs1::~CBarPrefs1() 106CBarPrefs1::~CBarPrefs1()
117{ 107{
118} 108}
diff --git a/noncore/apps/opie-reader/fileBrowser.cpp b/noncore/apps/opie-reader/fileBrowser.cpp
index 05f2c31..ebd14f3 100644
--- a/noncore/apps/opie-reader/fileBrowser.cpp
+++ b/noncore/apps/opie-reader/fileBrowser.cpp
@@ -1,123 +1,120 @@
1/**************************************************************************** 1/****************************************************************************
2 2
3Derived from a file browser which was 3Derived from a file browser which was
4 4
5** copyright 2001 ljp ljp@llornkcor.com 5** copyright 2001 ljp ljp@llornkcor.com
6 6
7Extensive modification by Tim Wentford to allow it to work in rotated mode 7Extensive modification by Tim Wentford to allow it to work in rotated mode
8 8
9****************************************************************************/ 9****************************************************************************/
10#include "fileBrowser.h" 10#include "fileBrowser.h"
11 11
12#include "QtrListView.h" 12#include "QtrListView.h"
13#include <qlineedit.h> 13#include <qlineedit.h>
14#include <qpushbutton.h> 14#include <qpushbutton.h>
15#include <qfile.h>
16#include <qmessagebox.h>
17#ifndef _WINDOWS 15#ifndef _WINDOWS
18#include <unistd.h> 16#include <unistd.h>
19#endif 17#endif
20#include <qlayout.h> 18#include <qlayout.h>
21#ifdef _WINDOWS 19#ifdef _WINDOWS
22#include <direct.h> 20#include <direct.h>
23#endif 21#endif
24 22
25#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
26 24
27#include "opie.h"
28 25
29fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter, const QString iPath ) 26fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter, const QString iPath )
30 : QDialog( parent, name, true, 27 : QDialog( parent, name, true,
31 fl/* | WStyle_Customize | WStyle_Tool*/), 28 fl/* | WStyle_Customize | WStyle_Tool*/),
32 filterspec(QDir::All) 29 filterspec(QDir::All)
33{ 30{
34// showMaximized(); 31// showMaximized();
35 if ( !name ) 32 if ( !name )
36 setName( "fileBrowser" ); 33 setName( "fileBrowser" );
37/* 34/*
38 if (parent != NULL) 35 if (parent != NULL)
39 { 36 {
40#ifdef OPIE 37#ifdef OPIE
41 move(0,0); 38 move(0,0);
42 resize( parent->width(), parent->height() ); 39 resize( parent->width(), parent->height() );
43#else 40#else
44 setGeometry(parent->x(), parent->y(), parent->width(), parent->height() ); 41 setGeometry(parent->x(), parent->y(), parent->width(), parent->height() );
45#endif 42#endif
46 } 43 }
47*/ 44*/
48// showFullScreen(); 45// showFullScreen();
49 setCaption(tr( "Browse for file" ) ); 46 setCaption(tr( "Browse for file" ) );
50 filterStr=filter; 47 filterStr=filter;
51 48
52 buttonOk = new QPushButton( this, "buttonOk" ); 49 buttonOk = new QPushButton( this, "buttonOk" );
53 buttonOk->setFixedSize( 25, 25 ); 50 buttonOk->setFixedSize( 25, 25 );
54 buttonOk->setAutoDefault( false ); 51 buttonOk->setAutoDefault( false );
55 buttonOk->setText( tr( "/" ) ); 52 buttonOk->setText( tr( "/" ) );
56 53
57 buttonShowHidden = new QPushButton( this, "buttonShowHidden" ); 54 buttonShowHidden = new QPushButton( this, "buttonShowHidden" );
58// buttonShowHidden->setFixedSize( 50, 25 ); 55// buttonShowHidden->setFixedSize( 50, 25 );
59 buttonShowHidden->setText( tr( "Hidden" ) ); 56 buttonShowHidden->setText( tr( "Hidden" ) );
60 buttonShowHidden->setAutoDefault( false ); 57 buttonShowHidden->setAutoDefault( false );
61 buttonShowHidden->setToggleButton( true ); 58 buttonShowHidden->setToggleButton( true );
62 buttonShowHidden->setOn( false ); 59 buttonShowHidden->setOn( false );
63 60
64 dirLabel = new QLabel(this, "DirLabel"); 61 dirLabel = new QLabel(this, "DirLabel");
65 dirLabel->setAlignment(AlignLeft | AlignVCenter | ExpandTabs | WordBreak); 62 dirLabel->setAlignment(AlignLeft | AlignVCenter | ExpandTabs | WordBreak);
66 dirLabel->setText(currentDir.canonicalPath()); 63 dirLabel->setText(currentDir.canonicalPath());
67 64
68 ListView = new QtrListView( this, "ListView" ); 65 ListView = new QtrListView( this, "ListView" );
69 ListView->addColumn( tr( "Name" ) ); 66 ListView->addColumn( tr( "Name" ) );
70 ListView->setSorting( 2, FALSE); 67 ListView->setSorting( 2, FALSE);
71 ListView->addColumn( tr( "Size" ) ); 68 ListView->addColumn( tr( "Size" ) );
72 ListView->setSelectionMode(QListView::Single); 69 ListView->setSelectionMode(QListView::Single);
73 ListView->setAllColumnsShowFocus( TRUE ); 70 ListView->setAllColumnsShowFocus( TRUE );
74 ListView->setColumnWidthMode(0, QListView::Manual); 71 ListView->setColumnWidthMode(0, QListView::Manual);
75 ListView->setColumnWidthMode(1, QListView::Manual); 72 ListView->setColumnWidthMode(1, QListView::Manual);
76 73
77 // signals and slots connections 74 // signals and slots connections
78 connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) ); 75 connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) );
79 connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) ); 76 connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) );
80 connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); 77 connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) );
81 connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 78 connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
82 connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 79 connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
83 connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 80 connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
84 connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) ); 81 connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) );
85 82
86 QVBoxLayout* grid = new QVBoxLayout(this); 83 QVBoxLayout* grid = new QVBoxLayout(this);
87 QHBoxLayout* hgrid = new QHBoxLayout(grid); 84 QHBoxLayout* hgrid = new QHBoxLayout(grid);
88 hgrid->addWidget(dirLabel,1); 85 hgrid->addWidget(dirLabel,1);
89 hgrid->addWidget(buttonShowHidden); 86 hgrid->addWidget(buttonShowHidden);
90 hgrid->addWidget(buttonOk); 87 hgrid->addWidget(buttonOk);
91 grid->addWidget(ListView,1); 88 grid->addWidget(ListView,1);
92 if (allownew) 89 if (allownew)
93 { 90 {
94 m_filename = new QLineEdit(this); 91 m_filename = new QLineEdit(this);
95 grid->addWidget(m_filename); 92 grid->addWidget(m_filename);
96 connect( m_filename, SIGNAL( returnPressed() ), this, SLOT( onReturn() )); 93 connect( m_filename, SIGNAL( returnPressed() ), this, SLOT( onReturn() ));
97 } 94 }
98 else 95 else
99 { 96 {
100 m_filename = NULL; 97 m_filename = NULL;
101 } 98 }
102 99
103 if (QFileInfo(iPath).exists()) 100 if (QFileInfo(iPath).exists())
104 { 101 {
105 currentDir.setPath(iPath); 102 currentDir.setPath(iPath);
106#ifdef _WINDOWS 103#ifdef _WINDOWS
107 _chdir(iPath.latin1()); 104 _chdir(iPath.latin1());
108#else 105#else
109 chdir(iPath.latin1()); 106 chdir(iPath.latin1());
110#endif 107#endif
111 } 108 }
112 else 109 else
113 { 110 {
114 currentDir.setPath(QDir::currentDirPath()); 111 currentDir.setPath(QDir::currentDirPath());
115 chdir(QDir::currentDirPath().latin1()); 112 chdir(QDir::currentDirPath().latin1());
116 } 113 }
117 114
118 populateList(); 115 populateList();
119 116
120 if (modal) 117 if (modal)
121 QPEApplication::showDialog( this ); 118 QPEApplication::showDialog( this );
122} 119}
123 120
diff --git a/noncore/apps/opie-reader/main.cpp b/noncore/apps/opie-reader/main.cpp
index 3e1f5e7..6d706c4 100644
--- a/noncore/apps/opie-reader/main.cpp
+++ b/noncore/apps/opie-reader/main.cpp
@@ -1,50 +1,48 @@
1#include "useqpe.h" 1#include "useqpe.h"
2#ifdef USEQPE 2#ifdef USEQPE
3#include <qpe/qpeapplication.h> 3#include <qpe/qpeapplication.h>
4#else 4#else
5#include <qapplication.h> 5#include <qapplication.h>
6#endif 6#endif
7#include "QTReaderApp.h" 7#include "QTReaderApp.h"
8 8
9#include "signal.h" 9#include "signal.h"
10#include "stdio.h"
11#include "time.h"
12 10
13 11
14#ifdef USEQPE 12#ifdef USEQPE
15QTReaderApp* app = NULL; 13QTReaderApp* app = NULL;
16 14
17void handler(int signum) 15void handler(int signum)
18{ 16{
19 if (app != NULL) 17 if (app != NULL)
20 { 18 {
21 app->suspend(); 19 app->suspend();
22 app->saveprefs(); 20 app->saveprefs();
23 } 21 }
24 signal(signum, handler); 22 signal(signum, handler);
25} 23}
26#endif 24#endif
27 25
28int main( int argc, char ** argv ) 26int main( int argc, char ** argv )
29{ 27{
30 28
31#ifdef USEQPE 29#ifdef USEQPE
32 signal(SIGCONT, handler); 30 signal(SIGCONT, handler);
33 QPEApplication a( argc, argv ); 31 QPEApplication a( argc, argv );
34 QTReaderApp m; 32 QTReaderApp m;
35 a.showMainDocumentWidget( &m ); 33 a.showMainDocumentWidget( &m );
36 app = &m; 34 app = &m;
37#else 35#else
38 QApplication a( argc, argv ); 36 QApplication a( argc, argv );
39 QTReaderApp m; 37 QTReaderApp m;
40 a.setMainWidget( &m ); 38 a.setMainWidget( &m );
41 if (argc > 1) 39 if (argc > 1)
42 { 40 {
43 m.setDocument(argv[1]); 41 m.setDocument(argv[1]);
44 } 42 }
45#endif 43#endif
46 44
47 45
48 return a.exec(); 46 return a.exec();
49} 47}
50 48
diff --git a/noncore/apps/opie-reader/plucker.cpp b/noncore/apps/opie-reader/plucker.cpp
index e49e35f..e52fd6a 100644
--- a/noncore/apps/opie-reader/plucker.cpp
+++ b/noncore/apps/opie-reader/plucker.cpp
@@ -1,117 +1,112 @@
1#include "useqpe.h"
2#include <stdio.h> 1#include <stdio.h>
3#include <string.h> 2#include <string.h>
4#include <qmessagebox.h>
5#include <qpixmap.h>
6#ifdef USEQPE 3#ifdef USEQPE
7#include <qpe/qcopenvelope_qws.h> 4#include <qpe/qcopenvelope_qws.h>
8#endif 5#endif
9#ifdef LOCALPICTURES 6#ifdef LOCALPICTURES
10#include <qscrollview.h> 7#include <qscrollview.h>
11#endif 8#endif
12#ifdef USEQPE 9#ifdef USEQPE
13#include <qpe/global.h> 10#include <qpe/global.h>
14#include <qpe/qpeapplication.h> 11#include <qpe/qpeapplication.h>
15#else 12#else
16#include <qapplication.h> 13#include <qapplication.h>
17#endif 14#endif
18#include <qclipboard.h>
19 15
20#include "plucker.h" 16#include "plucker.h"
21#include "Aportis.h"
22#include "Palm2QImage.h" 17#include "Palm2QImage.h"
23 18
24 19
25struct CPlucker_dataRecord 20struct CPlucker_dataRecord
26{ 21{
27 UInt16 uid; 22 UInt16 uid;
28 UInt16 nParagraphs; 23 UInt16 nParagraphs;
29 UInt16 size; 24 UInt16 size;
30 UInt8 type; 25 UInt8 type;
31 UInt8 reserved; 26 UInt8 reserved;
32}; 27};
33 28
34int CPlucker::HeaderSize() 29int CPlucker::HeaderSize()
35{ 30{
36 return sizeof(CPlucker_dataRecord); 31 return sizeof(CPlucker_dataRecord);
37} 32}
38 33
39void CPlucker::GetHeader(UInt16& uid, UInt16& nParagraphs, UInt32& size, UInt8& type, UInt8& reserved) 34void CPlucker::GetHeader(UInt16& uid, UInt16& nParagraphs, UInt32& size, UInt8& type, UInt8& reserved)
40{ 35{
41 CPlucker_dataRecord thishdr; 36 CPlucker_dataRecord thishdr;
42 fread(&thishdr, 1, HeaderSize(), fin); 37 fread(&thishdr, 1, HeaderSize(), fin);
43 uid = ntohs(thishdr.uid); 38 uid = ntohs(thishdr.uid);
44 nParagraphs = ntohs(thishdr.nParagraphs); 39 nParagraphs = ntohs(thishdr.nParagraphs);
45 size = ntohs(thishdr.size); 40 size = ntohs(thishdr.size);
46 type = thishdr.type; 41 type = thishdr.type;
47 reserved = thishdr.reserved; 42 reserved = thishdr.reserved;
48} 43}
49 44
50CPlucker::CPlucker() 45CPlucker::CPlucker()
51 { /*printf("constructing:%x\n",fin);*/ } 46 { /*printf("constructing:%x\n",fin);*/ }
52 47
53bool CPlucker::CorrectDecoder() 48bool CPlucker::CorrectDecoder()
54{ 49{
55 return (memcmp(&head.type, "DataPlkr", 8) == 0); 50 return (memcmp(&head.type, "DataPlkr", 8) == 0);
56} 51}
57 52
58int CPlucker::bgetch() 53int CPlucker::bgetch()
59{ 54{
60 int ch = EOF; 55 int ch = EOF;
61 if (bufferpos >= buffercontent) 56 if (bufferpos >= buffercontent)
62 { 57 {
63 if (!m_continuous) return EOF; 58 if (!m_continuous) return EOF;
64 if (bufferrec >= ntohs(head.recordList.numRecords) - 1) return EOF; 59 if (bufferrec >= ntohs(head.recordList.numRecords) - 1) return EOF;
65 ////qDebug("Passing through %u", currentpos); 60 ////qDebug("Passing through %u", currentpos);
66 if (!expand(bufferrec+1)) return EOF; 61 if (!expand(bufferrec+1)) return EOF;
67 mystyle.unset(); 62 mystyle.unset();
68 if (m_ParaOffsets[m_nextParaIndex] == 0) 63 if (m_ParaOffsets[m_nextParaIndex] == 0)
69 { 64 {
70 while (m_ParaOffsets[m_nextParaIndex+1] == 0) 65 while (m_ParaOffsets[m_nextParaIndex+1] == 0)
71 { 66 {
72 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 67 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7);
73 m_nextParaIndex++; 68 m_nextParaIndex++;
74 } 69 }
75 } 70 }
76 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); 71 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2);
77 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 72 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7);
78 ch = 10; 73 ch = 10;
79 EOPPhase = 4; 74 EOPPhase = 4;
80 } 75 }
81 else if (bufferpos == m_nextPara) 76 else if (bufferpos == m_nextPara)
82 { 77 {
83 while (bufferpos == m_nextPara) 78 while (bufferpos == m_nextPara)
84 { 79 {
85 UInt16 attr = m_ParaAttrs[m_nextParaIndex]; 80 UInt16 attr = m_ParaAttrs[m_nextParaIndex];
86 m_nextParaIndex++; 81 m_nextParaIndex++;
87 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 82 // qDebug("Skipping extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7);
88 if (m_nextParaIndex == m_nParas) 83 if (m_nextParaIndex == m_nParas)
89 { 84 {
90 m_nextPara = -1; 85 m_nextPara = -1;
91 } 86 }
92 else 87 else
93 { 88 {
94 m_nextPara += m_ParaOffsets[m_nextParaIndex]; 89 m_nextPara += m_ParaOffsets[m_nextParaIndex];
95 } 90 }
96 } 91 }
97 mystyle.unset(); 92 mystyle.unset();
98 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2); 93 mystyle.setExtraSpace((m_ParaAttrs[m_nextParaIndex]&7)*2);
99 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7); 94 //qDebug("Using extraspace:%d", m_ParaAttrs[m_nextParaIndex]&7);
100 if (m_lastBreak == locate()) 95 if (m_lastBreak == locate())
101 { 96 {
102 currentpos++; 97 currentpos++;
103 ch = expandedtextbuffer[bufferpos++]; 98 ch = expandedtextbuffer[bufferpos++];
104 } 99 }
105 else 100 else
106 { 101 {
107 ch = 10; 102 ch = 10;
108 } 103 }
109 } 104 }
110 else 105 else
111 { 106 {
112 currentpos++; 107 currentpos++;
113 ch = expandedtextbuffer[bufferpos++]; 108 ch = expandedtextbuffer[bufferpos++];
114 } 109 }
115 return ch; 110 return ch;
116} 111}
117 112
diff --git a/noncore/apps/opie-reader/plucker_base.cpp b/noncore/apps/opie-reader/plucker_base.cpp
index 9047a45..caa945d 100644
--- a/noncore/apps/opie-reader/plucker_base.cpp
+++ b/noncore/apps/opie-reader/plucker_base.cpp
@@ -1,111 +1,108 @@
1#include "useqpe.h" 1#include "useqpe.h"
2#include <stdio.h> 2#include <stdio.h>
3#include <string.h> 3#include <string.h>
4#include <qmessagebox.h>
5#include <qpixmap.h>
6#ifdef USEQPE 4#ifdef USEQPE
7#include <qpe/qcopenvelope_qws.h> 5#include <qpe/qcopenvelope_qws.h>
8#endif /* USEQPE */ 6#endif /* USEQPE */
9#ifdef LOCALPICTURES 7#ifdef LOCALPICTURES
10#include <qscrollview.h> 8#include <qscrollview.h>
11#endif 9#endif
12#ifdef USEQPE 10#ifdef USEQPE
13#include <qpe/global.h> 11#include <qpe/global.h>
14#endif /* USEQPE */ 12#endif /* USEQPE */
15#include <qclipboard.h>
16#ifndef USEQPE 13#ifndef USEQPE
17#include <qapplication.h> 14#include <qapplication.h>
18#else /* USEQPE */ 15#else /* USEQPE */
19#include <qpe/qpeapplication.h> 16#include <qpe/qpeapplication.h>
20#endif /* USEQPE */ 17#endif /* USEQPE */
21 18
22#include "plucker_base.h" 19#include "plucker_base.h"
23#include "Aportis.h" 20#include "Aportis.h"
24#include "Palm2QImage.h" 21#include "Palm2QImage.h"
25 22
26CPlucker_base::CPlucker_base() : 23CPlucker_base::CPlucker_base() :
27#ifdef LOCALPICTURES 24#ifdef LOCALPICTURES
28 m_viewer(NULL), 25 m_viewer(NULL),
29 m_picture(NULL), 26 m_picture(NULL),
30#endif 27#endif
31 expandedtextbuffer(NULL), 28 expandedtextbuffer(NULL),
32 compressedtextbuffer(NULL) 29 compressedtextbuffer(NULL)
33//, urls(NULL) 30//, urls(NULL)
34 { /*printf("constructing:%x\n",fin);*/ } 31 { /*printf("constructing:%x\n",fin);*/ }
35 32
36 33
37void CPlucker_base::Expand(UInt32 reclen, UInt8 type, UInt8* buffer, UInt32 buffersize) 34void CPlucker_base::Expand(UInt32 reclen, UInt8 type, UInt8* buffer, UInt32 buffersize)
38{ 35{
39 if (type%2 == 0) 36 if (type%2 == 0)
40 { 37 {
41 fread(buffer, reclen, sizeof(char), fin); 38 fread(buffer, reclen, sizeof(char), fin);
42 } 39 }
43 else 40 else
44 { 41 {
45 UInt8* readbuffer = NULL; 42 UInt8* readbuffer = NULL;
46 if (reclen > compressedbuffersize) 43 if (reclen > compressedbuffersize)
47 { 44 {
48 readbuffer = new UInt8[reclen]; 45 readbuffer = new UInt8[reclen];
49 } 46 }
50 else 47 else
51 { 48 {
52 readbuffer = compressedtextbuffer; 49 readbuffer = compressedtextbuffer;
53 } 50 }
54 if (readbuffer != NULL) 51 if (readbuffer != NULL)
55 { 52 {
56 fread(readbuffer, reclen, sizeof(char), fin); 53 fread(readbuffer, reclen, sizeof(char), fin);
57 switch (ntohs(hdr0.version)) 54 switch (ntohs(hdr0.version))
58 { 55 {
59 case 2: 56 case 2:
60 UnZip(readbuffer, reclen, buffer, buffersize); 57 UnZip(readbuffer, reclen, buffer, buffersize);
61 break; 58 break;
62 case 1: 59 case 1:
63 UnDoc(readbuffer, reclen, buffer, buffersize); 60 UnDoc(readbuffer, reclen, buffer, buffersize);
64 break; 61 break;
65 } 62 }
66 if (reclen > compressedbuffersize) 63 if (reclen > compressedbuffersize)
67 { 64 {
68 delete [] readbuffer; 65 delete [] readbuffer;
69 } 66 }
70 } 67 }
71 } 68 }
72} 69}
73 70
74void CPlucker_base::sizes(unsigned long& _file, unsigned long& _text) 71void CPlucker_base::sizes(unsigned long& _file, unsigned long& _text)
75{ 72{
76 _file = file_length; 73 _file = file_length;
77 if (textlength == 0) 74 if (textlength == 0)
78 { 75 {
79 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) 76 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++)
80 { 77 {
81 gotorecordnumber(recptr); 78 gotorecordnumber(recptr);
82 UInt16 thishdr_uid, thishdr_nParagraphs; 79 UInt16 thishdr_uid, thishdr_nParagraphs;
83 UInt32 thishdr_size; 80 UInt32 thishdr_size;
84 UInt8 thishdr_type, thishdr_reserved; 81 UInt8 thishdr_type, thishdr_reserved;
85 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 82 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
86 if (thishdr_type < 2) textlength += thishdr_size; 83 if (thishdr_type < 2) textlength += thishdr_size;
87 } 84 }
88 } 85 }
89 _text = textlength; 86 _text = textlength;
90//ntohl(hdr0.size); 87//ntohl(hdr0.size);
91} 88}
92 89
93char* CPlucker_base::geturl(UInt16 tgt) 90char* CPlucker_base::geturl(UInt16 tgt)
94{ 91{
95 char * pRet = NULL; 92 char * pRet = NULL;
96 gotorecordnumber(0); 93 gotorecordnumber(0);
97 fread(&hdr0, 1, 6, fin); 94 fread(&hdr0, 1, 6, fin);
98 unsigned int nrecs = ntohs(hdr0.nRecords); 95 unsigned int nrecs = ntohs(hdr0.nRecords);
99 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); 96 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs);
100 UInt16 urlid = 0; 97 UInt16 urlid = 0;
101 bool urlsfound = false; 98 bool urlsfound = false;
102 char* urls = NULL; 99 char* urls = NULL;
103 size_t urlsize = 0; 100 size_t urlsize = 0;
104 for (unsigned int i = 0; i < nrecs; i++) 101 for (unsigned int i = 0; i < nrecs; i++)
105 { 102 {
106 UInt16 id, name; 103 UInt16 id, name;
107 fread(&name, 1, sizeof(name), fin); 104 fread(&name, 1, sizeof(name), fin);
108 fread(&id, 1, sizeof(id), fin); 105 fread(&id, 1, sizeof(id), fin);
109 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); 106 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id));
110 if (ntohs(name) == 2) 107 if (ntohs(name) == 2)
111 { 108 {
@@ -452,328 +449,326 @@ void CPlucker_base::UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuff
452 } 449 }
453 zstream.next_out = tgtbuffer; 450 zstream.next_out = tgtbuffer;
454 zstream.avail_out = bsize; 451 zstream.avail_out = bsize;
455 452
456 err = inflate( &zstream, Z_SYNC_FLUSH ); 453 err = inflate( &zstream, Z_SYNC_FLUSH );
457 454
458 ////qDebug("err:%d - %u", err, zstream.avail_in); 455 ////qDebug("err:%d - %u", err, zstream.avail_in);
459 456
460 } while ( err == Z_OK ); 457 } while ( err == Z_OK );
461 458
462 inflateEnd(&zstream); 459 inflateEnd(&zstream);
463} 460}
464 461
465void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) 462void CPlucker_base::UnDoc(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize)
466{ 463{
467// UInt16 headerSize; 464// UInt16 headerSize;
468 UInt16 docSize; 465 UInt16 docSize;
469 UInt16 i; 466 UInt16 i;
470 UInt16 j; 467 UInt16 j;
471 UInt16 k; 468 UInt16 k;
472 469
473 UInt8 *inBuf = compressedbuffer; 470 UInt8 *inBuf = compressedbuffer;
474 UInt8 *outBuf = tgtbuffer; 471 UInt8 *outBuf = tgtbuffer;
475 472
476// headerSize = sizeof( Header ) + record->paragraphs * sizeof( Paragraph ); 473// headerSize = sizeof( Header ) + record->paragraphs * sizeof( Paragraph );
477 docSize = reclen; 474 docSize = reclen;
478 475
479 j = 0; 476 j = 0;
480 k = 0; 477 k = 0;
481 while ( j < docSize ) { 478 while ( j < docSize ) {
482 i = 0; 479 i = 0;
483 while ( i < bsize && j < docSize ) { 480 while ( i < bsize && j < docSize ) {
484 UInt16 c; 481 UInt16 c;
485 482
486 c = (UInt16) inBuf[ j++ ]; 483 c = (UInt16) inBuf[ j++ ];
487 if ( 0 < c && c < 9 ) { 484 if ( 0 < c && c < 9 ) {
488 while ( 0 < c-- ) 485 while ( 0 < c-- )
489 outBuf[ i++ ] = inBuf[ j++ ]; 486 outBuf[ i++ ] = inBuf[ j++ ];
490 } 487 }
491 else if ( c < 0x80 ) 488 else if ( c < 0x80 )
492 outBuf[ i++ ] = c; 489 outBuf[ i++ ] = c;
493 else if ( 0xc0 <= c ) { 490 else if ( 0xc0 <= c ) {
494 outBuf[ i++ ] = ' '; 491 outBuf[ i++ ] = ' ';
495 outBuf[ i++ ] = c ^ 0x80; 492 outBuf[ i++ ] = c ^ 0x80;
496 } 493 }
497 else { 494 else {
498 Int16 m; 495 Int16 m;
499 Int16 n; 496 Int16 n;
500 497
501 c <<= 8; 498 c <<= 8;
502 c += inBuf[ j++ ]; 499 c += inBuf[ j++ ];
503 500
504 m = ( c & 0x3fff ) >> COUNT_BITS; 501 m = ( c & 0x3fff ) >> COUNT_BITS;
505 n = c & ( ( 1 << COUNT_BITS ) - 1 ); 502 n = c & ( ( 1 << COUNT_BITS ) - 1 );
506 n += 2; 503 n += 2;
507 504
508 do { 505 do {
509 outBuf[ i ] = outBuf[ i - m ]; 506 outBuf[ i ] = outBuf[ i - m ];
510 i++; 507 i++;
511 } while ( 0 < n-- ); 508 } while ( 0 < n-- );
512 } 509 }
513 } 510 }
514 k += bsize; 511 k += bsize;
515 } 512 }
516} 513}
517 514
518void CPlucker_base::home() 515void CPlucker_base::home()
519{ 516{
520 currentpos = 0; 517 currentpos = 0;
521 expand(1); 518 expand(1);
522} 519}
523 520
524CList<Bkmk>* CPlucker_base::getbkmklist() 521CList<Bkmk>* CPlucker_base::getbkmklist()
525{ 522{
526/* 523/*
527 UInt16 thishdr_uid, thishdr_nParagraphs; 524 UInt16 thishdr_uid, thishdr_nParagraphs;
528 UInt32 thishdr_size; 525 UInt32 thishdr_size;
529 UInt8 thishdr_type, thishdr_reserved; 526 UInt8 thishdr_type, thishdr_reserved;
530 527
531 for (int i = 1; i < ntohs(head.recordList.numRecords); i++) 528 for (int i = 1; i < ntohs(head.recordList.numRecords); i++)
532 { 529 {
533 gotorecordnumber(i); 530 gotorecordnumber(i);
534 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 531 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
535 if (thishdr_type == 8) 532 if (thishdr_type == 8)
536 { 533 {
537 UInt16 n; 534 UInt16 n;
538 fread(&n, 1, sizeof(n), fin); 535 fread(&n, 1, sizeof(n), fin);
539 n = ntohs(n); 536 n = ntohs(n);
540 //qDebug("Found %u bookmarks", n); 537 //qDebug("Found %u bookmarks", n);
541 } 538 }
542 //qDebug("Found:%d, %u", i , thishdr_type); 539 //qDebug("Found:%d, %u", i , thishdr_type);
543 } 540 }
544*/ 541*/
545 return NULL; 542 return NULL;
546} 543}
547 544
548#include <qnamespace.h>
549 545
550QImage* CPlucker_base::expandimg(UInt16 tgt, bool border) 546QImage* CPlucker_base::expandimg(UInt16 tgt, bool border)
551{ 547{
552 QImage* qimage = getimg(tgt); 548 QImage* qimage = getimg(tgt);
553 QImage* ret; 549 QImage* ret;
554 if (qimage == NULL) return NULL; 550 if (qimage == NULL) return NULL;
555 if (border) 551 if (border)
556 { 552 {
557 QPixmap* image = new QPixmap(0,0); 553 QPixmap* image = new QPixmap(0,0);
558 image->convertFromImage(*qimage); 554 image->convertFromImage(*qimage);
559 delete qimage; 555 delete qimage;
560 QPixmap* pret = new QPixmap(image->width()+4, image->height()+4); 556 QPixmap* pret = new QPixmap(image->width()+4, image->height()+4);
561 pret->fill(Qt::red); 557 pret->fill(Qt::red);
562 bitBlt(pret, 2, 2, image, 0, 0, -1, -1);//, Qt::RasterOp::CopyROP); 558 bitBlt(pret, 2, 2, image, 0, 0, -1, -1);//, Qt::RasterOp::CopyROP);
563 delete image; 559 delete image;
564 ret = new QImage(pret->convertToImage()); 560 ret = new QImage(pret->convertToImage());
565 } 561 }
566 else 562 else
567 { 563 {
568 ret = qimage; 564 ret = qimage;
569 } 565 }
570 return ret; 566 return ret;
571} 567}
572 568
573#ifdef _BUFFERPICS 569#ifdef _BUFFERPICS
574#include <qmap.h> 570#include <qmap.h>
575#endif 571#endif
576 572
577QImage* CPlucker_base::getPicture(unsigned long tgt) 573QImage* CPlucker_base::getPicture(unsigned long tgt)
578{ 574{
579#ifdef _BUFFERPICS 575#ifdef _BUFFERPICS
580 static QMap<unsigned long, QPixmap> pix; 576 static QMap<unsigned long, QPixmap> pix;
581 QMap<unsigned long, QPixmap>::Iterator t = pix.find(tgt); 577 QMap<unsigned long, QPixmap>::Iterator t = pix.find(tgt);
582 if (t == pix.end()) 578 if (t == pix.end())
583 { 579 {
584 pix[tgt] = *expandimg(tgt); 580 pix[tgt] = *expandimg(tgt);
585 return &pix[tgt]; 581 return &pix[tgt];
586 } 582 }
587 else 583 else
588 return &(t.data()); 584 return &(t.data());
589#else 585#else
590 return expandimg(tgt >> 16); 586 return expandimg(tgt >> 16);
591#endif 587#endif
592} 588}
593 589
594#ifdef LOCALPICTURES 590#ifdef LOCALPICTURES
595#include <unistd.h> 591#include <unistd.h>
596#include <qpe/global.h> 592#include <qpe/global.h>
597void CPlucker_base::showimg(UInt16 tgt) 593void CPlucker_base::showimg(UInt16 tgt)
598{ 594{
599 //qDebug("Crassssssh!"); 595 //qDebug("Crassssssh!");
600 QPixmap* qimage = expandimg(tgt); 596 QPixmap* qimage = expandimg(tgt);
601 m_picture->setFixedSize(qimage->size()); 597 m_picture->setFixedSize(qimage->size());
602 m_picture->setBackgroundPixmap(*qimage); 598 m_picture->setBackgroundPixmap(*qimage);
603 delete qimage; 599 delete qimage;
604 m_viewer->show(); 600 m_viewer->show();
605 601
606/* 602/*
607 char tmp[] = "uqtreader.XXXXXX"; 603 char tmp[] = "uqtreader.XXXXXX";
608 QImage* qimage = getimg(tgt); 604 QImage* qimage = getimg(tgt);
609 QPixmap* image = new QPixmap(0,0); 605 QPixmap* image = new QPixmap(0,0);
610// //qDebug("New image"); 606// //qDebug("New image");
611 image->convertFromImage(*qimage); 607 image->convertFromImage(*qimage);
612 delete qimage; 608 delete qimage;
613 char tmpfile[sizeof(tmp)+1]; 609 char tmpfile[sizeof(tmp)+1];
614 strcpy(tmpfile,tmp); 610 strcpy(tmpfile,tmp);
615 int f = mkstemp(tmpfile); 611 int f = mkstemp(tmpfile);
616 close(f); 612 close(f);
617 //qDebug("TMPFILE:%s", tmpfile); 613 //qDebug("TMPFILE:%s", tmpfile);
618 if (image->save(tmpfile,"PNG")) 614 if (image->save(tmpfile,"PNG"))
619 { 615 {
620 QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)"); 616 QCopEnvelope e("QPE/Application/showimg", "setDocument(QString)");
621 e << QString(tmpfile); 617 e << QString(tmpfile);
622 } 618 }
623 Global::statusMessage("Opening image"); 619 Global::statusMessage("Opening image");
624 sleep(5); 620 sleep(5);
625 delete image; 621 delete image;
626 unlink(tmpfile); 622 unlink(tmpfile);
627*/ 623*/
628} 624}
629 625
630#endif 626#endif
631 627
632unsigned short CPlucker_base::finduid(unsigned short urlid) 628unsigned short CPlucker_base::finduid(unsigned short urlid)
633{ 629{
634// //qDebug("Finding %u", urlid); 630// //qDebug("Finding %u", urlid);
635 unsigned short jmin = 1, jmax = ntohs(head.recordList.numRecords); 631 unsigned short jmin = 1, jmax = ntohs(head.recordList.numRecords);
636 unsigned short jmid = (jmin+jmax) >> 1; 632 unsigned short jmid = (jmin+jmax) >> 1;
637 while (jmax - jmin > 1) 633 while (jmax - jmin > 1)
638 { 634 {
639 gotorecordnumber(jmid); 635 gotorecordnumber(jmid);
640 UInt16 thishdr_uid, thishdr_nParagraphs; 636 UInt16 thishdr_uid, thishdr_nParagraphs;
641 UInt32 thishdr_size; 637 UInt32 thishdr_size;
642 UInt8 thishdr_type, thishdr_reserved; 638 UInt8 thishdr_type, thishdr_reserved;
643 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 639 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
644 unsigned short luid = thishdr_uid; 640 unsigned short luid = thishdr_uid;
645 ////qDebug("%u %u %u : %u", jmin, jmid, jmax, urlid); 641 ////qDebug("%u %u %u : %u", jmin, jmid, jmax, urlid);
646 if (luid == urlid) 642 if (luid == urlid)
647 { 643 {
648 return jmid; 644 return jmid;
649 } 645 }
650 if (luid < urlid) 646 if (luid < urlid)
651 { 647 {
652 jmin = jmid; 648 jmin = jmid;
653 } 649 }
654 else 650 else
655 { 651 {
656 jmax = jmid; 652 jmax = jmid;
657 } 653 }
658 jmid = (jmin+jmax) >> 1; 654 jmid = (jmin+jmax) >> 1;
659 } 655 }
660 gotorecordnumber(jmin); 656 gotorecordnumber(jmin);
661 UInt16 thishdr_uid, thishdr_nParagraphs; 657 UInt16 thishdr_uid, thishdr_nParagraphs;
662 UInt32 thishdr_size; 658 UInt32 thishdr_size;
663 UInt8 thishdr_type, thishdr_reserved; 659 UInt8 thishdr_type, thishdr_reserved;
664 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 660 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
665 unsigned short luid = thishdr_uid; 661 unsigned short luid = thishdr_uid;
666 //qDebug("jmin at end:%u,%u", jmin, luid); 662 //qDebug("jmin at end:%u,%u", jmin, luid);
667 if (luid == urlid) 663 if (luid == urlid)
668 { 664 {
669 return jmin; 665 return jmin;
670 } 666 }
671 gotorecordnumber(jmax); 667 gotorecordnumber(jmax);
672 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved); 668 GetHeader(thishdr_uid, thishdr_nParagraphs, thishdr_size, thishdr_type, thishdr_reserved);
673 luid = thishdr_uid; 669 luid = thishdr_uid;
674 //qDebug("jmax at end:%u,%u", jmax, luid); 670 //qDebug("jmax at end:%u,%u", jmax, luid);
675 if (luid == urlid) 671 if (luid == urlid)
676 { 672 {
677 return jmax; 673 return jmax;
678 } 674 }
679 //qDebug("Couldn't find %u", urlid); 675 //qDebug("Couldn't find %u", urlid);
680 return 0; // Not found! 676 return 0; // Not found!
681} 677}
682 678
683#include <qnamespace.h>
684 679
685void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen) 680void CPlucker_base::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen)
686{ 681{
687 unsigned short sz = 0; 682 unsigned short sz = 0;
688 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) 683 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++)
689 { 684 {
690 sz++; 685 sz++;
691 } 686 }
692 size_t newlen = srclen+sizeof(sz)+sz*sizeof(unsigned long); 687 size_t newlen = srclen+sizeof(sz)+sz*sizeof(unsigned long);
693 unsigned char* newdata = new unsigned char[newlen]; 688 unsigned char* newdata = new unsigned char[newlen];
694 unsigned char* pdata = newdata; 689 unsigned char* pdata = newdata;
695 memcpy(newdata, src, srclen); 690 memcpy(newdata, src, srclen);
696 newdata += srclen; 691 newdata += srclen;
697 memcpy(newdata, &sz, sizeof(sz)); 692 memcpy(newdata, &sz, sizeof(sz));
698 newdata += sizeof(sz); 693 newdata += sizeof(sz);
699#ifdef _WINDOWS 694#ifdef _WINDOWS
700 for (it = visited.begin(); it != visited.end(); it++) 695 for (it = visited.begin(); it != visited.end(); it++)
701#else 696#else
702 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++) 697 for (CList<unsigned long>::iterator it = visited.begin(); it != visited.end(); it++)
703#endif 698#endif
704 { 699 {
705 unsigned long t = *it; 700 unsigned long t = *it;
706 //qDebug("[%u]", t); 701 //qDebug("[%u]", t);
707 memcpy(newdata, &t, sizeof(t)); 702 memcpy(newdata, &t, sizeof(t));
708 newdata += sizeof(t); 703 newdata += sizeof(t);
709 } 704 }
710 m_nav.setSaveData(data, len, pdata, newlen); 705 m_nav.setSaveData(data, len, pdata, newlen);
711 delete [] pdata; 706 delete [] pdata;
712} 707}
713 708
714void CPlucker_base::putSaveData(unsigned char*& src, unsigned short& srclen) 709void CPlucker_base::putSaveData(unsigned char*& src, unsigned short& srclen)
715{ 710{
716 unsigned short sz; 711 unsigned short sz;
717 if (srclen >= sizeof(sz)) 712 if (srclen >= sizeof(sz))
718 { 713 {
719 memcpy(&sz, src, sizeof(sz)); 714 memcpy(&sz, src, sizeof(sz));
720 src += sizeof(sz); 715 src += sizeof(sz);
721 srclen -= sizeof(sz); 716 srclen -= sizeof(sz);
722 } 717 }
723 for (int i = 0; i < sz; i++) 718 for (int i = 0; i < sz; i++)
724 { 719 {
725 unsigned long t; 720 unsigned long t;
726 if (srclen >= sizeof(t)) 721 if (srclen >= sizeof(t))
727 { 722 {
728 memcpy(&t, src, sizeof(t)); 723 memcpy(&t, src, sizeof(t));
729 // qDebug("[%u]", t); 724 // qDebug("[%u]", t);
730 visited.push_front(t); 725 visited.push_front(t);
731 src += sizeof(t); 726 src += sizeof(t);
732 srclen -= sizeof(t); 727 srclen -= sizeof(t);
733 } 728 }
734 else 729 else
735 { 730 {
736 QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself"); 731 QMessageBox::warning(NULL, PROGNAME, "File data mismatch\nMight fix itself");
737 break; 732 break;
738 } 733 }
739 } 734 }
740 m_nav.putSaveData(src, srclen); 735 m_nav.putSaveData(src, srclen);
741} 736}
742 737
743int CPlucker_base::OpenFile(const char *src) 738int CPlucker_base::OpenFile(const char *src)
744{ 739{
745 m_lastBreak = 0; 740 m_lastBreak = 0;
746 if (!Cpdb::openfile(src)) 741 if (!Cpdb::openfile(src))
747 { 742 {
748 return -1; 743 return -1;
749 } 744 }
750 745
751 if (!CorrectDecoder()) return -1; 746 if (!CorrectDecoder()) return -1;
752 747
753 gotorecordnumber(0); 748 gotorecordnumber(0);
754 fread(&hdr0, 1, 6, fin); 749 fread(&hdr0, 1, 6, fin);
755 setbuffersize(); 750 setbuffersize();
756 compressedtextbuffer = new UInt8[compressedbuffersize]; 751 compressedtextbuffer = new UInt8[compressedbuffersize];
757 expandedtextbuffer = new UInt8[buffersize]; 752 expandedtextbuffer = new UInt8[buffersize];
758 753
759 //qDebug("Total number of records:%u", ntohs(head.recordList.numRecords)); 754 //qDebug("Total number of records:%u", ntohs(head.recordList.numRecords));
760 755
761 unsigned int nrecs = ntohs(hdr0.nRecords); 756 unsigned int nrecs = ntohs(hdr0.nRecords);
762 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs); 757 //qDebug("Version %u, no. recs %u", ntohs(hdr0.version), nrecs);
763 UInt16 homerecid = 1; 758 UInt16 homerecid = 1;
764 for (unsigned int i = 0; i < nrecs; i++) 759 for (unsigned int i = 0; i < nrecs; i++)
765 { 760 {
766 UInt16 id, name; 761 UInt16 id, name;
767 fread(&name, 1, sizeof(name), fin); 762 fread(&name, 1, sizeof(name), fin);
768 fread(&id, 1, sizeof(id), fin); 763 fread(&id, 1, sizeof(id), fin);
769 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id)); 764 //qDebug("N:%d, I:%d", ntohs(name), ntohs(id));
770 if (ntohs(name) == 0) homerecid = ntohs(id); 765 if (ntohs(name) == 0) homerecid = ntohs(id);
771 } 766 }
772 767
773 textlength = 0; 768 textlength = 0;
774 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++) 769 for (int recptr = 1; recptr < ntohs(head.recordList.numRecords); recptr++)
775 { 770 {
776 gotorecordnumber(recptr); 771 gotorecordnumber(recptr);
777 UInt16 thishdr_uid, thishdr_nParagraphs; 772 UInt16 thishdr_uid, thishdr_nParagraphs;
778 UInt32 thishdr_size; 773 UInt32 thishdr_size;
779 UInt8 thishdr_type, thishdr_reserved; 774 UInt8 thishdr_type, thishdr_reserved;
diff --git a/noncore/apps/opie-reader/ppm.cpp b/noncore/apps/opie-reader/ppm.cpp
index e8bf110..1face46 100644
--- a/noncore/apps/opie-reader/ppm.cpp
+++ b/noncore/apps/opie-reader/ppm.cpp
@@ -1,99 +1,98 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <stdio.h> 2#include <stdio.h>
3#include "arith.h"
4#include "ppm.h" 3#include "ppm.h"
5 4
6/**************************************************************************** 5/****************************************************************************
7 * Gestion des noeuds 6 * Gestion des noeuds
8 ****************************************************************************/ 7 ****************************************************************************/
9 8
10/* 9/*
11 * Désallocation du noeud p 10 * Désallocation du noeud p
12 */ 11 */
13 12
14void ppm_worker::Node_Free(UINT p) { 13void ppm_worker::Node_Free(UINT p) {
15 node_heap[node_free_last].free_next=p; 14 node_heap[node_free_last].free_next=p;
16 node_heap[p].free_next=NIL; 15 node_heap[p].free_next=NIL;
17 node_free_last=p; 16 node_free_last=p;
18 node_free_nb++; 17 node_free_nb++;
19} 18}
20 19
21/* 20/*
22 * Allocation d'un noeud 21 * Allocation d'un noeud
23 * s'il ne reste plus de place, on désalloue le contexte le moins utilisé. 22 * s'il ne reste plus de place, on désalloue le contexte le moins utilisé.
24 */ 23 */
25 24
26UINT ppm_worker::Node_Alloc(void) { 25UINT ppm_worker::Node_Alloc(void) {
27 UINT p; 26 UINT p;
28 if (node_free_nb<=2) Context_DeleteLast(); 27 if (node_free_nb<=2) Context_DeleteLast();
29 p=node_free_first; 28 p=node_free_first;
30 node_free_first=node_heap[node_free_first].free_next; 29 node_free_first=node_heap[node_free_first].free_next;
31 node_free_nb--; 30 node_free_nb--;
32#ifdef DEBUG 31#ifdef DEBUG
33 printf("Node_Alloc: p=%d\n",p); 32 printf("Node_Alloc: p=%d\n",p);
34#endif 33#endif
35 return p; 34 return p;
36} 35}
37 36
38/**************************************************************************** 37/****************************************************************************
39 * Gestion des contextes 38 * Gestion des contextes
40 ****************************************************************************/ 39 ****************************************************************************/
41 40
42 41
43/* 42/*
44 * Mise au début de la liste des contextes du contexte c 43 * Mise au début de la liste des contextes du contexte c
45 */ 44 */
46void ppm_worker::Context_MoveFirst(UINT c) { 45void ppm_worker::Context_MoveFirst(UINT c) {
47 NODE *ctx; 46 NODE *ctx;
48 47
49 if (c!=ctx_first) { 48 if (c!=ctx_first) {
50 ctx=&node_heap[c]; 49 ctx=&node_heap[c];
51 /* suppression du contexte dans la liste */ 50 /* suppression du contexte dans la liste */
52 if (c==ctx_last) { 51 if (c==ctx_last) {
53 ctx_last=ctx->hdr.ctx_prev; 52 ctx_last=ctx->hdr.ctx_prev;
54 } else { 53 } else {
55 node_heap[ctx->hdr.ctx_prev].hdr.ctx_next=ctx->hdr.ctx_next; 54 node_heap[ctx->hdr.ctx_prev].hdr.ctx_next=ctx->hdr.ctx_next;
56 node_heap[ctx->hdr.ctx_next].hdr.ctx_prev=ctx->hdr.ctx_prev; 55 node_heap[ctx->hdr.ctx_next].hdr.ctx_prev=ctx->hdr.ctx_prev;
57 } 56 }
58 /* insertion au début de la liste */ 57 /* insertion au début de la liste */
59 node_heap[ctx_first].hdr.ctx_prev=c; 58 node_heap[ctx_first].hdr.ctx_prev=c;
60 ctx->hdr.ctx_next=ctx_first; 59 ctx->hdr.ctx_next=ctx_first;
61 ctx_first=c; 60 ctx_first=c;
62 } 61 }
63} 62}
64 63
65/* 64/*
66 * Destruction du contexte le moins utilisé (ctx_last) 65 * Destruction du contexte le moins utilisé (ctx_last)
67 */ 66 */
68void ppm_worker::Context_DeleteLast(void) { 67void ppm_worker::Context_DeleteLast(void) {
69 NODE *n; 68 NODE *n;
70 UINT h,h_next,node,node_next; 69 UINT h,h_next,node,node_next;
71 USHORT *p; 70 USHORT *p;
72 71
73 n=&node_heap[ctx_last]; 72 n=&node_heap[ctx_last];
74 73
75 /* libération dans la table de hachage. Comme on ne dispose pas de 74 /* libération dans la table de hachage. Comme on ne dispose pas de
76 * pointeur hash_prev dans les contextes, il faut parcourir toute 75 * pointeur hash_prev dans les contextes, il faut parcourir toute
77 * la liste. Heureusement, celle-ci est de longueur faible en moyenne 76 * la liste. Heureusement, celle-ci est de longueur faible en moyenne
78 */ 77 */
79 h_next=n->hdr.hash_next; 78 h_next=n->hdr.hash_next;
80 h=h_next; 79 h=h_next;
81 while (h<HASH_ADDRESS) h=node_heap[h].hdr.hash_next; 80 while (h<HASH_ADDRESS) h=node_heap[h].hdr.hash_next;
82 p=&hash_table[h-HASH_ADDRESS]; 81 p=&hash_table[h-HASH_ADDRESS];
83 while (*p!=ctx_last) p=&node_heap[*p].hdr.hash_next; 82 while (*p!=ctx_last) p=&node_heap[*p].hdr.hash_next;
84 *p=h_next; 83 *p=h_next;
85 84
86 /* libération des noeuds & modification de ctx_last */ 85 /* libération des noeuds & modification de ctx_last */
87 86
88 if (n->hdr.sf_max>=2) { 87 if (n->hdr.sf_max>=2) {
89 node=n->hdr.sf.l.sf_next; 88 node=n->hdr.sf.l.sf_next;
90 while (1) { 89 while (1) {
91 node_next=node_heap[node].sf.sf_next; 90 node_next=node_heap[node].sf.sf_next;
92 Node_Free(node); 91 Node_Free(node);
93 if (node_next==NIL) break; 92 if (node_next==NIL) break;
94 node=node_next; 93 node=node_next;
95 } 94 }
96 } 95 }
97 96
98 node=ctx_last; 97 node=ctx_last;
99 ctx_last=n->hdr.ctx_prev; 98 ctx_last=n->hdr.ctx_prev;
diff --git a/noncore/apps/opie-reader/version.cpp b/noncore/apps/opie-reader/version.cpp
index 3796b67..864e4c1 100644
--- a/noncore/apps/opie-reader/version.cpp
+++ b/noncore/apps/opie-reader/version.cpp
@@ -1,39 +1,37 @@
1#include "version.h" 1#include "version.h"
2#include "names.h"
3#include <qmessagebox.h>
4 2
5bool CheckVersion(int& major, int& bkmktype, char& minor) 3bool CheckVersion(int& major, int& bkmktype, char& minor)
6{ 4{
7 if ( 5 if (
8 (major != MAJOR) 6 (major != MAJOR)
9 || 7 ||
10 (bkmktype != BKMKTYPE) 8 (bkmktype != BKMKTYPE)
11 || 9 ||
12 (minor != MINOR) 10 (minor != MINOR)
13 ) 11 )
14 { 12 {
15 major = MAJOR; 13 major = MAJOR;
16 bkmktype = BKMKTYPE; 14 bkmktype = BKMKTYPE;
17 minor = MINOR; 15 minor = MINOR;
18/* 16/*
19 QMessageBox::warning(NULL, PROGNAME, 17 QMessageBox::warning(NULL, PROGNAME,
20 "This is the first time that you have\n" 18 "This is the first time that you have\n"
21 "run this version of OpieReader.\n\n" 19 "run this version of OpieReader.\n\n"
22 "There are two new icons visible at\n" 20 "There are two new icons visible at\n"
23 "the left end of the toolbar. The left\n" 21 "the left end of the toolbar. The left\n"
24 "one brings up the menus, the next\n" 22 "one brings up the menus, the next\n"
25 "one brings up the settings dialog.\n\n" 23 "one brings up the settings dialog.\n\n"
26 "Start by tapping the settings icon\n" 24 "Start by tapping the settings icon\n"
27 "and selecting the Buttons tab to\n" 25 "and selecting the Buttons tab to\n"
28 "make sure that the buttons are\n" 26 "make sure that the buttons are\n"
29 "mapped as you expect\n\n" 27 "mapped as you expect\n\n"
30 "Next go to Settings/Toolbars via the\n" 28 "Next go to Settings/Toolbars via the\n"
31 "menu icon to set up your toolbars."); 29 "menu icon to set up your toolbars.");
32*/ 30*/
33 return true; 31 return true;
34 } 32 }
35 else 33 else
36 { 34 {
37 return false; 35 return false;
38 } 36 }
39} 37}
diff --git a/noncore/apps/opie-sheet/Excel.cpp b/noncore/apps/opie-sheet/Excel.cpp
index 225c3e1..fc49d56 100644
--- a/noncore/apps/opie-sheet/Excel.cpp
+++ b/noncore/apps/opie-sheet/Excel.cpp
@@ -1,107 +1,104 @@
1 1
2 2
3#include <stdio.h> 3#include <stdio.h>
4#include <stdlib.h> 4#include <stdlib.h>
5#include <math.h> 5#include <math.h>
6#include <time.h> 6#include <time.h>
7#include <sys/types.h> 7#include <sys/types.h>
8#include <strings.h> 8#include <strings.h>
9#include <qstring.h>
10#include <qlist.h>
11#include <qarray.h>
12#include "Excel.h" 9#include "Excel.h"
13 10
14static xfrecord formatter[] = { 11static xfrecord formatter[] = {
15{ 0xe , DATEFORMAT, "%m/%d/%y"}, 12{ 0xe , DATEFORMAT, "%m/%d/%y"},
16{ 0xf , DATEFORMAT, "%d-%b-%y"}, 13{ 0xf , DATEFORMAT, "%d-%b-%y"},
17{ 0x10, DATEFORMAT, "%d-%b"}, 14{ 0x10, DATEFORMAT, "%d-%b"},
18{ 0x11, DATEFORMAT, "%b-%y"}, 15{ 0x11, DATEFORMAT, "%b-%y"},
19{ 0x12, DATEFORMAT, "%I:%M %p"}, 16{ 0x12, DATEFORMAT, "%I:%M %p"},
20{ 0x13, DATEFORMAT, "%I:%M:%S %p"}, 17{ 0x13, DATEFORMAT, "%I:%M:%S %p"},
21{ 0x14, DATEFORMAT, "%H:%M"}, 18{ 0x14, DATEFORMAT, "%H:%M"},
22{ 0x15, DATEFORMAT, "%H:%M:%S"}, 19{ 0x15, DATEFORMAT, "%H:%M:%S"},
23{ 0x16, DATEFORMAT, "%m/%d/%y %H:%M"}, 20{ 0x16, DATEFORMAT, "%m/%d/%y %H:%M"},
24{ 0x2d, DATEFORMAT, "%M:%S"}, 21{ 0x2d, DATEFORMAT, "%M:%S"},
25{ 0x2e, DATEFORMAT, "%H:%M:%S"}, 22{ 0x2e, DATEFORMAT, "%H:%M:%S"},
26{ 0x2f, DATEFORMAT, "%M:%S"}, 23{ 0x2f, DATEFORMAT, "%M:%S"},
27{ 0xa5, DATEFORMAT, "%m/%d/%y %I:%M %p"}, 24{ 0xa5, DATEFORMAT, "%m/%d/%y %I:%M %p"},
28{ 0x1 , NUMBERFORMAT, "%.0f"}, 25{ 0x1 , NUMBERFORMAT, "%.0f"},
29{ 0x2 , NUMBERFORMAT, "%.2f"}, 26{ 0x2 , NUMBERFORMAT, "%.2f"},
30{ 0x3 , NUMBERFORMAT, "#,##%.0f"}, 27{ 0x3 , NUMBERFORMAT, "#,##%.0f"},
31{ 0x4 , NUMBERFORMAT, "#,##%.2f"}, 28{ 0x4 , NUMBERFORMAT, "#,##%.2f"},
32{ 0x5 , NUMBERFORMAT, "$#,##%.0f"}, 29{ 0x5 , NUMBERFORMAT, "$#,##%.0f"},
33{ 0x6 , NUMBERFORMAT, "$#,##%.0f"}, 30{ 0x6 , NUMBERFORMAT, "$#,##%.0f"},
34{ 0x7 , NUMBERFORMAT, "$#,##%.2f"}, 31{ 0x7 , NUMBERFORMAT, "$#,##%.2f"},
35{ 0x8 , NUMBERFORMAT, "$#,##%.2f"}, 32{ 0x8 , NUMBERFORMAT, "$#,##%.2f"},
36{ 0x9 , NUMBERFORMAT, "%.0f%%"}, 33{ 0x9 , NUMBERFORMAT, "%.0f%%"},
37{ 0xa , NUMBERFORMAT, "%.2f%%"}, 34{ 0xa , NUMBERFORMAT, "%.2f%%"},
38{ 0xb , NUMBERFORMAT, "%e"}, 35{ 0xb , NUMBERFORMAT, "%e"},
39{ 0x25, NUMBERFORMAT, "#,##%.0f;(#,##0)"}, 36{ 0x25, NUMBERFORMAT, "#,##%.0f;(#,##0)"},
40{ 0x26, NUMBERFORMAT, "#,##%.0f;(#,##0)"}, 37{ 0x26, NUMBERFORMAT, "#,##%.0f;(#,##0)"},
41{ 0x27, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"}, 38{ 0x27, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"},
42{ 0x28, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"}, 39{ 0x28, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"},
43{ 0x29, NUMBERFORMAT, "#,##%.0f;(#,##0)"}, 40{ 0x29, NUMBERFORMAT, "#,##%.0f;(#,##0)"},
44{ 0x2a, NUMBERFORMAT, "$#,##%.0f;($#,##0)"}, 41{ 0x2a, NUMBERFORMAT, "$#,##%.0f;($#,##0)"},
45{ 0x2b, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"}, 42{ 0x2b, NUMBERFORMAT, "#,##%.2f;(#,##0.00)"},
46{ 0x2c, NUMBERFORMAT, "$#,##%.2f;($#,##0.00)"}, 43{ 0x2c, NUMBERFORMAT, "$#,##%.2f;($#,##0.00)"},
47{ 0x30, NUMBERFORMAT, "##0.0E0"}, 44{ 0x30, NUMBERFORMAT, "##0.0E0"},
48{ 0, 0, ""} 45{ 0, 0, ""}
49}; 46};
50 47
51 48
52 49
53int ExcelBook::Integer2Byte(int b1, int b2) 50int ExcelBook::Integer2Byte(int b1, int b2)
54{ 51{
55 int i1 = b1 & 0xff; 52 int i1 = b1 & 0xff;
56 int i2 = b2 & 0xff; 53 int i2 = b2 & 0xff;
57 int val = i2 << 8 | i1; 54 int val = i2 << 8 | i1;
58 return val; 55 return val;
59}; 56};
60 57
61int ExcelBook::Integer4Byte(int b1,int b2,int b3,int b4) 58int ExcelBook::Integer4Byte(int b1,int b2,int b3,int b4)
62{ 59{
63 int i1 = Integer2Byte(b1, b2); 60 int i1 = Integer2Byte(b1, b2);
64 int i2 = Integer2Byte(b3, b4); 61 int i2 = Integer2Byte(b3, b4);
65 int val = i2 << 16 | i1; 62 int val = i2 << 16 | i1;
66 return val; 63 return val;
67}; 64};
68 65
69int ExcelBook::Integer2ByteFile(FILE *f) { 66int ExcelBook::Integer2ByteFile(FILE *f) {
70 int i1, i2; 67 int i1, i2;
71 i1 = fgetc(f); 68 i1 = fgetc(f);
72 i2 = fgetc(f); 69 i2 = fgetc(f);
73 return Integer2Byte(i1,i2); 70 return Integer2Byte(i1,i2);
74}; 71};
75 72
76float ExcelBook::Float4Byte(int b1, int b2, int b3, int b4) 73float ExcelBook::Float4Byte(int b1, int b2, int b3, int b4)
77{ 74{
78 int i; 75 int i;
79 float f; 76 float f;
80 unsigned char *ieee; 77 unsigned char *ieee;
81 ieee = (unsigned char *) &f; 78 ieee = (unsigned char *) &f;
82 for (i = 0; i < 4; i++) ieee[i] = 0; 79 for (i = 0; i < 4; i++) ieee[i] = 0;
83 ieee[0] = ((int)b4) & 0xff; 80 ieee[0] = ((int)b4) & 0xff;
84 ieee[1] = ((int)b3) & 0xff; 81 ieee[1] = ((int)b3) & 0xff;
85 ieee[2] = ((int)b2) & 0xff; 82 ieee[2] = ((int)b2) & 0xff;
86 ieee[3] = ((int)b1) & 0xff; 83 ieee[3] = ((int)b1) & 0xff;
87 return f; 84 return f;
88}; 85};
89 86
90double ExcelBook::Double4Byte(int b1, int b2, int b3, int b4) 87double ExcelBook::Double4Byte(int b1, int b2, int b3, int b4)
91{ 88{
92 long int rk; 89 long int rk;
93 double value; 90 double value;
94 91
95 rk=Integer4Byte(b1,b2,b3,b4); 92 rk=Integer4Byte(b1,b2,b3,b4);
96 //printf("Double4Bytes:%d,%d,%d,%d\r\n",b1,b2,b3,b4); 93 //printf("Double4Bytes:%d,%d,%d,%d\r\n",b1,b2,b3,b4);
97 if ( (rk & 0x02) != 0) 94 if ( (rk & 0x02) != 0)
98 { 95 {
99 long int intval = rk >> 2; //drops the 2 bits 96 long int intval = rk >> 2; //drops the 2 bits
100 printf("Double4Byte:intval=%d, rk=%d, rk>>2=%d\r\n",intval,rk,rk>>2); 97 printf("Double4Byte:intval=%d, rk=%d, rk>>2=%d\r\n",intval,rk,rk>>2);
101 value = (double) intval; 98 value = (double) intval;
102 printf("Double4Byte: VALUEINT=%f\r\n",value); 99 printf("Double4Byte: VALUEINT=%f\r\n",value);
103 if ( (rk & 0x01) != 0) 100 if ( (rk & 0x01) != 0)
104 { 101 {
105 value /= 100.0; 102 value /= 100.0;
106 }; 103 };
107 return value; 104 return value;
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp
index 3d3c688..1fb2a3d 100644
--- a/noncore/apps/opie-sheet/mainwindow.cpp
+++ b/noncore/apps/opie-sheet/mainwindow.cpp
@@ -1,120 +1,116 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10/* 10/*
11 * Opie Sheet (formerly Sheet/Qt) 11 * Opie Sheet (formerly Sheet/Qt)
12 * by Serdar Ozler <sozler@sitebest.com> 12 * by Serdar Ozler <sozler@sitebest.com>
13 */ 13 */
14 14
15#include "mainwindow.h" 15#include "mainwindow.h"
16 16
17#include <qpe/filemanager.h>
18#include <qpe/qcopenvelope_qws.h>
19#include <qpe/resource.h> 17#include <qpe/resource.h>
20#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
21 19
22#include <qmessagebox.h> 20#include <qmessagebox.h>
23#include <qfile.h>
24#include <qtranslator.h>
25#include <qradiobutton.h> 21#include <qradiobutton.h>
26 22
27#include "cellformat.h" 23#include "cellformat.h"
28#include "numberdlg.h" 24#include "numberdlg.h"
29#include "textdlg.h" 25#include "textdlg.h"
30#include "sortdlg.h" 26#include "sortdlg.h"
31#include "finddlg.h" 27#include "finddlg.h"
32 28
33#define DEFAULT_NUM_ROWS 300 29#define DEFAULT_NUM_ROWS 300
34#define DEFAULT_NUM_COLS (26*3) 30#define DEFAULT_NUM_COLS (26*3)
35#define DEFAULT_NUM_SHEETS 3 31#define DEFAULT_NUM_SHEETS 3
36 32
37MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl) 33MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl)
38 :QMainWindow(parent, n, fl) 34 :QMainWindow(parent, n, fl)
39{ 35{
40 // initialize variables 36 // initialize variables
41 documentModified=FALSE; 37 documentModified=FALSE;
42 38
43 // construct objects 39 // construct objects
44 currentDoc=0; 40 currentDoc=0;
45 fileSelector=new FileSelector("application/sheet-qt", this, QString::null); 41 fileSelector=new FileSelector("application/sheet-qt", this, QString::null);
46 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE); 42 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE);
47 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); 43 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide()));
48 connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &))); 44 connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &)));
49 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &))); 45 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &)));
50 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk &)),this,SLOT(slotImportExcel(const DocLnk &))); 46 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk &)),this,SLOT(slotImportExcel(const DocLnk &)));
51 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide())); 47 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide()));
52 48
53 49
54 listSheets.setAutoDelete(TRUE); 50 listSheets.setAutoDelete(TRUE);
55 51
56 initActions(); 52 initActions();
57 initMenu(); 53 initMenu();
58 initEditToolbar(); 54 initEditToolbar();
59 initFunctionsToolbar(); 55 initFunctionsToolbar();
60 initStandardToolbar(); 56 initStandardToolbar();
61 initSheet(); 57 initSheet();
62 58
63 // set window title 59 // set window title
64 setCaption(tr("Opie Sheet")); 60 setCaption(tr("Opie Sheet"));
65 61
66 // create sheets 62 // create sheets
67 selectorFileNew(DocLnk()); 63 selectorFileNew(DocLnk());
68} 64}
69 65
70MainWindow::~MainWindow() 66MainWindow::~MainWindow()
71{ 67{
72 if (currentDoc) delete currentDoc; 68 if (currentDoc) delete currentDoc;
73} 69}
74 70
75void MainWindow::documentSave(DocLnk *lnkDoc) 71void MainWindow::documentSave(DocLnk *lnkDoc)
76{ 72{
77 FileManager fm; 73 FileManager fm;
78 QByteArray streamBuffer; 74 QByteArray streamBuffer;
79 QDataStream stream(streamBuffer, IO_WriteOnly); 75 QDataStream stream(streamBuffer, IO_WriteOnly);
80 76
81 typeSheet *currentSheet=findSheet(sheet->getName()); 77 typeSheet *currentSheet=findSheet(sheet->getName());
82 if (!currentSheet) 78 if (!currentSheet)
83 { 79 {
84 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); 80 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!"));
85 return; 81 return;
86 } 82 }
87 sheet->copySheetData(&currentSheet->data); 83 sheet->copySheetData(&currentSheet->data);
88 stream.writeRawBytes("SQT100", 6); 84 stream.writeRawBytes("SQT100", 6);
89 stream << (Q_UINT32)listSheets.count(); 85 stream << (Q_UINT32)listSheets.count();
90 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 86 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
91 { 87 {
92 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); 88 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count();
93 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) 89 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next())
94 stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data; 90 stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data;
95 } 91 }
96 92
97 lnkDoc->setType("application/sheet-qt"); 93 lnkDoc->setType("application/sheet-qt");
98 if (!fm.saveFile(*lnkDoc, streamBuffer)) 94 if (!fm.saveFile(*lnkDoc, streamBuffer))
99 { 95 {
100 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); 96 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!"));
101 return; 97 return;
102 } 98 }
103 documentModified=FALSE; 99 documentModified=FALSE;
104} 100}
105 101
106void MainWindow::documentOpen(const DocLnk &lnkDoc) 102void MainWindow::documentOpen(const DocLnk &lnkDoc)
107{ 103{
108 FileManager fm; 104 FileManager fm;
109 QByteArray streamBuffer; 105 QByteArray streamBuffer;
110 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) 106 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer))
111 { 107 {
112 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); 108 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!"));
113 documentModified=FALSE; 109 documentModified=FALSE;
114 selectorFileNew(DocLnk()); 110 selectorFileNew(DocLnk());
115 return; 111 return;
116 } 112 }
117 QDataStream stream(streamBuffer, IO_ReadOnly); 113 QDataStream stream(streamBuffer, IO_ReadOnly);
118 114
119 Q_UINT32 countSheet, countCell, i, j, row, col, alignment; 115 Q_UINT32 countSheet, countCell, i, j, row, col, alignment;
120 typeSheet *newSheet; 116 typeSheet *newSheet;
diff --git a/noncore/apps/opie-sheet/sheet.cpp b/noncore/apps/opie-sheet/sheet.cpp
index e1e4744..f303d33 100644
--- a/noncore/apps/opie-sheet/sheet.cpp
+++ b/noncore/apps/opie-sheet/sheet.cpp
@@ -1,113 +1,112 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10/* 10/*
11 * Opie Sheet (formerly Sheet/Qt) 11 * Opie Sheet (formerly Sheet/Qt)
12 * by Serdar Ozler <sozler@sitebest.com> 12 * by Serdar Ozler <sozler@sitebest.com>
13 */ 13 */
14 14
15#include "sheet.h" 15#include "sheet.h"
16 16
17#include <qmainwindow.h>
18#include <qmessagebox.h> 17#include <qmessagebox.h>
19#include <math.h> 18#include <math.h>
20#include <stdlib.h> 19#include <stdlib.h>
21#include <stdio.h> 20#include <stdio.h>
22#include <time.h> 21#include <time.h>
23 22
24#define DEFAULT_COL_WIDTH 50 23#define DEFAULT_COL_WIDTH 50
25 24
26Sheet::Sheet(int numRows, int numCols, QWidget *parent) 25Sheet::Sheet(int numRows, int numCols, QWidget *parent)
27 :QTable(numRows, numCols, parent) 26 :QTable(numRows, numCols, parent)
28{ 27{
29 defaultBorders.right=defaultBorders.bottom=QPen(Qt::gray, 1, Qt::SolidLine); 28 defaultBorders.right=defaultBorders.bottom=QPen(Qt::gray, 1, Qt::SolidLine);
30 defaultCellData.data=""; 29 defaultCellData.data="";
31 defaultCellData.background=QBrush(Qt::white, Qt::SolidPattern); 30 defaultCellData.background=QBrush(Qt::white, Qt::SolidPattern);
32 defaultCellData.alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop); 31 defaultCellData.alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop);
33 defaultCellData.fontColor=Qt::black; 32 defaultCellData.fontColor=Qt::black;
34 defaultCellData.font=font(); 33 defaultCellData.font=font();
35 defaultCellData.borders=defaultBorders; 34 defaultCellData.borders=defaultBorders;
36 35
37 clicksLocked=FALSE; 36 clicksLocked=FALSE;
38 selectionNo=-1; 37 selectionNo=-1;
39 setSelectionMode(QTable::Single); 38 setSelectionMode(QTable::Single);
40 39
41 sheetData.setAutoDelete(TRUE); 40 sheetData.setAutoDelete(TRUE);
42 clipboardData.setAutoDelete(TRUE); 41 clipboardData.setAutoDelete(TRUE);
43 for (int i=0; i<numCols; ++i) 42 for (int i=0; i<numCols; ++i)
44 horizontalHeader()->setLabel(i, getHeaderString(i+1), DEFAULT_COL_WIDTH); 43 horizontalHeader()->setLabel(i, getHeaderString(i+1), DEFAULT_COL_WIDTH);
45 44
46 45
47 connect(this, SIGNAL(currentChanged(int, int)), this, SLOT(slotCellSelected(int, int))); 46 connect(this, SIGNAL(currentChanged(int, int)), this, SLOT(slotCellSelected(int, int)));
48 connect(this, SIGNAL(valueChanged(int, int)), this, SLOT(slotCellChanged(int, int))); 47 connect(this, SIGNAL(valueChanged(int, int)), this, SLOT(slotCellChanged(int, int)));
49} 48}
50 49
51Sheet::~Sheet() 50Sheet::~Sheet()
52{ 51{
53} 52}
54 53
55typeCellData *Sheet::findCellData(int row, int col) 54typeCellData *Sheet::findCellData(int row, int col)
56{ 55{
57 typeCellData *tempCellData; 56 typeCellData *tempCellData;
58 for (tempCellData=sheetData.first(); tempCellData; tempCellData=sheetData.next()) 57 for (tempCellData=sheetData.first(); tempCellData; tempCellData=sheetData.next())
59 { 58 {
60 if (tempCellData->row==row && tempCellData->col==col) return tempCellData; 59 if (tempCellData->row==row && tempCellData->col==col) return tempCellData;
61 } 60 }
62 return NULL; 61 return NULL;
63} 62}
64 63
65void Sheet::slotCellSelected(int row, int col) 64void Sheet::slotCellSelected(int row, int col)
66{ 65{
67 typeCellData *cellData=findCellData(row, col); 66 typeCellData *cellData=findCellData(row, col);
68 if (cellData) 67 if (cellData)
69 { 68 {
70 emit currentDataChanged(cellData->data); 69 emit currentDataChanged(cellData->data);
71 }else 70 }else
72 emit currentDataChanged(""); 71 emit currentDataChanged("");
73} 72}
74 73
75typeCellData *Sheet::createCellData(int row, int col) 74typeCellData *Sheet::createCellData(int row, int col)
76{ 75{
77 if (row<0 || col<0) return NULL; 76 if (row<0 || col<0) return NULL;
78 typeCellData *cellData=new typeCellData; 77 typeCellData *cellData=new typeCellData;
79 cellData->row=row; 78 cellData->row=row;
80 cellData->col=col; 79 cellData->col=col;
81 cellData->data=defaultCellData.data; 80 cellData->data=defaultCellData.data;
82 cellData->borders=defaultCellData.borders; 81 cellData->borders=defaultCellData.borders;
83 cellData->alignment=defaultCellData.alignment; 82 cellData->alignment=defaultCellData.alignment;
84 cellData->font=defaultCellData.font; 83 cellData->font=defaultCellData.font;
85 cellData->fontColor=defaultCellData.fontColor; 84 cellData->fontColor=defaultCellData.fontColor;
86 cellData->background=defaultCellData.background; 85 cellData->background=defaultCellData.background;
87 sheetData.append(cellData); 86 sheetData.append(cellData);
88 return cellData; 87 return cellData;
89} 88}
90 89
91void Sheet::slotCellChanged(int row, int col) 90void Sheet::slotCellChanged(int row, int col)
92{ 91{
93 typeCellData *cellData=findCellData(row, col); 92 typeCellData *cellData=findCellData(row, col);
94 if (!cellData) cellData=createCellData(row, col); 93 if (!cellData) cellData=createCellData(row, col);
95 if (cellData) cellData->data=text(row, col); 94 if (cellData) cellData->data=text(row, col);
96 for (cellData=sheetData.first(); cellData; cellData=sheetData.next()) 95 for (cellData=sheetData.first(); cellData; cellData=sheetData.next())
97 { 96 {
98 // modified by Toussis Manolis koppermind@panafonet.gr 97 // modified by Toussis Manolis koppermind@panafonet.gr
99 // the parser was crashing if there were no closed parenthesis. 98 // the parser was crashing if there were no closed parenthesis.
100 int w1,ii=0; 99 int w1,ii=0;
101 for(w1=0;w1<=(int)text(row, col).length();w1++) 100 for(w1=0;w1<=(int)text(row, col).length();w1++)
102 { 101 {
103 if(text(row,col)[w1]=='(') ii++; 102 if(text(row,col)[w1]=='(') ii++;
104 if(text(row,col)[w1]==')') ii--; 103 if(text(row,col)[w1]==')') ii--;
105 }; 104 };
106 if(ii==0) setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); 105 if(ii==0) setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data));
107 //end of modification 106 //end of modification
108 // old was plain: 107 // old was plain:
109 //setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); 108 //setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data));
110 }; 109 };
111 emit sheetModified(); 110 emit sheetModified();
112} 111}
113 112