feat(accessible):Unified naming && set overlaywarningwidget accessible

统一命名方式,所有的控件均以统一,添加overlaywarningwidget的accessible代码
This commit is contained in:
fpc_diesel 2020-05-06 17:28:16 +08:00
parent df819075e3
commit 06ac0b986a
10 changed files with 144 additions and 142 deletions

View File

@ -104,7 +104,7 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
m_active = m_itemEntryInter->isActive(); m_active = m_itemEntryInter->isActive();
m_appNameTips->setObjectName("AppItemTips"); m_appNameTips->setObjectName("AppItemTips");
m_appNameTips->setAccessibleName(m_itemEntryInter->name() + "-tips"); m_appNameTips->setAccessibleName(m_itemEntryInter->name());
m_appNameTips->setVisible(false); m_appNameTips->setVisible(false);
m_appNameTips->installEventFilter(this); m_appNameTips->installEventFilter(this);

View File

@ -60,13 +60,12 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent)
, m_wmHelper(DWindowManagerHelper::instance()) , m_wmHelper(DWindowManagerHelper::instance())
{ {
m_closeBtn2D->setFixedSize(24, 24); m_closeBtn2D->setFixedSize(24, 24);
m_closeBtn2D->setAccessibleName("closebutton-2d"); m_closeBtn2D->setObjectName("closebutton-2d");
m_closeBtn2D->setNormalPic(":/icons/resources/close_round_normal.svg"); m_closeBtn2D->setNormalPic(":/icons/resources/close_round_normal.svg");
m_closeBtn2D->setHoverPic(":/icons/resources/close_round_hover.svg"); m_closeBtn2D->setHoverPic(":/icons/resources/close_round_hover.svg");
m_closeBtn2D->setPressPic(":/icons/resources/close_round_press.svg"); m_closeBtn2D->setPressPic(":/icons/resources/close_round_press.svg");
m_closeBtn2D->setVisible(false); m_closeBtn2D->setVisible(false);
m_title->setObjectName("AppSnapshotTitle"); m_title->setObjectName("AppSnapshotTitle");
m_title->setAccessibleName("AppSnapshotTitle");
QHBoxLayout *centralLayout = new QHBoxLayout; QHBoxLayout *centralLayout = new QHBoxLayout;
centralLayout->addWidget(m_title); centralLayout->addWidget(m_title);

View File

@ -38,7 +38,7 @@ FloatingPreview::FloatingPreview(QWidget *parent)
, m_closeBtn3D(new DImageButton) , m_closeBtn3D(new DImageButton)
, m_titleBtn(new DPushButton) , m_titleBtn(new DPushButton)
{ {
m_closeBtn3D->setAccessibleName("closebutton-3d"); m_closeBtn3D->setObjectName("closebutton-3d");
m_closeBtn3D->setFixedSize(24, 24); m_closeBtn3D->setFixedSize(24, 24);
m_closeBtn3D->setNormalPic(":/icons/resources/close_round_normal.svg"); m_closeBtn3D->setNormalPic(":/icons/resources/close_round_normal.svg");
m_closeBtn3D->setHoverPic(":/icons/resources/close_round_hover.svg"); m_closeBtn3D->setHoverPic(":/icons/resources/close_round_hover.svg");

View File

@ -102,9 +102,9 @@ MainPanelControl::~MainPanelControl()
void MainPanelControl::init() void MainPanelControl::init()
{ {
// 主窗口 // 主窗口
m_fixedSpliter->setAccessibleName("spliter_fix"); m_fixedSpliter->setObjectName("spliter_fix");
m_appSpliter->setAccessibleName("spliter_app"); m_appSpliter->setObjectName("spliter_app");
m_traySpliter->setAccessibleName("spliter_tray"); m_traySpliter->setObjectName("spliter_tray");
m_mainPanelLayout->addWidget(m_fixedAreaWidget); m_mainPanelLayout->addWidget(m_fixedAreaWidget);
m_mainPanelLayout->addWidget(m_fixedSpliter); m_mainPanelLayout->addWidget(m_fixedSpliter);
@ -123,28 +123,28 @@ void MainPanelControl::init()
// 固定区域 // 固定区域
m_fixedAreaWidget->setLayout(m_fixedAreaLayout); m_fixedAreaWidget->setLayout(m_fixedAreaLayout);
m_fixedAreaWidget->setAccessibleName("fixedarea"); m_fixedAreaWidget->setObjectName("fixedarea");
m_fixedAreaLayout->setMargin(0); m_fixedAreaLayout->setMargin(0);
m_fixedAreaLayout->setContentsMargins(0, 0, 0, 0); m_fixedAreaLayout->setContentsMargins(0, 0, 0, 0);
m_fixedAreaLayout->setSpacing(0); m_fixedAreaLayout->setSpacing(0);
// 应用程序 // 应用程序
m_appAreaSonWidget->setLayout(m_appAreaSonLayout); m_appAreaSonWidget->setLayout(m_appAreaSonLayout);
m_appAreaSonWidget->setAccessibleName("apparea"); m_appAreaSonWidget->setObjectName("apparea");
m_appAreaSonLayout->setMargin(0); m_appAreaSonLayout->setMargin(0);
m_appAreaSonLayout->setContentsMargins(0, 0, 0, 0); m_appAreaSonLayout->setContentsMargins(0, 0, 0, 0);
m_appAreaSonLayout->setSpacing(0); m_appAreaSonLayout->setSpacing(0);
// 托盘 // 托盘
m_trayAreaWidget->setLayout(m_trayAreaLayout); m_trayAreaWidget->setLayout(m_trayAreaLayout);
m_trayAreaWidget->setAccessibleName("trayarea"); m_trayAreaWidget->setObjectName("trayarea");
m_trayAreaLayout->setMargin(0); m_trayAreaLayout->setMargin(0);
m_trayAreaLayout->setContentsMargins(0, 10, 0, 10); m_trayAreaLayout->setContentsMargins(0, 10, 0, 10);
m_trayAreaLayout->setSpacing(0); m_trayAreaLayout->setSpacing(0);
// 插件 // 插件
m_pluginAreaWidget->setLayout(m_pluginLayout); m_pluginAreaWidget->setLayout(m_pluginLayout);
m_pluginAreaWidget->setAccessibleName("pluginarea"); m_pluginAreaWidget->setObjectName("pluginarea");
m_pluginLayout->setMargin(0); m_pluginLayout->setMargin(0);
m_pluginLayout->setSpacing(10); m_pluginLayout->setSpacing(10);

View File

@ -73,7 +73,7 @@ DockSettings::DockSettings(QWidget *parent)
, m_itemManager(DockItemManager::instance(this)) , m_itemManager(DockItemManager::instance(this))
, m_trashPluginShow(true) , m_trashPluginShow(true)
{ {
m_settingsMenu.setAccessibleName("dock-settingsmenu"); m_settingsMenu.setAccessibleName("settingsmenu");
checkService(); checkService();
m_primaryRawRect = m_displayInter->primaryRawRect(); m_primaryRawRect = m_displayInter->primaryRawRect();

View File

@ -35,14 +35,13 @@
#include "../plugins/sound/componments/volumeslider.h" #include "../plugins/sound/componments/volumeslider.h"
#include "../plugins/sound/componments/horizontalseparator.h" #include "../plugins/sound/componments/horizontalseparator.h"
//#include "../plugins/network/item/deviceitem.h" //TODO
#include "../plugins/datetime/datetimewidget.h" #include "../plugins/datetime/datetimewidget.h"
#include "../plugins/onboard/onboarditem.h" #include "../plugins/onboard/onboarditem.h"
#include "../plugins/trash/trashwidget.h" #include "../plugins/trash/trashwidget.h"
#include "../plugins/trash/popupcontrolwidget.h" #include "../plugins/trash/popupcontrolwidget.h"
#include "../plugins/shutdown/shutdownwidget.h" #include "../plugins/shutdown/shutdownwidget.h"
#include "../plugins/multitasking/multitaskingwidget.h" #include "../plugins/multitasking/multitaskingwidget.h"
//#include "../plugins/overlay-warning/overlaywarningwidget.h"// TODO #include "../plugins/overlay-warning/overlaywarningwidget.h"
#include <DImageButton> #include <DImageButton>
#include <DSwitchButton> #include <DSwitchButton>
@ -51,45 +50,47 @@
DWIDGET_USE_NAMESPACE DWIDGET_USE_NAMESPACE
// 添加accessible // 添加accessible
SET_FORM_ACCESSIBLE(MainWindow,"mainwindow") SET_FORM_ACCESSIBLE(MainWindow, "mainwindow")
SET_BUTTON_ACCESSIBLE_SHOWMENU(MainPanelControl,"mainpanelcontrol") SET_BUTTON_ACCESSIBLE_SHOWMENU(MainPanelControl, "mainpanelcontrol")
SET_LABEL_ACCESSIBLE(TipsWidget,"Tips") SET_LABEL_ACCESSIBLE(TipsWidget, "tips")
SET_FORM_ACCESSIBLE(DockPopupWindow,"PopupWindow") SET_FORM_ACCESSIBLE(DockPopupWindow, "popupwindow")
SET_BUTTON_ACCESSIBLE(LauncherItem,"launcheritem") SET_BUTTON_ACCESSIBLE(LauncherItem, "launcheritem")
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(AppItem,"AppItem") SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(AppItem, "appitem")
SET_BUTTON_ACCESSIBLE(PreviewContainer,"previewcontainer") SET_BUTTON_ACCESSIBLE(PreviewContainer, "previewcontainer")
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(PluginsItem,m_w->pluginName()) SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(PluginsItem, m_w->pluginName())
SET_BUTTON_ACCESSIBLE(TrayPluginItem,m_w->pluginName()) SET_BUTTON_ACCESSIBLE(TrayPluginItem, m_w->pluginName())
SET_BUTTON_ACCESSIBLE(PlaceholderItem,"placeholderitem") SET_BUTTON_ACCESSIBLE(PlaceholderItem, "placeholderitem")
SET_BUTTON_ACCESSIBLE(AppDragWidget,"appdragwidget") SET_BUTTON_ACCESSIBLE(AppDragWidget, "appdragwidget")
SET_BUTTON_ACCESSIBLE(AppSnapshot,"appsnapshot") SET_BUTTON_ACCESSIBLE(AppSnapshot, "appsnapshot")
SET_BUTTON_ACCESSIBLE(FloatingPreview,"floatingpreview") SET_BUTTON_ACCESSIBLE(FloatingPreview, "floatingpreview")
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(XEmbedTrayWidget,m_w->itemKeyForConfig()) SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(XEmbedTrayWidget, m_w->itemKeyForConfig())
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(IndicatorTrayWidget,m_w->itemKeyForConfig()) SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(IndicatorTrayWidget, m_w->itemKeyForConfig())
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SNITrayWidget,m_w->itemKeyForConfig()) SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SNITrayWidget, m_w->itemKeyForConfig())
SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SystemTrayItem,m_w->itemKeyForConfig()) SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SystemTrayItem, m_w->itemKeyForConfig())
SET_FORM_ACCESSIBLE(FashionTrayItem,"fashiontrayitem") SET_FORM_ACCESSIBLE(FashionTrayItem, "fashiontrayitem")
SET_FORM_ACCESSIBLE(FashionTrayWidgetWrapper,"fashiontraywrapper") SET_FORM_ACCESSIBLE(FashionTrayWidgetWrapper, "fashiontraywrapper")
SET_BUTTON_ACCESSIBLE(FashionTrayControlWidget,"fashiontraycontrolwidget") SET_BUTTON_ACCESSIBLE(FashionTrayControlWidget, "fashiontraycontrolwidget")
SET_FORM_ACCESSIBLE(AttentionContainer,"attentioncontainer") SET_FORM_ACCESSIBLE(AttentionContainer, "attentioncontainer")
SET_FORM_ACCESSIBLE(HoldContainer,"holdcontainer") SET_FORM_ACCESSIBLE(HoldContainer, "holdcontainer")
SET_FORM_ACCESSIBLE(NormalContainer,"normalcontainer") SET_FORM_ACCESSIBLE(NormalContainer, "normalcontainer")
SET_FORM_ACCESSIBLE(SpliterAnimated,"spliteranimated") SET_FORM_ACCESSIBLE(SpliterAnimated, "spliteranimated")
SET_BUTTON_ACCESSIBLE(SoundItem,"plugin-sounditem") SET_BUTTON_ACCESSIBLE(SoundItem, "plugin-sounditem")
SET_FORM_ACCESSIBLE(SoundApplet,"soundapplet") SET_FORM_ACCESSIBLE(SoundApplet, "soundapplet")
SET_FORM_ACCESSIBLE(SinkInputWidget,"sinkinputwidget") SET_FORM_ACCESSIBLE(SinkInputWidget, "sinkinputwidget")
SET_SLIDER_ACCESSIBLE(VolumeSlider,"volumeslider") SET_SLIDER_ACCESSIBLE(VolumeSlider, "volumeslider")
SET_SEPARATOR_ACCESSIBLE(HorizontalSeparator,"horizontalseparator") SET_SEPARATOR_ACCESSIBLE(HorizontalSeparator, "horizontalseparator")
SET_FORM_ACCESSIBLE(DatetimeWidget,"plugin-datetime") SET_FORM_ACCESSIBLE(DatetimeWidget, "plugin-datetime")
SET_FORM_ACCESSIBLE(OnboardItem,"plugin-onboard") SET_FORM_ACCESSIBLE(OnboardItem, "plugin-onboard")
SET_FORM_ACCESSIBLE(TrashWidget,"plugin-trash") SET_FORM_ACCESSIBLE(TrashWidget, "plugin-trash")
SET_BUTTON_ACCESSIBLE(PopupControlWidget,"popupcontrolwidget") SET_BUTTON_ACCESSIBLE(PopupControlWidget, "popupcontrolwidget")
SET_FORM_ACCESSIBLE(ShutdownWidget,"plugin-shutdown") SET_FORM_ACCESSIBLE(ShutdownWidget, "plugin-shutdown")
SET_FORM_ACCESSIBLE(MultitaskingWidget,"plugin-multitasking") SET_FORM_ACCESSIBLE(MultitaskingWidget, "plugin-multitasking")
SET_FORM_ACCESSIBLE(ShowDesktopWidget,"plugin-showdesktop") SET_FORM_ACCESSIBLE(ShowDesktopWidget, "plugin-showdesktop")
SET_BUTTON_ACCESSIBLE(QWidget,m_w->objectName()) SET_FORM_ACCESSIBLE(OverlayWarningWidget, "plugin-overlaywarningwidget")
SET_BUTTON_ACCESSIBLE(DImageButton,m_w->objectName()) SET_FORM_ACCESSIBLE(QWidget, m_w->objectName().isEmpty() ? "widget" : m_w->objectName())
SET_BUTTON_ACCESSIBLE(DSwitchButton,m_w->text()) SET_LABEL_ACCESSIBLE(QLabel, m_w->text().isEmpty() ? m_w->objectName().isEmpty() ? "text" : m_w->objectName() : m_w->text())
SET_BUTTON_ACCESSIBLE(DImageButton, m_w->objectName().isEmpty() ? "imagebutton" : m_w->objectName())
SET_BUTTON_ACCESSIBLE(DSwitchButton, m_w->text().isEmpty() ? "switchbutton" : m_w->text())
QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object)
{ {
@ -131,8 +132,13 @@ QAccessibleInterface *accessibleFactory(const QString &classname, QObject *objec
USE_ACCESSIBLE(classname, ShutdownWidget); USE_ACCESSIBLE(classname, ShutdownWidget);
USE_ACCESSIBLE(classname, MultitaskingWidget); USE_ACCESSIBLE(classname, MultitaskingWidget);
USE_ACCESSIBLE(classname, ShowDesktopWidget); USE_ACCESSIBLE(classname, ShowDesktopWidget);
// USE_ACCESSIBLE(classname,OverlayWarningWidget); USE_ACCESSIBLE(classname, OverlayWarningWidget);
USE_ACCESSIBLE_BY_OBJECTNAME(classname, QWidget, "Btn_showdesktoparea");//TODO 点击坐标有偏差 USE_ACCESSIBLE_BY_OBJECTNAME(classname, QWidget, "Btn_showdesktoparea");//TODO 点击坐标有偏差
USE_ACCESSIBLE(classname, QWidget);
USE_ACCESSIBLE_BY_OBJECTNAME(classname, QLabel, "spliter_fix");
USE_ACCESSIBLE_BY_OBJECTNAME(classname, QLabel, "spliter_app");
USE_ACCESSIBLE_BY_OBJECTNAME(classname, QLabel, "spliter_tray");
USE_ACCESSIBLE(classname, QLabel);
USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DImageButton, "closebutton-2d"); USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DImageButton, "closebutton-2d");
USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DImageButton, "closebutton-3d"); USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DImageButton, "closebutton-3d");
USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DSwitchButton, ""); USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DSwitchButton, "");

View File

@ -61,15 +61,16 @@
#define SEPARATOR "_" #define SEPARATOR "_"
inline QString getAccessibleName(QWidget *w, QAccessible::Role r, QString fallback) inline QString getAccessibleName(QWidget *w, QAccessible::Role r, const QString &fallback)
{ {
const QString lowerFallback = fallback.toLower();
// 避免重复生成 // 避免重复生成
static QMap< QObject *, QString > objnameMap; static QMap< QObject *, QString > objnameMap;
if (!objnameMap[w].isEmpty()) if (!objnameMap[w].isEmpty())
return objnameMap[w]; return objnameMap[w];
static QMap< QAccessible::Role, QList< QString > > accessibleMap; static QMap< QAccessible::Role, QList< QString > > accessibleMap;
QString oldAccessName = w->accessibleName(); QString oldAccessName = w->accessibleName().toLower();
oldAccessName.replace(SEPARATOR, ""); oldAccessName.replace(SEPARATOR, "");
// 按照类型添加固定前缀 // 按照类型添加固定前缀
@ -83,7 +84,7 @@ inline QString getAccessibleName(QWidget *w, QAccessible::Role r, QString fallba
// 再加上标识 // 再加上标识
QString accessibleName = QString::fromLatin1(prefix) + SEPARATOR; QString accessibleName = QString::fromLatin1(prefix) + SEPARATOR;
accessibleName += oldAccessName.isEmpty() ? fallback : oldAccessName; accessibleName += oldAccessName.isEmpty() ? lowerFallback : oldAccessName;
// 检查名称是否唯一 // 检查名称是否唯一
if (accessibleMap[r].contains(accessibleName)) { if (accessibleMap[r].contains(accessibleName)) {
if (!objnameMap.key(accessibleName)) { if (!objnameMap.key(accessibleName)) {
@ -114,125 +115,125 @@ inline QString getAccessibleName(QWidget *w, QAccessible::Role r, QString fallba
} }
#define FUNC_CREATE(classname,accessibletype,accessdescription) Accessible##classname(classname *w) \ #define FUNC_CREATE(classname,accessibletype,accessdescription) Accessible##classname(classname *w) \
: QAccessibleWidget(w,accessibletype,#classname)\ : QAccessibleWidget(w,accessibletype,#classname)\
, m_w(w)\ , m_w(w)\
, m_description(accessdescription)\ , m_description(accessdescription)\
{}\ {}\
private:\ private:\
classname *m_w;\ classname *m_w;\
QString m_description;\ QString m_description;\
#define FUNC_PRESS(classobj) QStringList actionNames() const override{\ #define FUNC_PRESS(classobj) QStringList actionNames() const override{\
if(!classobj->isEnabled())\ if(!classobj->isEnabled())\
return QStringList();\ return QStringList();\
return QStringList() << pressAction();}\ return QStringList() << pressAction();}\
void doAction(const QString &actionName) override{\ void doAction(const QString &actionName) override{\
if(actionName == pressAction())\ if(actionName == pressAction())\
{\ {\
QPointF localPos = classobj->geometry().center();\ QPointF localPos = classobj->geometry().center();\
QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\
QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\
qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event);\
qApp->sendEvent(classobj,&event2);\ qApp->sendEvent(classobj,&event2);\
}\ }\
}\ }\
#define FUNC_SHOWMENU(classobj) QStringList actionNames() const override{\ #define FUNC_SHOWMENU(classobj) QStringList actionNames() const override{\
if(!classobj->isEnabled())\ if(!classobj->isEnabled())\
return QStringList();\ return QStringList();\
return QStringList() << showMenuAction();}\ return QStringList() << showMenuAction();}\
void doAction(const QString &actionName) override{\ void doAction(const QString &actionName) override{\
if(actionName == showMenuAction())\ if(actionName == showMenuAction())\
{\ {\
QPointF localPos = classobj->geometry().center();\ QPointF localPos = classobj->geometry().center();\
QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\
QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\
qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event);\
qApp->sendEvent(classobj,&event2);\ qApp->sendEvent(classobj,&event2);\
}\ }\
}\ }\
#define FUNC_PRESS_SHOWMENU(classobj) QStringList actionNames() const override{\ #define FUNC_PRESS_SHOWMENU(classobj) QStringList actionNames() const override{\
if(!classobj->isEnabled())\ if(!classobj->isEnabled())\
return QStringList();\ return QStringList();\
return QStringList() << pressAction() << showMenuAction();}\ return QStringList() << pressAction() << showMenuAction();}\
void doAction(const QString &actionName) override{\ void doAction(const QString &actionName) override{\
if(actionName == pressAction())\ if(actionName == pressAction())\
{\ {\
QPointF localPos = classobj->geometry().center();\ QPointF localPos = classobj->geometry().center();\
QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\
QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);\
qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event);\
qApp->sendEvent(classobj,&event2);\ qApp->sendEvent(classobj,&event2);\
}\ }\
else if(actionName == showMenuAction())\ else if(actionName == showMenuAction())\
{\ {\
QPointF localPos = classobj->geometry().center();\ QPointF localPos = classobj->geometry().center();\
QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event(QEvent::MouseButtonPress,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\
QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\ QMouseEvent event2(QEvent::MouseButtonRelease,localPos,Qt::RightButton,Qt::RightButton,Qt::NoModifier);\
qApp->sendEvent(classobj,&event);\ qApp->sendEvent(classobj,&event);\
qApp->sendEvent(classobj,&event2);\ qApp->sendEvent(classobj,&event2);\
}\ }\
}\ }\
#define FUNC_RECT(classobj) QRect rect() const override{\ #define FUNC_RECT(classobj) QRect rect() const override{\
if (!classobj->isVisible())\ if (!classobj->isVisible())\
return QRect();\ return QRect();\
return classobj->geometry();\ return classobj->geometry();\
}\ }\
#define FUNC_TEXT(classname,accessiblename) QString Accessible##classname::text(QAccessible::Text t) const{\ #define FUNC_TEXT(classname,accessiblename) QString Accessible##classname::text(QAccessible::Text t) const{\
switch (t) {\ switch (t) {\
case QAccessible::Name:\ case QAccessible::Name:\
return getAccessibleName(m_w, this->role(), accessiblename);\ return getAccessibleName(m_w, this->role(), accessiblename);\
case QAccessible::Description:\ case QAccessible::Description:\
return m_description;\ return m_description;\
default:\ default:\
return QString();\ return QString();\
}\ }\
}\ }\
#define USE_ACCESSIBLE(classnamestring,classname) if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType())\ #define USE_ACCESSIBLE(classnamestring,classname) if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType())\
{\ {\
interface = new Accessible##classname(static_cast<classname *>(object));\ interface = new Accessible##classname(static_cast<classname *>(object));\
}\ }\
// [指定objectname]---适用同一个类但objectname不同的情况 // [指定objectname]---适用同一个类但objectname不同的情况
#define USE_ACCESSIBLE_BY_OBJECTNAME(classnamestring,classname,objectname) if (classnamestring == QLatin1String(#classname) && object && (object->objectName() == objectname) && object->isWidgetType())\ #define USE_ACCESSIBLE_BY_OBJECTNAME(classnamestring,classname,objectname) if (classnamestring == QLatin1String(#classname) && object && (object->objectName() == objectname) && object->isWidgetType())\
{\ {\
interface = new Accessible##classname(static_cast<classname *>(object));\ interface = new Accessible##classname(static_cast<classname *>(object));\
}\ }\
#define SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ #define SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\
{\ {\
public:\ public:\
FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\
QString text(QAccessible::Text t) const override;\ QString text(QAccessible::Text t) const override;\
FUNC_PRESS(m_w)\ FUNC_PRESS(m_w)\
};\ };\
#define SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ #define SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\
{\ {\
public:\ public:\
FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\
QString text(QAccessible::Text t) const override;\ QString text(QAccessible::Text t) const override;\
FUNC_SHOWMENU(m_w)\ FUNC_SHOWMENU(m_w)\
};\ };\
#define SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ #define SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\
{\ {\
public:\ public:\
FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ FUNC_CREATE(classname,QAccessible::Button,accessdescription)\
QString text(QAccessible::Text t) const override;\ QString text(QAccessible::Text t) const override;\
FUNC_PRESS_SHOWMENU(m_w)\ FUNC_PRESS_SHOWMENU(m_w)\
};\ };\
#define SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,aaccessibletype,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\ #define SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,aaccessibletype,accessiblename,accessdescription) class Accessible##classname : public QAccessibleWidget\
{\ {\
public:\ public:\
FUNC_CREATE(classname,aaccessibletype,accessdescription)\ FUNC_CREATE(classname,aaccessibletype,accessdescription)\
QString text(QAccessible::Text t) const override;\ QString text(QAccessible::Text t) const override;\
FUNC_RECT(m_w)\ FUNC_RECT(m_w)\
};\ };\
// /*******************************************简化使用*******************************************/ // /*******************************************简化使用*******************************************/

View File

@ -148,7 +148,7 @@ MainWindow::MainWindow(QWidget *parent)
m_sniWatcher(new StatusNotifierWatcher(SNI_WATCHER_SERVICE, SNI_WATCHER_PATH, QDBusConnection::sessionBus(), this)), m_sniWatcher(new StatusNotifierWatcher(SNI_WATCHER_SERVICE, SNI_WATCHER_PATH, QDBusConnection::sessionBus(), this)),
m_dragWidget(new DragWidget(this)) m_dragWidget(new DragWidget(this))
{ {
setAccessibleName("dock-mainwindow"); setAccessibleName("mainwindow");
m_mainPanel->setAccessibleName("mainpanel"); m_mainPanel->setAccessibleName("mainpanel");
setAttribute(Qt::WA_TranslucentBackground); setAttribute(Qt::WA_TranslucentBackground);
setMouseTracking(true); setMouseTracking(true);

View File

@ -21,6 +21,7 @@
*/ */
#include "overlaywarningwidget.h" #include "overlaywarningwidget.h"
#include "../../interfaces/constants.h"
#include <QSvgRenderer> #include <QSvgRenderer>
#include <QPainter> #include <QPainter>

View File

@ -20,10 +20,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef PLUGINWIDGET_H #ifndef OVERLAYWARNINGWIDGET_H
#define PLUGINWIDGET_H #define OVERLAYWARNINGWIDGET_H
#include "../../interfaces/constants.h"
#include <QWidget> #include <QWidget>
@ -40,9 +38,6 @@ protected:
private: private:
const QPixmap loadSvg(const QString &fileName, const QSize &size) const; const QPixmap loadSvg(const QString &fileName, const QSize &size) const;
private:
Dock::DisplayMode m_displayMode;
}; };
#endif // PLUGINWIDGET_H #endif // OVERLAYWARNINGWIDGET_H