Fix a11y crash: dock doesn't always have a widget.
Also return dock widget title. Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> (cherry picked from commit 276d16583b80da2838f9af47e15fe3a83cdb0485) Change-Id: I8d66bec4212cc2b1df8c9b041375d7455c6a76a3 Reviewed-on: http://codereview.qt.nokia.com/3023 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
This commit is contained in:
parent
910e1bf415
commit
90fd142c93
@ -73,6 +73,9 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
using namespace QAccessible2;
|
using namespace QAccessible2;
|
||||||
|
|
||||||
|
QString Q_GUI_EXPORT qt_accStripAmp(const QString &text);
|
||||||
|
QString Q_GUI_EXPORT qt_accHotKey(const QString &text);
|
||||||
|
|
||||||
QList<QWidget*> childWidgets(const QWidget *widget, bool includeTopLevel)
|
QList<QWidget*> childWidgets(const QWidget *widget, bool includeTopLevel)
|
||||||
{
|
{
|
||||||
if (widget == 0)
|
if (widget == 0)
|
||||||
@ -1139,8 +1142,8 @@ int QAccessibleTitleBar::childCount() const
|
|||||||
QString QAccessibleTitleBar::text(Text t, int child) const
|
QString QAccessibleTitleBar::text(Text t, int child) const
|
||||||
{
|
{
|
||||||
if (!child) {
|
if (!child) {
|
||||||
if (t == Value) {
|
if (t == Name || t == Value) {
|
||||||
return dockWidget()->windowTitle();
|
return qt_accStripAmp(dockWidget()->windowTitle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return QString();
|
return QString();
|
||||||
@ -1178,10 +1181,12 @@ QRect QAccessibleTitleBar::rect (int child ) const
|
|||||||
if (child == 0) {
|
if (child == 0) {
|
||||||
if (dockWidget()->isFloating()) {
|
if (dockWidget()->isFloating()) {
|
||||||
rect = dockWidget()->frameGeometry();
|
rect = dockWidget()->frameGeometry();
|
||||||
|
if (dockWidget()->widget()) {
|
||||||
QPoint globalPos = dockWidget()->mapToGlobal(dockWidget()->widget()->rect().topLeft());
|
QPoint globalPos = dockWidget()->mapToGlobal(dockWidget()->widget()->rect().topLeft());
|
||||||
globalPos.ry()--;
|
globalPos.ry()--;
|
||||||
rect.setBottom(globalPos.y());
|
rect.setBottom(globalPos.y());
|
||||||
mapToGlobal = false;
|
mapToGlobal = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
QDockWidgetLayout *layout = qobject_cast<QDockWidgetLayout*>(dockWidget()->layout());
|
QDockWidgetLayout *layout = qobject_cast<QDockWidgetLayout*>(dockWidget()->layout());
|
||||||
rect = layout->titleArea();
|
rect = layout->titleArea();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user