-rw-r--r-- | noncore/apps/opie-reader/Bkmks.cpp | 18 | ||||
-rw-r--r-- | noncore/apps/opie-reader/Bkmks.h | 7 | ||||
-rw-r--r-- | noncore/apps/opie-reader/StyleConsts.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-reader/StyleConsts.h | 8 |
4 files changed, 29 insertions, 11 deletions
diff --git a/noncore/apps/opie-reader/Bkmks.cpp b/noncore/apps/opie-reader/Bkmks.cpp index 440d8be..28f6318 100644 --- a/noncore/apps/opie-reader/Bkmks.cpp +++ b/noncore/apps/opie-reader/Bkmks.cpp @@ -1,70 +1,86 @@ #include <qmessagebox.h> #include "Bkmks.h" #include "StyleConsts.h" #include "Markups.h" #include "my_list.h" #include "version.h" #include "names.h" const unsigned long BkmkFile::magic = ((unsigned long)'q' << 24) | ((unsigned long)'t' << 16) | ((unsigned long)'r' << 8) | ((unsigned long)BKMKTYPE); -Bkmk::Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p) +Bkmk::Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p) : + m_name(0), + m_namelen(0), + m_anno(0), + m_annolen(0), + m_position(0) { init(_nm, _nmlen, _anno, _annolen, _p); } Bkmk::Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short annolen, unsigned int _p) : m_position(_p) { init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, annolen, _p); } +Bkmk::Bkmk(const Bkmk& rhs) : + m_name(0), + m_namelen(0), + m_anno(0), + m_annolen(0), + m_position(0) +{ + init(rhs.name(), sizeof(tchar)*(ustrlen(rhs.name())+1), rhs.anno(), + sizeof(tchar)*(ustrlen(rhs.anno())+1), rhs.value()); +} + Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p) : m_position(_p) { if (_anno == NULL) { tchar t = 0; init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), &t, sizeof(t), _p); } else { init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, sizeof(tchar)*(ustrlen(_anno)+1), _p); } } Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p, unsigned int _p2) : m_position(_p) { if (_anno == NULL) { tchar t = 0; init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), &t, sizeof(t), _p); } else { init(_nm, sizeof(tchar)*(ustrlen(_nm)+1), _anno, sizeof(tchar)*(ustrlen(_anno)+1), _p); } m_position2 = _p2; m_red = m_green = m_blue = 127; } void Bkmk::init(const void* _nm, unsigned short _nmlen, const void* _anno, unsigned short _annolen, unsigned int _p) { m_namelen = _nmlen; if (m_namelen > 0) { m_name = new unsigned char[m_namelen]; memcpy(m_name, _nm, m_namelen); } else { m_name = NULL; } m_annolen = _annolen; if (m_annolen > 0) { m_anno = new unsigned char[m_annolen]; memcpy(m_anno, _anno, m_annolen); } else diff --git a/noncore/apps/opie-reader/Bkmks.h b/noncore/apps/opie-reader/Bkmks.h index c2275e2..985e158 100644 --- a/noncore/apps/opie-reader/Bkmks.h +++ b/noncore/apps/opie-reader/Bkmks.h @@ -1,79 +1,76 @@ #ifndef __Bkmks_h #define __Bkmks_h #include "config.h" #include "Filedata.h" #include <stdio.h> template<class T> class CList; class Bkmk { friend class BkmkFile; unsigned char* m_name; unsigned short m_namelen; unsigned char* m_anno; unsigned short m_annolen; unsigned int m_position; unsigned int m_position2; unsigned char m_red,m_green,m_blue, m_level; void init(const void*, unsigned short, const void*, unsigned short, unsigned int); public: - Bkmk() : m_name(NULL), m_namelen(0), m_anno(NULL), m_annolen(0), m_position(0) {}; + Bkmk() : m_name(0), m_namelen(0), m_anno(0), m_annolen(0), m_position(0) {}; Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p); Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short _annolen, unsigned int _p); Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p); Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p, unsigned int _p2); - Bkmk(const Bkmk& rhs) : m_name(NULL), m_anno(NULL) - { - *this = rhs; - } + Bkmk(const Bkmk& rhs); ~Bkmk(); unsigned int value() const { return m_position; } void value(unsigned int _v) { m_position = _v; } unsigned int value2() const { return m_position2; } void value2(unsigned int _v) { m_position2 = _v; } unsigned char red() { return m_red; } unsigned char green() { return m_green; } unsigned char blue() { return m_blue; } void red(unsigned char _v) { m_red = _v; } void green(unsigned char _v) { m_green = _v; } void blue(unsigned char _v) { m_blue = _v; } unsigned char level() { return m_level; } void level(unsigned char _v) { m_level = _v; } tchar *name() const { return (tchar*)m_name; } tchar *anno() const { return (tchar*)m_anno; } bool operator<(const Bkmk& rhs) { return (m_position < rhs.m_position); } Bkmk& operator=(const Bkmk& rhs); bool operator==(const Bkmk& rhs); void setAnno(tchar* t); void setAnno(unsigned char* t, unsigned short len); unsigned char* filedata() { CFiledata fd(anno()); return m_anno+fd.length(); } unsigned short filedatalen() { CFiledata fd(anno()); return m_annolen - fd.length(); } }; class BkmkFile { FILE* f; bool wt; bool isUpgraded, m_extras; static const unsigned long magic; private: static Bkmk* read07(BkmkFile*, FILE*); static Bkmk* read06(BkmkFile*, FILE*); static Bkmk* read05(BkmkFile*, FILE*); static Bkmk* read03(BkmkFile*, FILE*); CList<Bkmk>* readall00(Bkmk*(*fn)(BkmkFile*, FILE*)); void write(const Bkmk& b); public: bool upgraded() { return isUpgraded; } BkmkFile(const char *fnm, bool w, bool _x); diff --git a/noncore/apps/opie-reader/StyleConsts.cpp b/noncore/apps/opie-reader/StyleConsts.cpp index 77c9d3b..c19fa3d 100644 --- a/noncore/apps/opie-reader/StyleConsts.cpp +++ b/noncore/apps/opie-reader/StyleConsts.cpp @@ -1,54 +1,61 @@ #include <qimage.h> #include "StyleConsts.h" GraphicLink::~GraphicLink() { delete graphic; } +pmstore::pmstore(bool _canScale, QImage* p, bool isLnk, unsigned long tgt) : + count(1), + m_isScaleable(_canScale) +{ + graphic = new GraphicLink(p, isLnk, tgt); +} + pmstore::~pmstore() { //// qDebug("Deleting image"); delete graphic; } CStyle::~CStyle() { if (graphic != NULL) { if (--(graphic->count) == 0) { delete graphic; } } } CStyle::CStyle(const CStyle& rhs) : graphic(NULL) { *this = rhs; } CStyle& CStyle::operator=(const CStyle& rhs) { if (rhs.graphic != NULL) { (rhs.graphic->count)++; if (graphic != NULL) { if (--(graphic->count) == 0) { delete graphic; } } graphic = rhs.graphic; } else { if (graphic != NULL) { if (--(graphic->count) == 0) { delete graphic; } graphic = NULL; } } sty = rhs.sty; diff --git a/noncore/apps/opie-reader/StyleConsts.h b/noncore/apps/opie-reader/StyleConsts.h index 4b7ff4b..5fd9669 100644 --- a/noncore/apps/opie-reader/StyleConsts.h +++ b/noncore/apps/opie-reader/StyleConsts.h @@ -1,80 +1,78 @@ #ifndef __STYLECONSTS_H #define __STYLECONSTS_H typedef unsigned short StyleType; #ifdef _WINDOWS #include <string.h> #endif #include <string.h> #include <stdlib.h> #include <qglobal.h> class QImage; struct GraphicLink { QImage* graphic; bool isLink; unsigned long link; GraphicLink(QImage* p, bool isLnk, unsigned long tgt) : graphic(p), isLink(isLnk), link(tgt) {} ~GraphicLink(); }; -struct pmstore +class pmstore { + public: unsigned int count; bool m_isScaleable; GraphicLink* graphic; - pmstore(bool _canScale, QImage* p, bool isLnk, unsigned long tgt) : count(1), m_isScaleable(_canScale) - { - graphic = new GraphicLink(p, isLnk, tgt); - } + pmstore(bool _canScale, QImage* p, bool isLnk, unsigned long tgt); ~pmstore(); }; enum EalignmentType { m_AlignLeft, m_AlignRight, m_AlignCentre, m_AlignJustify, m_AlignNone }; class CBasicStyle { friend class CStyle; bool m_bold, m_italic; unsigned long m_table; int m_fontsize; EalignmentType m_align; unsigned char red, green, blue; unsigned char bred, bgreen, bblue; unsigned char pred, pgreen, pblue; unsigned long data; unsigned long offset; bool isLink; // bool isVisited; bool m_underline; bool m_strikethru; bool m_monospaced; unsigned char m_leftmargin, m_rightmargin; signed char m_extraspace; signed char m_voffset; CBasicStyle() { unset(); m_table = 0xffffffff; } bool operator!=(const CBasicStyle& rhs) { return (memcmp(this, &rhs, sizeof(CBasicStyle)) != 0); } void unset() { m_bold = false; m_italic = false; m_fontsize = 0; m_align = m_AlignLeft; |