• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kopete/kopete

  • sources
  • kde-4.14
  • kdenetwork
  • kopete
  • kopete
  • chatwindow
  • a11y
accessiblechatmessagepart.cpp
Go to the documentation of this file.
1 /*
2  Copyright 2011 José Millán Soto <fid@gpul.org>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #include "accessiblechatmessagepart.h"
19 #include <khtml_part.h>
20 #include <khtmlview.h>
21 #include <dom/html_document.h>
22 
23 #if QT_VERSION >= 0x40800
24 QString Q_GUI_EXPORT qTextAfterOffsetFromString( int offset, QAccessible2::BoundaryType boundaryType,
25  int *startOffset, int *endOffset, const QString& text );
26 QString Q_GUI_EXPORT qTextBeforeOffsetFromString( int offset, QAccessible2::BoundaryType boundaryType,
27  int *startOffset, int *endOffset, const QString& text );
28 QString Q_GUI_EXPORT qTextAtOffsetFromString( int offset, QAccessible2::BoundaryType boundaryType,
29  int *startOffset, int *endOffset, const QString& text );
30 #endif
31 
32 AccessibleChatMessagePart::AccessibleChatMessagePart( KHTMLView* widget ):
33  QAccessibleWidgetEx( widget, QAccessible::Document )
34 {
35  m_part = widget->part();
36 }
37 
38 int AccessibleChatMessagePart::childCount() const
39 {
40  return 0;
41 }
42 
43 int AccessibleChatMessagePart::navigate(QAccessible::RelationFlag rel, int entry, QAccessibleInterface** target) const
44 {
45  if (rel == QAccessible::Child) {
46  *target = 0;
47  return -1;
48  }
49  return QAccessibleWidgetEx::navigate(rel, entry, target);
50 }
51 
52 int AccessibleChatMessagePart::characterCount()
53 {
54  return plainText().length();
55 }
56 
57 int AccessibleChatMessagePart::selectionCount()
58 {
59  return m_part->hasSelection() ? 1 : 0;
60 }
61 
62 void AccessibleChatMessagePart::addSelection( int startOffset, int endOffset )
63 {
64 }
65 
66 void AccessibleChatMessagePart::removeSelection( int selectionIndex )
67 {
68 }
69 
70 void AccessibleChatMessagePart::setSelection( int selectionIndex, int startOffset, int endOffset )
71 {
72 }
73 
74 void AccessibleChatMessagePart::setCursorPosition( int position )
75 {
76 }
77 
78 QString AccessibleChatMessagePart::plainText() const
79 {
80  DOM::Node body = m_part->htmlDocument().getElementsByTagName("body").item(0);
81 
82  if (body.isNull())
83  return m_part->documentSource();
84 
85  QString text = body.textContent().string();
86 
87  //Usually textContent has a lot of superfluous lines and spaces
88  QStringList lines = text.split(QChar('\n'));
89  lines = lines.replaceInStrings(QRegExp(QLatin1String("^\\s+")), QString());
90  lines.removeAll(QString());
91 
92  return lines.join(QLatin1String("\n"));
93 }
94 
95 QString AccessibleChatMessagePart::text( int startOffset, int endOffset )
96 {
97  QString text = plainText();
98  text.truncate( endOffset );
99  text.remove( 0, startOffset );
100  return text;
101 }
102 
103 QString AccessibleChatMessagePart::attributes( int offset, int* startOffset, int* endOffset )
104 {
105  return QString();
106 }
107 
108 void AccessibleChatMessagePart::selection( int selectionIndex, int* startOffset, int* endOffset )
109 {
110  *startOffset = -1;
111  *endOffset = -1;
112 }
113 
114 QRect AccessibleChatMessagePart::characterRect( int offset, QAccessible2::CoordinateType coordType )
115 {
116  return QRect();
117 }
118 
119 int AccessibleChatMessagePart::offsetAtPoint( const QPoint& point, QAccessible2::CoordinateType coordType )
120 {
121  return 0;
122 }
123 
124 int AccessibleChatMessagePart::cursorPosition()
125 {
126  return 0;
127 }
128 
129 void AccessibleChatMessagePart::scrollToSubstring( int startIndex, int endIndex )
130 {
131 }
132 
133 QString AccessibleChatMessagePart::textAfterOffset( int offset, QAccessible2::BoundaryType boundaryType, int* startOffset, int* endOffset )
134 {
135 #if QT_VERSION >= 0x40800
136  return qTextAfterOffsetFromString( offset, boundaryType, startOffset, endOffset, plainText() );
137 #else
138  return QString();
139 #endif
140 }
141 
142 QString AccessibleChatMessagePart::textBeforeOffset( int offset, QAccessible2::BoundaryType boundaryType, int* startOffset, int* endOffset )
143 {
144 #if QT_VERSION >= 0x40800
145  return qTextBeforeOffsetFromString( offset, boundaryType, startOffset, endOffset, plainText() );
146 #else
147  return QString();
148 #endif
149 }
150 
151 QString AccessibleChatMessagePart::textAtOffset( int offset, QAccessible2::BoundaryType boundaryType, int* startOffset, int* endOffset )
152 {
153 #if QT_VERSION >= 0x40800
154  return qTextAtOffsetFromString( offset, boundaryType, startOffset, endOffset, plainText() );
155 #else
156  return QString();
157 #endif
158 }
QString::truncate
void truncate(int position)
AccessibleChatMessagePart::navigate
virtual int navigate(RelationFlag rel, int entry, QAccessibleInterface **target) const
Definition: accessiblechatmessagepart.cpp:43
QChar
QString::split
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
AccessibleChatMessagePart::selection
virtual void selection(int selectionIndex, int *startOffset, int *endOffset)
Definition: accessiblechatmessagepart.cpp:108
QAccessibleInterface
QPoint
QStringList::join
QString join(const QString &separator) const
QString::remove
QString & remove(int position, int n)
AccessibleChatMessagePart::cursorPosition
virtual int cursorPosition()
Definition: accessiblechatmessagepart.cpp:124
AccessibleChatMessagePart::textBeforeOffset
virtual QString textBeforeOffset(int offset, QAccessible2::BoundaryType boundaryType, int *startOffset, int *endOffset)
Definition: accessiblechatmessagepart.cpp:142
AccessibleChatMessagePart::attributes
virtual QString attributes(int offset, int *startOffset, int *endOffset)
Definition: accessiblechatmessagepart.cpp:103
AccessibleChatMessagePart::selectionCount
virtual int selectionCount()
Definition: accessiblechatmessagepart.cpp:57
accessiblechatmessagepart.h
QRegExp
AccessibleChatMessagePart::textAfterOffset
virtual QString textAfterOffset(int offset, QAccessible2::BoundaryType boundaryType, int *startOffset, int *endOffset)
Definition: accessiblechatmessagepart.cpp:133
QRect
AccessibleChatMessagePart::text
virtual QString text(int startOffset, int endOffset)
Definition: accessiblechatmessagepart.cpp:95
QAccessible
AccessibleChatMessagePart::characterCount
virtual int characterCount()
Definition: accessiblechatmessagepart.cpp:52
QAccessibleWidgetEx
QList::removeAll
int removeAll(const T &value)
AccessibleChatMessagePart::childCount
virtual int childCount() const
Definition: accessiblechatmessagepart.cpp:38
QStringList::replaceInStrings
QStringList & replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs)
QString
AccessibleChatMessagePart::addSelection
virtual void addSelection(int startOffset, int endOffset)
Definition: accessiblechatmessagepart.cpp:62
QStringList
AccessibleChatMessagePart::setSelection
virtual void setSelection(int selectionIndex, int startOffset, int endOffset)
Definition: accessiblechatmessagepart.cpp:70
AccessibleChatMessagePart::scrollToSubstring
virtual void scrollToSubstring(int startIndex, int endIndex)
Definition: accessiblechatmessagepart.cpp:129
AccessibleChatMessagePart::removeSelection
virtual void removeSelection(int selectionIndex)
Definition: accessiblechatmessagepart.cpp:66
QLatin1String
QString::length
int length() const
AccessibleChatMessagePart::textAtOffset
virtual QString textAtOffset(int offset, QAccessible2::BoundaryType boundaryType, int *startOffset, int *endOffset)
Definition: accessiblechatmessagepart.cpp:151
AccessibleChatMessagePart::AccessibleChatMessagePart
AccessibleChatMessagePart(KHTMLView *widget)
Definition: accessiblechatmessagepart.cpp:32
AccessibleChatMessagePart::characterRect
virtual QRect characterRect(int offset, QAccessible2::CoordinateType coordType)
Definition: accessiblechatmessagepart.cpp:114
AccessibleChatMessagePart::setCursorPosition
virtual void setCursorPosition(int)
Definition: accessiblechatmessagepart.cpp:74
AccessibleChatMessagePart::offsetAtPoint
virtual int offsetAtPoint(const QPoint &point, QAccessible2::CoordinateType coordType)
Definition: accessiblechatmessagepart.cpp:119
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:29:07 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kopete/kopete

Skip menu "kopete/kopete"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal