moveToAnchor qt4
This commit is contained in:
parent
8fc223425b
commit
eeefa648b9
@ -1,5 +1,5 @@
|
|||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "@(#$Id: preview_w.cpp,v 1.29 2007-11-15 18:05:32 dockes Exp $ (C) 2005 J.F.Dockes";
|
static char rcsid[] = "@(#$Id: preview_w.cpp,v 1.30 2007-11-15 18:34:49 dockes Exp $ (C) 2005 J.F.Dockes";
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -67,6 +67,47 @@ using std::pair;
|
|||||||
#define wasCanceled wasCancelled
|
#define wasCanceled wasCancelled
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (QT_VERSION < 0x040000)
|
||||||
|
#include <qtextedit.h>
|
||||||
|
#include <private/qrichtext_p.h>
|
||||||
|
#define QTEXTEDIT QTextEdit
|
||||||
|
#define QTEXTCURSOR QTextCursor
|
||||||
|
#define QTEXTPARAGRAPH QTextParagraph
|
||||||
|
#define QTEXTSTRINGCHAR QTextStringChar
|
||||||
|
#else
|
||||||
|
#include <q3textedit.h>
|
||||||
|
#include "q3richtext_p.h"
|
||||||
|
#define QTEXTEDIT Q3TextEdit
|
||||||
|
#define QTEXTCURSOR Q3TextCursor
|
||||||
|
#define QTEXTPARAGRAPH Q3TextParagraph
|
||||||
|
#define QTEXTSTRINGCHAR Q3TextStringChar
|
||||||
|
#endif
|
||||||
|
void QTextEditFixed::moveToAnchor(const QString& name)
|
||||||
|
{
|
||||||
|
if (name.isEmpty())
|
||||||
|
return;
|
||||||
|
sync();
|
||||||
|
QTEXTCURSOR l_cursor(document());
|
||||||
|
QTEXTPARAGRAPH* last = document()->lastParagraph();
|
||||||
|
for (;;) {
|
||||||
|
QTEXTSTRINGCHAR* c = l_cursor.paragraph()->at(l_cursor.index());
|
||||||
|
if(c->isAnchor()) {
|
||||||
|
QString a = c->anchorName();
|
||||||
|
if ( a == name ||
|
||||||
|
(a.contains( '#' ) &&
|
||||||
|
QStringList::split('#', a).contains(name))) {
|
||||||
|
|
||||||
|
*(textCursor()) = l_cursor;
|
||||||
|
ensureCursorVisible();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (l_cursor.paragraph() == last && l_cursor.atParagEnd())
|
||||||
|
break;
|
||||||
|
l_cursor.gotoNextLetter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Preview::init()
|
void Preview::init()
|
||||||
{
|
{
|
||||||
setName("Preview");
|
setName("Preview");
|
||||||
@ -84,7 +125,6 @@ void Preview::init()
|
|||||||
QVBoxLayout *unnamedLayout =
|
QVBoxLayout *unnamedLayout =
|
||||||
new QVBoxLayout(unnamed, 0, 6, "unnamedLayout");
|
new QVBoxLayout(unnamed, 0, 6, "unnamedLayout");
|
||||||
QTextEditFixed *pvEdit = new QTextEditFixed(unnamed, "pvEdit");
|
QTextEditFixed *pvEdit = new QTextEditFixed(unnamed, "pvEdit");
|
||||||
pvEdit->setFocusPolicy(QTextEdit::WheelFocus);
|
|
||||||
pvEdit->setReadOnly(TRUE);
|
pvEdit->setReadOnly(TRUE);
|
||||||
pvEdit->setUndoRedoEnabled(FALSE);
|
pvEdit->setUndoRedoEnabled(FALSE);
|
||||||
unnamedLayout->addWidget(pvEdit);
|
unnamedLayout->addWidget(pvEdit);
|
||||||
@ -114,7 +154,6 @@ void Preview::init()
|
|||||||
previewLayout->addLayout(layout3);
|
previewLayout->addLayout(layout3);
|
||||||
|
|
||||||
resize(QSize(640, 480).expandedTo(minimumSizeHint()));
|
resize(QSize(640, 480).expandedTo(minimumSizeHint()));
|
||||||
clearWState(WState_Polished);
|
|
||||||
|
|
||||||
// buddies
|
// buddies
|
||||||
searchLabel->setBuddy(searchTextLine);
|
searchLabel->setBuddy(searchTextLine);
|
||||||
@ -300,6 +339,7 @@ void Preview::doSearch(const QString &_text, bool next, bool reverse,
|
|||||||
QString aname =
|
QString aname =
|
||||||
QString::fromUtf8(termAnchorName(m_curAnchor).c_str());
|
QString::fromUtf8(termAnchorName(m_curAnchor).c_str());
|
||||||
edit->moveToAnchor(aname);
|
edit->moveToAnchor(aname);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If next is false, the user added characters to the current
|
// If next is false, the user added characters to the current
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#ifndef _PREVIEW_W_H_INCLUDED_
|
#ifndef _PREVIEW_W_H_INCLUDED_
|
||||||
#define _PREVIEW_W_H_INCLUDED_
|
#define _PREVIEW_W_H_INCLUDED_
|
||||||
/* @(#$Id: preview_w.h,v 1.16 2007-11-15 18:05:32 dockes Exp $ (C) 2006 J.F.Dockes */
|
/* @(#$Id: preview_w.h,v 1.17 2007-11-15 18:34:49 dockes Exp $ (C) 2006 J.F.Dockes */
|
||||||
/*
|
/*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -32,41 +32,23 @@ class QPushButton;
|
|||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QTextEditFixed;
|
class QTextEditFixed;
|
||||||
|
|
||||||
|
#if (QT_VERSION < 0x040000)
|
||||||
#include <qtextedit.h>
|
#include <qtextedit.h>
|
||||||
#include <private/qrichtext_p.h>
|
#include <private/qrichtext_p.h>
|
||||||
class QTextEditFixed : public QTextEdit {
|
#define QTEXTEDIT QTextEdit
|
||||||
|
#else
|
||||||
|
#include <q3textedit.h>
|
||||||
|
#include <q3richtext_p.h>
|
||||||
|
#define QTEXTEDIT Q3TextEdit
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class QTextEditFixed : public QTEXTEDIT {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
QTextEditFixed( QWidget* parent=0, const char* name=0 )
|
QTextEditFixed( QWidget* parent=0, const char* name=0 )
|
||||||
: QTextEdit(parent, name)
|
: QTEXTEDIT(parent, name)
|
||||||
{}
|
{}
|
||||||
void moveToAnchor(const QString& name)
|
void moveToAnchor(const QString& name);
|
||||||
{
|
|
||||||
if (name.isEmpty())
|
|
||||||
return;
|
|
||||||
sync();
|
|
||||||
QTextCursor l_cursor(document());
|
|
||||||
QTextParagraph* last = document()->lastParagraph();
|
|
||||||
for (;;) {
|
|
||||||
QTextStringChar* c = l_cursor.paragraph()->at(l_cursor.index());
|
|
||||||
if(c->isAnchor()) {
|
|
||||||
QString a = c->anchorName();
|
|
||||||
fprintf(stderr, "QTextEdit::scrollToAnchor: anchor nm [%s]\n",
|
|
||||||
(const char *)a.ascii());
|
|
||||||
if ( a == name ||
|
|
||||||
(a.contains( '#' ) &&
|
|
||||||
QStringList::split('#', a).contains(name))) {
|
|
||||||
|
|
||||||
*(textCursor()) = l_cursor;
|
|
||||||
ensureCursorVisible();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (l_cursor.paragraph() == last && l_cursor.atParagEnd())
|
|
||||||
break;
|
|
||||||
l_cursor.gotoNextLetter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user