Windows Accessibility: Fix warnings as shown by Qt Creator's Clang based code model.
Introduce C++ casts and add some conversions. Where possible, increase const-correctness. Remove trivial conversion function BSTRToQString(). Task-number: QTBUG-50804 Change-Id: I1820d4693db8bc0dfa6c4a5fecd768cf64a4405c Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>bb10
parent
403b7d4a21
commit
4905bf0654
|
|
@ -58,15 +58,15 @@ static DATE QDateTimeToDATE(const QDateTime &dt)
|
|||
QDate date = dt.date();
|
||||
QTime time = dt.time();
|
||||
if (date.isValid() && !date.isNull()) {
|
||||
stime.wDay = date.day();
|
||||
stime.wMonth = date.month();
|
||||
stime.wYear = date.year();
|
||||
stime.wDay = WORD(date.day());
|
||||
stime.wMonth = WORD(date.month());
|
||||
stime.wYear = WORD(date.year());
|
||||
}
|
||||
if (time.isValid() && !time.isNull()) {
|
||||
stime.wMilliseconds = time.msec();
|
||||
stime.wSecond = time.second();
|
||||
stime.wMinute = time.minute();
|
||||
stime.wHour = time.hour();
|
||||
stime.wMilliseconds = WORD(time.msec());
|
||||
stime.wSecond = WORD(time.second());
|
||||
stime.wMinute = WORD(time.minute());
|
||||
stime.wHour = WORD(time.hour());
|
||||
}
|
||||
|
||||
double vtime;
|
||||
|
|
@ -92,8 +92,8 @@ bool QVariant2VARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeN
|
|||
proptype = QVariant::Double;
|
||||
}
|
||||
if (proptype != QVariant::Invalid && proptype != QVariant::UserType && proptype != qvar.type()) {
|
||||
if (qvar.canConvert(proptype))
|
||||
qvar.convert(proptype);
|
||||
if (qvar.canConvert(int(proptype)))
|
||||
qvar.convert(int(proptype));
|
||||
else
|
||||
qvar = QVariant(proptype);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,14 +47,9 @@ class QVariant;
|
|||
// Originally QVariantToVARIANT copied from ActiveQt - renamed to avoid conflicts in static builds.
|
||||
bool QVariant2VARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeName, bool out);
|
||||
|
||||
inline QString BSTRToQString(const BSTR &bstr)
|
||||
{
|
||||
return QString((QChar*)bstr);
|
||||
}
|
||||
|
||||
inline BSTR QStringToBSTR(const QString &str)
|
||||
{
|
||||
return SysAllocStringLen((OLECHAR*)str.unicode(), str.length());
|
||||
return SysAllocStringLen(reinterpret_cast<const OLECHAR *>(str.unicode()), UINT(str.length()));
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ HRESULT STDMETHODCALLTYPE AccessibleApplication::QueryInterface(REFIID id, LPVOI
|
|||
*iface = 0;
|
||||
if (id == IID_IUnknown) {
|
||||
qCDebug(lcQpaAccessibility) << "AccessibleApplication::QI(): IID_IUnknown";
|
||||
*iface = (IUnknown*)this;
|
||||
*iface = static_cast<IUnknown *>(this);
|
||||
} else if (id == IID_IAccessibleApplication) {
|
||||
qCDebug(lcQpaAccessibility) << "AccessibleApplication::QI(): IID_IAccessibleApplication";
|
||||
*iface = static_cast<IAccessibleApplication*>(this);
|
||||
|
|
@ -130,7 +130,7 @@ HRESULT STDMETHODCALLTYPE AccessibleRelation::QueryInterface(REFIID id, LPVOID *
|
|||
{
|
||||
*iface = 0;
|
||||
if (id == IID_IUnknown || id == IID_IAccessibleRelation)
|
||||
*iface = (IUnknown*)this;
|
||||
*iface = static_cast<IUnknown *>(this);
|
||||
|
||||
if (*iface) {
|
||||
AddRef();
|
||||
|
|
@ -208,7 +208,7 @@ HRESULT STDMETHODCALLTYPE AccessibleRelation::get_targets(
|
|||
/* [retval][out] */ long *nTargets)
|
||||
{
|
||||
|
||||
const int numTargets = qMin((int)maxTargets, m_targets.count());
|
||||
const int numTargets = qMin(int(maxTargets), m_targets.count());
|
||||
for (int i = 0; i < numTargets; ++i) {
|
||||
QAccessibleInterface *iface = m_targets.at(i);
|
||||
IAccessible *iacc = QWindowsAccessibility::wrap(iface);
|
||||
|
|
@ -237,40 +237,40 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::QueryInterface(REFIID id, LPVOI
|
|||
HRESULT hr = QWindowsMsaaAccessible::QueryInterface(id, iface);
|
||||
if (!SUCCEEDED(hr)) {
|
||||
if (id == IID_IServiceProvider) {
|
||||
*iface = (IServiceProvider*)this;
|
||||
*iface = static_cast<IServiceProvider *>(this);
|
||||
} else if (id == IID_IAccessible2) {
|
||||
*iface = (IAccessible2*)this;
|
||||
*iface = static_cast<IAccessible2 *>(this);
|
||||
} else if (id == IID_IAccessibleAction) {
|
||||
if (accessible->actionInterface())
|
||||
*iface = (IAccessibleAction*)this;
|
||||
*iface = static_cast<IAccessibleAction *>(this);
|
||||
} else if (id == IID_IAccessibleComponent) {
|
||||
*iface = (IAccessibleComponent*)this;
|
||||
*iface = static_cast<IAccessibleComponent *>(this);
|
||||
} else if (id == IID_IAccessibleEditableText) {
|
||||
if (accessible->editableTextInterface() ||
|
||||
accessible->role() == QAccessible::EditableText)
|
||||
{
|
||||
*iface = (IAccessibleEditableText*)this;
|
||||
*iface = static_cast<IAccessibleEditableText *>(this);
|
||||
}
|
||||
} else if (id == IID_IAccessibleHyperlink) {
|
||||
//*iface = (IAccessibleHyperlink*)this;
|
||||
//*iface = static_cast<IAccessibleHyperlink *>(this);
|
||||
} else if (id == IID_IAccessibleHypertext) {
|
||||
//*iface = (IAccessibleHypertext*)this;
|
||||
//*iface = static_cast<IAccessibleHypertext *>(this);
|
||||
} else if (id == IID_IAccessibleImage) {
|
||||
//*iface = (IAccessibleImage*)this;
|
||||
//*iface = static_cast<IAccessibleImage *>(this);
|
||||
} else if (id == IID_IAccessibleTable) {
|
||||
//*iface = (IAccessibleTable*)this; // not supported
|
||||
//*iface = static_cast<IAccessibleTable *>(this); // not supported
|
||||
} else if (id == IID_IAccessibleTable2) {
|
||||
if (accessible->tableInterface())
|
||||
*iface = (IAccessibleTable2*)this;
|
||||
*iface = static_cast<IAccessibleTable2 *>(this);
|
||||
} else if (id == IID_IAccessibleTableCell) {
|
||||
if (accessible->tableCellInterface())
|
||||
*iface = (IAccessibleTableCell*)this;
|
||||
*iface = static_cast<IAccessibleTableCell *>(this);
|
||||
} else if (id == IID_IAccessibleText) {
|
||||
if (accessible->textInterface())
|
||||
*iface = (IAccessibleText*)this;
|
||||
*iface = static_cast<IAccessibleText *>(this);
|
||||
} else if (id == IID_IAccessibleValue) {
|
||||
if (accessible->valueInterface())
|
||||
*iface = (IAccessibleValue*)this;
|
||||
*iface = static_cast<IAccessibleValue *>(this);
|
||||
}
|
||||
if (*iface) {
|
||||
AddRef();
|
||||
|
|
@ -674,7 +674,7 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_foreground(IA2Color *foregr
|
|||
return E_FAIL;
|
||||
|
||||
// IA2Color is a typedef for long
|
||||
*foreground = (IA2Color)accessible->foregroundColor().rgb();
|
||||
*foreground = static_cast<IA2Color>(accessible->foregroundColor().rgb());
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
|
@ -686,7 +686,7 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_background(IA2Color *backgr
|
|||
return E_FAIL;
|
||||
|
||||
// IA2Color is a typedef for long
|
||||
*background = (IA2Color)accessible->backgroundColor().rgb();
|
||||
*background = static_cast<IA2Color>(accessible->backgroundColor().rgb());
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
|
@ -760,7 +760,7 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::insertText(long offset, BSTR *t
|
|||
{
|
||||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
const QString txt(BSTRToQString(*text));
|
||||
const QString txt = QString::fromWCharArray(*text);
|
||||
if (QAccessibleEditableTextInterface *editableTextIface = accessible->editableTextInterface())
|
||||
editableTextIface->insertText(offset, txt);
|
||||
else
|
||||
|
|
@ -805,7 +805,7 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::replaceText(long startOffset, l
|
|||
{
|
||||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
const QString txt(BSTRToQString(*text));
|
||||
const QString txt = QString::fromWCharArray(*text);
|
||||
if (QAccessibleEditableTextInterface *editableTextIface = accessible->editableTextInterface())
|
||||
editableTextIface->replaceText(startOffset, endOffset, txt);
|
||||
else
|
||||
|
|
@ -1206,10 +1206,10 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowColumnExtents(long *row,
|
|||
if (!accessible || !tableCellInterface())
|
||||
return E_FAIL;
|
||||
|
||||
*row = (long)tableCellInterface()->rowIndex();
|
||||
*column = (long)tableCellInterface()->columnIndex();
|
||||
*rowExtents = (long)tableCellInterface()->rowExtent();
|
||||
*columnExtents = (long)tableCellInterface()->columnExtent();
|
||||
*row = tableCellInterface()->rowIndex();
|
||||
*column = tableCellInterface()->columnIndex();
|
||||
*rowExtents = tableCellInterface()->rowExtent();
|
||||
*columnExtents = tableCellInterface()->columnExtent();
|
||||
*isSelected = tableCellInterface()->isSelected();
|
||||
return S_OK;
|
||||
}
|
||||
|
|
@ -1250,7 +1250,8 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_attributes(long offset,
|
|||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
if (QAccessibleTextInterface *text = textInterface()) {
|
||||
const QString attrs = text->attributes(offset, (int*)startOffset, (int*)endOffset);
|
||||
const QString attrs = text->attributes(offset, reinterpret_cast<int *>(startOffset),
|
||||
reinterpret_cast<int *>(endOffset));
|
||||
*textAttributes = QStringToBSTR(attrs);
|
||||
return S_OK;
|
||||
}
|
||||
|
|
@ -1322,7 +1323,8 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_selection(long selectionInd
|
|||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
if (QAccessibleTextInterface *text = textInterface()) {
|
||||
text->selection(selectionIndex, (int*)startOffset, (int*)endOffset);
|
||||
text->selection(selectionIndex, reinterpret_cast<int *>(startOffset),
|
||||
reinterpret_cast<int *>(endOffset));
|
||||
return S_OK;
|
||||
}
|
||||
return E_FAIL;
|
||||
|
|
@ -1354,7 +1356,10 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textBeforeOffset(long offse
|
|||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
if (QAccessibleTextInterface *textIface = textInterface()) {
|
||||
const QString txt = textIface->textBeforeOffset(offset, (QAccessible::TextBoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
|
||||
const QString txt =
|
||||
textIface->textBeforeOffset(offset, static_cast<QAccessible::TextBoundaryType>(boundaryType),
|
||||
reinterpret_cast<int *>(startOffset),
|
||||
reinterpret_cast<int *>(endOffset));
|
||||
if (!txt.isEmpty()) {
|
||||
*text = QStringToBSTR(txt);
|
||||
return S_OK;
|
||||
|
|
@ -1374,7 +1379,10 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textAfterOffset(
|
|||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
if (QAccessibleTextInterface *textIface = textInterface()) {
|
||||
const QString txt = textIface->textAfterOffset(offset, (QAccessible::TextBoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
|
||||
const QString txt =
|
||||
textIface->textAfterOffset(offset, static_cast<QAccessible::TextBoundaryType>(boundaryType),
|
||||
reinterpret_cast<int *>(startOffset),
|
||||
reinterpret_cast<int *>(endOffset));
|
||||
if (!txt.isEmpty()) {
|
||||
*text = QStringToBSTR(txt);
|
||||
return S_OK;
|
||||
|
|
@ -1393,7 +1401,10 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textAtOffset(long offset,
|
|||
QAccessibleInterface *accessible = accessibleInterface();
|
||||
accessibleDebugClientCalls(accessible);
|
||||
if (QAccessibleTextInterface *textIface = textInterface()) {
|
||||
const QString txt = textIface->textAtOffset(offset, (QAccessible::TextBoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
|
||||
const QString txt =
|
||||
textIface->textAtOffset(offset, static_cast<QAccessible::TextBoundaryType>(boundaryType),
|
||||
reinterpret_cast<int *>(startOffset),
|
||||
reinterpret_cast<int *>(endOffset));
|
||||
if (!txt.isEmpty()) {
|
||||
*text = QStringToBSTR(txt);
|
||||
return S_OK;
|
||||
|
|
@ -1632,7 +1643,7 @@ HRESULT QWindowsIA2Accessible::getRelationsHelper(IAccessibleRelation **relation
|
|||
QList<QAccessible::Relation> keys = relationMap.keys();
|
||||
const int numRelations = keys.count();
|
||||
if (relations) {
|
||||
for (int i = startIndex; i < qMin(startIndex + (int)maxRelations, numRelations); ++i) {
|
||||
for (int i = startIndex; i < qMin(startIndex + int(maxRelations), numRelations); ++i) {
|
||||
QAccessible::Relation relation = keys.at(i);
|
||||
QList<QAccessibleInterface*> targets = relationMap.values(relation);
|
||||
AccessibleRelation *rel = new AccessibleRelation(targets, relation);
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ void QWindowsAccessibility::notifyAccessibilityUpdate(QAccessibleEvent *event)
|
|||
QPlatformNativeInterface *platform = QGuiApplication::platformNativeInterface();
|
||||
if (!window->handle()) // Called before show(), no native window yet.
|
||||
return;
|
||||
HWND hWnd = (HWND)platform->nativeResourceForWindow("handle", window);
|
||||
const HWND hWnd = reinterpret_cast<HWND>(platform->nativeResourceForWindow("handle", window));
|
||||
|
||||
if (event->type() != QAccessible::MenuCommand && // MenuCommand is faked
|
||||
event->type() != QAccessible::ObjectDestroyed) {
|
||||
|
|
@ -214,7 +214,7 @@ IAccessible *QWindowsAccessibility::wrap(QAccessibleInterface *acc)
|
|||
QWindowsIA2Accessible *wacc = new QWindowsIA2Accessible(acc);
|
||||
# endif
|
||||
IAccessible *iacc = 0;
|
||||
wacc->QueryInterface(IID_IAccessible, (void**)&iacc);
|
||||
wacc->QueryInterface(IID_IAccessible, reinterpret_cast<void **>(&iacc));
|
||||
return iacc;
|
||||
#endif // defined(Q_OS_WINCE)
|
||||
}
|
||||
|
|
@ -224,7 +224,7 @@ bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, W
|
|||
#if !defined(Q_OS_WINCE)
|
||||
if (static_cast<long>(lParam) == static_cast<long>(UiaRootObjectId)) {
|
||||
/* For UI Automation */
|
||||
} else if ((DWORD)lParam == DWORD(OBJID_CLIENT)) {
|
||||
} else if (DWORD(lParam) == DWORD(OBJID_CLIENT)) {
|
||||
// Start handling accessibility internally
|
||||
QGuiApplicationPrivate::platformIntegration()->accessibility()->setActive(true);
|
||||
// Ignoring all requests while starting up
|
||||
|
|
@ -238,7 +238,7 @@ bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, W
|
|||
|
||||
if (!oleaccChecked) {
|
||||
oleaccChecked = true;
|
||||
ptrLresultFromObject = (PtrLresultFromObject)QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject");
|
||||
ptrLresultFromObject = reinterpret_cast<PtrLresultFromObject>(QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject"));
|
||||
}
|
||||
|
||||
if (ptrLresultFromObject) {
|
||||
|
|
|
|||
|
|
@ -94,9 +94,9 @@ HRESULT STDMETHODCALLTYPE QWindowsEnumerate::QueryInterface(REFIID id, LPVOID *i
|
|||
{
|
||||
*iface = 0;
|
||||
if (id == IID_IUnknown)
|
||||
*iface = (IUnknown*)this;
|
||||
*iface = static_cast<IUnknown *>(this);
|
||||
else if (id == IID_IEnumVARIANT)
|
||||
*iface = (IEnumVARIANT*)this;
|
||||
*iface = static_cast<IEnumVARIANT *>(this);
|
||||
|
||||
if (*iface) {
|
||||
AddRef();
|
||||
|
|
@ -144,13 +144,13 @@ HRESULT STDMETHODCALLTYPE QWindowsEnumerate::Next(unsigned long celt, VARIANT F
|
|||
ULONG l;
|
||||
for (l = 0; l < celt; l++) {
|
||||
VariantInit(&rgVar[l]);
|
||||
if ((current+1) > (ULONG)array.size()) {
|
||||
if (current + 1 > ULONG(array.size())) {
|
||||
*pCeltFetched = l;
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
rgVar[l].vt = VT_I4;
|
||||
rgVar[l].lVal = array[(int)current];
|
||||
rgVar[l].lVal = array[int(current)];
|
||||
++current;
|
||||
}
|
||||
*pCeltFetched = l;
|
||||
|
|
@ -166,8 +166,8 @@ HRESULT STDMETHODCALLTYPE QWindowsEnumerate::Reset()
|
|||
HRESULT STDMETHODCALLTYPE QWindowsEnumerate::Skip(unsigned long celt)
|
||||
{
|
||||
current += celt;
|
||||
if (current > (ULONG)array.size()) {
|
||||
current = array.size();
|
||||
if (current > ULONG(array.size())) {
|
||||
current = ULONG(array.size());
|
||||
return S_FALSE;
|
||||
}
|
||||
return S_OK;
|
||||
|
|
@ -195,13 +195,13 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::QueryInterface(REFIID id, LPVO
|
|||
<< strIID << ", iface:" << accessibleInterface();
|
||||
}
|
||||
if (id == IID_IUnknown) {
|
||||
*iface = (IUnknown*)(IDispatch*)this;
|
||||
*iface = static_cast<IUnknown *>(static_cast<IDispatch *>(this));
|
||||
} else if (id == IID_IDispatch) {
|
||||
*iface = (IDispatch*)this;
|
||||
*iface = static_cast<IDispatch *>(this);
|
||||
} else if (id == IID_IAccessible) {
|
||||
*iface = (IAccessible*)this;
|
||||
*iface = static_cast<IAccessible *>(this);
|
||||
} else if (id == IID_IOleWindow) {
|
||||
*iface = (IOleWindow*)this;
|
||||
*iface = static_cast<IOleWindow *>(this);
|
||||
}
|
||||
|
||||
if (*iface) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue