00001
#ifndef _DOC_CONVERTER_H
00002
#define _DOC_CONVERTER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
#define DOC_UNCOMPRESSED 1
00033
#define DOC_COMPRESSED 2
00034
00035
00036
#define BMK_SUFFIX ".bmk"
00037
#define PDBBMK_SUFFIX ".bm"
00038
00039
#include <qptrlist.h>
00040
#include <qobject.h>
00041
#include "options.h"
00042
00043
00044
class PilotDatabase;
00045
00046
00047
00048
00049
00050
00051
00052
00053
class docBookmark;
00054
#define bmkList QPtrList<docBookmark>
00055
#define bmkSortedList QSortedList<docBookmark>
00056
00057
class docBookmark {
00058
public:
00059
static bool compare_pos;
00060 docBookmark():bmkName(), position(0) { };
00061 docBookmark(QString name,
long int pos):bmkName(name), position(pos) { };
00062 docBookmark(
const docBookmark &bmk):bmkName(bmk.bmkName),position(bmk.position){};
00063
virtual ~ docBookmark() { };
00064
virtual int findMatches(QString, bmkList &fBookmarks) {
00065 FUNCTIONSETUP;
00066 fBookmarks.append(
new docBookmark(*
this));
00067
return 1;
00068 };
00069
00070 QString bmkName;
00071
long int position;
00072 };
00073
00074
class docMatchBookmark:
public docBookmark {
00075
public:
00076 docMatchBookmark():docBookmark() { from=0; to=100;};
00077 docMatchBookmark(QString pattrn,
int options=0):docBookmark(),
00078 pattern(pattrn), opts(options) { from=0; to=100; };
00079 docMatchBookmark(QString pattrn, QString bmkname,
00080
int options=0):docBookmark(bmkname, 0), pattern(pattrn),
00081 opts(options) { from=0; to=100; };
00082
virtual ~ docMatchBookmark() { };
00083
00084
virtual int findMatches(QString, bmkList &fBookmarks);
00085 QString pattern;
00086
int opts;
00087
int from, to;
00088 };
00089
00090
class docRegExpBookmark:
public docMatchBookmark {
00091
public:
00092 docRegExpBookmark():docMatchBookmark() { capSubexpression=-1;};
00093 docRegExpBookmark(QString regexp,
int cap=0,
00094
int options=0):docMatchBookmark(regexp, options) {capSubexpression=cap; };
00095 docRegExpBookmark(QString pattrn, QString bmkname,
00096
int options=0):docMatchBookmark(pattrn, bmkname, options) { capSubexpression=-1; };
00097
virtual ~ docRegExpBookmark() { };
00098
00099
virtual int findMatches(QString, bmkList &fBookmarks);
00100
int capSubexpression;
00101 };
00102
00103
00104
00105
00106
00107
00108
class DOCConverter:
public QObject {
00109 Q_OBJECT
00110
private:
00111
PilotDatabase * docdb;
00112 QString txtfilename;
00113 QString bmkfilename;
00114
bool compress;
00115
00116 bmkList fBookmarks;
00117
public:
00118
enum eSortBookmarksEnum
00119 {
00120 eSortNone,
00121 eSortPos,
00122 eSortName
00123 } eSortBookmarks;
00124
00125
public:
00126 DOCConverter(QObject *parent=0L,
const char *name=0L);
00127
virtual ~ DOCConverter();
00128
00129 QString readText();
00130
void setTXTpath(QString path, QString file);
00131
void setTXTpath(QString filename);
00132
void setPDB(
PilotDatabase * dbi);
00133 QString txtFilename()
const {
return txtfilename;}
00134 QString bmkFilename()
const {
return bmkfilename;}
00135
void setBmkFilename(QString bmkf) { bmkfilename=bmkf;}
00136
00137
bool getCompress()
const {
return compress; };
00138
void setCompress(
bool newcomp) {compress=newcomp;};
00139
00140
bool convertTXTtoPDB();
00141
bool convertPDBtoTXT();
00142
00143
int setBookmarks(bmkList bookmarks) {
00144 fBookmarks = bookmarks;
00145
return fBookmarks.count();
00146 };
00147
int clearBookmarks() {
00148 fBookmarks.clear();
00149
return fBookmarks.count();
00150 };
00151
int addBookmark(docBookmark*bookmark) {
00152 fBookmarks.append(bookmark);
00153
return fBookmarks.count();
00154 };
00155
00156
int findBmkEndtags(QString &, bmkList&);
00157
int findBmkInline(QString &, bmkList&);
00158
int findBmkFile(QString &, bmkList&);
00159
00160
00161
void setSort(
enum eSortBookmarksEnum sort) {eSortBookmarks=sort;}
00162
enum eSortBookmarksEnum getSort() {
return eSortBookmarks;}
00163
00164
enum eBmkTypesEnum {
00165 eBmkNone = 0,
00166 eBmkFile = 1,
00167 eBmkInline = 2,
00168 eBmkEndtags = 4,
00169 eBmkDefaultBmkFile = 8
00170 } fBmkTypes;
00171
void setBookmarkTypes(
int types) {
00172 fBmkTypes = (eBmkTypesEnum) types;
00173 };
00174
00175
protected:
00176
int findBookmarks();
00177
00178
private:
00179
void readConfig();
00180 signals:
00181
void logMessage(
const QString &);
00182
void logError(
const QString &);
00183 };
00184
00185
#endif