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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
/* -------------------------------------------------------------
queryview.h (part of The KDE Dictionary Client)
Copyright (C) 2000-2001 Christian Gebauer <[email protected]>
This file is distributed under the Artistic License.
See LICENSE for details.
-------------------------------------------------------------
SaveHelper network transparent file saving
BrowseData data structure used for caching definitions
DictHTMLPart handling of middle mouse button clicks
QueryView widget that displays the definitions
------------------------------------------------------------- */
#ifndef _QUERYVIEW_H_
#define _QUERYVIEW_H_
#include <tqvbox.h>
#include <khtml_part.h>
class TQFile;
class KTempFile;
class KPopupMenu;
class DictComboAction;
TQString getShortString(TQString str,unsigned int length);
//******** SaveHelper *******************************************
class SaveHelper {
public:
SaveHelper(const TQString &saveName, const TQString &filter, TQWidget *parent);
~SaveHelper();
// returns a file open for writing
TQFile* getFile(const TQString &dialogTitle);
private:
TQWidget *p_arent;
TQString s_aveName, f_ilter;
KURL url;
TQFile* file;
KTempFile* tmpFile;
static TQString lastPath;
};
//******** BrowseData ******************************************
class BrowseData
{
public:
BrowseData(const TQString &Nhtml, const TQString &NqueryText);
TQString html;
TQString queryText;
int xPos,yPos;
};
//********* DictHTMLPart ***************************************
class DictHTMLPart : public KHTMLPart
{
Q_OBJECT
public:
DictHTMLPart(TQWidget *parentWidget = 0, const char *widgetname = 0);
~DictHTMLPart();
signals:
void middleButtonClicked();
protected:
virtual void khtmlMouseReleaseEvent(khtml::MouseReleaseEvent *event);
};
//********* QueryView ******************************************
class QueryView : public QVBox
{
Q_OBJECT
public:
QueryView(TQWidget *_parent = 0L);
~QueryView();
void setActions(KToolBarPopupAction* NactBack, KToolBarPopupAction* NactForward, DictComboAction* NactQueryCombo);
bool browseBackPossible() const;
bool browseForwardPossible() const;
void stop();
public slots:
void optionsChanged();
void printQuery();
void saveQuery();
void browseBack();
void browseForward();
void selectAll();
void copySelection();
void showFindDialog();
signals:
void defineRequested(const TQString &query);
void matchRequested(const TQString &query);
void clipboardRequested();
void enableCopy(bool selected); // emited when the user selects/deselects text
void enablePrintSave();
void renderingStarted();
void renderingStopped();
void newCaption(const TQString&);
protected:
void paletteChange ( const TQPalette & );
void fontChange ( const TQFont & );
void saveCurrentResultPos();
void showResult();
protected slots:
void resultReady(const TQString &result, const TQString &query);
void partCompleted();
void slotURLRequest (const KURL &url, const KParts::URLArgs &args);
void middleButtonClicked();
void buildPopupMenu(const TQString &url, const TQPoint &point);
void popupDefineLink();
void popupMatchLink();
void popupOpenLink();
void popupDefineSelect();
void popupMatchSelect();
void popupDbInfo();
void enableAction(const char *, bool);
void browseBack(int);
void browseForward(int);
void updateBrowseActions();
private:
DictHTMLPart *part; // Widgets
KToolBarPopupAction *actBack, *actForward;
DictComboAction *actQueryCombo;
KPopupMenu *rightBtnMenu;
TQString popupLink,popupSelect; // needed for rightbtn-popup menu
TQPtrList<BrowseData> browseList;
unsigned int browsePos; // position in browseList
TQString currentHTMLHeader;
bool isRendering;
};
#endif
|