You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
3.8 KiB
179 lines
3.8 KiB
15 years ago
|
/* -------------------------------------------------------------
|
||
|
|
||
|
queryview.h (part of The KDE Dictionary Client)
|
||
|
|
||
|
Copyright (C) 2000-2001 Christian Gebauer <gebauer@kde.org>
|
||
|
|
||
|
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 <qvbox.h>
|
||
|
#include <khtml_part.h>
|
||
|
|
||
|
class QFile;
|
||
|
class KTempFile;
|
||
|
class KPopupMenu;
|
||
|
class DictComboAction;
|
||
|
|
||
|
|
||
|
QString getShortString(QString str,unsigned int length);
|
||
|
|
||
|
|
||
|
//******** SaveHelper *******************************************
|
||
|
|
||
|
|
||
|
class SaveHelper {
|
||
|
|
||
|
public:
|
||
|
|
||
|
SaveHelper(const QString &saveName, const QString &filter, QWidget *parent);
|
||
|
~SaveHelper();
|
||
|
|
||
|
// returns a file open for writing
|
||
|
QFile* getFile(const QString &dialogTitle);
|
||
|
|
||
|
private:
|
||
|
|
||
|
QWidget *p_arent;
|
||
|
QString s_aveName, f_ilter;
|
||
|
KURL url;
|
||
|
QFile* file;
|
||
|
KTempFile* tmpFile;
|
||
|
static QString lastPath;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
//******** BrowseData ******************************************
|
||
|
|
||
|
|
||
|
class BrowseData
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
|
||
|
BrowseData(const QString &Nhtml, const QString &NqueryText);
|
||
|
|
||
|
QString html;
|
||
|
QString queryText;
|
||
|
int xPos,yPos;
|
||
|
};
|
||
|
|
||
|
|
||
|
//********* DictHTMLPart ***************************************
|
||
|
|
||
|
class DictHTMLPart : public KHTMLPart
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
public:
|
||
|
|
||
|
DictHTMLPart(QWidget *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(QWidget *_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 QString &query);
|
||
|
void matchRequested(const QString &query);
|
||
|
void clipboardRequested();
|
||
|
void enableCopy(bool selected); // emited when the user selects/deselects text
|
||
|
void enablePrintSave();
|
||
|
void renderingStarted();
|
||
|
void renderingStopped();
|
||
|
void newCaption(const QString&);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
void paletteChange ( const QPalette & );
|
||
|
void fontChange ( const QFont & );
|
||
|
|
||
|
void saveCurrentResultPos();
|
||
|
void showResult();
|
||
|
|
||
|
protected slots:
|
||
|
|
||
|
void resultReady(const QString &result, const QString &query);
|
||
|
void partCompleted();
|
||
|
void slotURLRequest (const KURL &url, const KParts::URLArgs &args);
|
||
|
void middleButtonClicked();
|
||
|
void buildPopupMenu(const QString &url, const QPoint &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;
|
||
|
QString popupLink,popupSelect; // needed for rightbtn-popup menu
|
||
|
|
||
|
QPtrList<BrowseData> browseList;
|
||
|
unsigned int browsePos; // position in browseList
|
||
|
QString currentHTMLHeader;
|
||
|
|
||
|
bool isRendering;
|
||
|
};
|
||
|
|
||
|
#endif
|