From 5be2ade0b13a0d47cf58a27e19caf06b9f9ed377 Mon Sep 17 00:00:00 2001 From: fanpengcheng_cm Date: Thu, 12 Mar 2020 20:23:39 +0800 Subject: [PATCH] feat:set cotrol accessible --- frame/CMakeLists.txt | 4 + frame/controller/dockitemmanager.cpp | 3 + frame/item/appitem.cpp | 21 +- frame/item/appitem.h | 2 +- frame/item/components/appsnapshot.cpp | 2 + frame/item/components/floatingpreview.cpp | 1 + frame/item/dockitem.cpp | 5 + frame/item/dockitem.h | 1 + frame/item/launcheritem.cpp | 2 +- frame/item/pluginsitem.cpp | 1 + frame/main.cpp | 62 ++- frame/panel/mainpanelcontrol.cpp | 8 + frame/panel/mainpanelcontrol.h | 4 +- frame/util/dockpopupwindow.cpp | 7 + frame/util/docksettings.cpp | 5 + frame/window/accessible.cpp | 437 ++++++++++++++++++ frame/window/accessible.h | 252 ++++++++++ frame/window/mainwindow.cpp | 1 + .../overlay-warning-plugin.cpp | 2 +- .../overlay-warning/overlay-warning-plugin.h | 4 +- ...ginwidget.cpp => overlaywarningwidget.cpp} | 10 +- ...{pluginwidget.h => overlaywarningwidget.h} | 6 +- plugins/shutdown/shutdownplugin.cpp | 2 +- plugins/shutdown/shutdownplugin.h | 4 +- .../{pluginwidget.cpp => shutdownwidget.cpp} | 16 +- .../{pluginwidget.h => shutdownwidget.h} | 4 +- plugins/sound/soundapplet.cpp | 16 +- plugins/sound/sounditem.cpp | 1 + plugins/tray/CMakeLists.txt | 2 +- .../containers/abstractcontainer.h | 2 +- plugins/tray/fashiontray/fashiontrayitem.cpp | 1 + plugins/tray/fashiontray/fashiontrayitem.h | 4 +- .../fashiontray/fashiontraywidgetwrapper.h | 2 +- plugins/tray/system-trays/systemtrayitem.h | 2 +- widgets/tipswidget.h | 1 + 35 files changed, 844 insertions(+), 53 deletions(-) create mode 100644 frame/window/accessible.cpp create mode 100644 frame/window/accessible.h rename plugins/overlay-warning/{pluginwidget.cpp => overlaywarningwidget.cpp} (86%) rename plugins/overlay-warning/{pluginwidget.h => overlaywarningwidget.h} (89%) rename plugins/shutdown/{pluginwidget.cpp => shutdownwidget.cpp} (89%) rename plugins/shutdown/{pluginwidget.h => shutdownwidget.h} (94%) diff --git a/frame/CMakeLists.txt b/frame/CMakeLists.txt index 2686b89b8..f3ebf0c52 100644 --- a/frame/CMakeLists.txt +++ b/frame/CMakeLists.txt @@ -32,7 +32,10 @@ target_include_directories(${BIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} ${DtkGUI_INCLUDE_DIRS} ${Qt5Svg_INCLUDE_DIRS} + ${XCB_LIBS_INCLUDE_DIRS} + ${Qt5DBus_INCLUDE_DIRS} ../interfaces) + target_link_libraries(${BIN_NAME} PRIVATE ${XCB_EWMH_LIBRARIES} ${DFrameworkDBus_LIBRARIES} @@ -44,6 +47,7 @@ target_link_libraries(${BIN_NAME} PRIVATE ${QGSettings_LIBRARIES} ${DtkGUI_LIBRARIES} ${Qt5Svg_LIBRARIES} + ${XCB_LIBS_LIBRARIES} ) if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "sw_64") diff --git a/frame/controller/dockitemmanager.cpp b/frame/controller/dockitemmanager.cpp index 3e09e3289..955c61108 100644 --- a/frame/controller/dockitemmanager.cpp +++ b/frame/controller/dockitemmanager.cpp @@ -279,7 +279,10 @@ void DockItemManager::pluginItemInserted(PluginsItem *item) m_itemList.insert(insertIndex, item); if(pluginType == DockItem::FixedPlugin) + { insertIndex ++; + item->setAccessibleName("plugins"); + } emit itemInserted(insertIndex - firstPluginPosition, item); } diff --git a/frame/item/appitem.cpp b/frame/item/appitem.cpp index 336fd71be..76a9fe947 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -181,6 +181,11 @@ void AppItem::setDockInfo(Dock::Position dockPosition, const QRect &dockGeometry } } +QString AppItem::accessibleName() +{ + return m_itemEntryInter->name(); +} + void AppItem::moveEvent(QMoveEvent *e) { DockItem::moveEvent(e); @@ -342,8 +347,8 @@ void AppItem::mouseMoveEvent(QMouseEvent *e) e->accept(); // handle preview -// if (e->buttons() == Qt::NoButton) -// return showPreview(); + // if (e->buttons() == Qt::NoButton) + // return showPreview(); // handle drag if (e->buttons() != Qt::LeftButton) @@ -641,7 +646,7 @@ void AppItem::playSwingEffect() stopSwingEffect(); QPair pair = SwingEffect( - this, m_appIcon, rect(), devicePixelRatioF()); + this, m_appIcon, rect(), devicePixelRatioF()); m_swingEffectView = pair.first; m_itemAnimation = pair.second; @@ -688,8 +693,8 @@ void AppItem::onGSettingsChanged(const QString &key) } QGSettings *setting = m_itemEntryInter->isDocked() - ? GSettingsByDockApp() - : GSettingsByActiveApp(); + ? GSettingsByDockApp() + : GSettingsByActiveApp(); if (setting->keys().contains("enable")) { const bool isEnable = GSettingsByApp()->keys().contains("enable") && GSettingsByApp()->get("enable").toBool(); @@ -700,11 +705,11 @@ void AppItem::onGSettingsChanged(const QString &key) bool AppItem::checkGSettingsControl() const { QGSettings *setting = m_itemEntryInter->isDocked() - ? GSettingsByDockApp() - : GSettingsByActiveApp(); + ? GSettingsByDockApp() + : GSettingsByActiveApp(); return (setting->keys().contains("control") && setting->get("control").toBool()) || - (GSettingsByApp()->keys().contains("control") && GSettingsByApp()->get("control").toBool()); + (GSettingsByApp()->keys().contains("control") && GSettingsByApp()->get("control").toBool()); } void AppItem::onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType) diff --git a/frame/item/appitem.h b/frame/item/appitem.h index 7a96d4723..1f8081dc7 100644 --- a/frame/item/appitem.h +++ b/frame/item/appitem.h @@ -55,6 +55,7 @@ public: inline ItemType itemType() const Q_DECL_OVERRIDE { return App; } QPixmap appIcon(){ return m_appIcon; } + virtual QString accessibleName(); signals: void requestActivateWindow(const WId wid) const; @@ -80,7 +81,6 @@ private: void invokedMenuItem(const QString &itemId, const bool checked) Q_DECL_OVERRIDE; const QString contextMenu() const Q_DECL_OVERRIDE; QWidget *popupTips() Q_DECL_OVERRIDE; - void startDrag(); bool hasAttention() const; diff --git a/frame/item/components/appsnapshot.cpp b/frame/item/components/appsnapshot.cpp index 99fdd1fec..83e52e215 100644 --- a/frame/item/components/appsnapshot.cpp +++ b/frame/item/components/appsnapshot.cpp @@ -60,11 +60,13 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent) , m_wmHelper(DWindowManagerHelper::instance()) { m_closeBtn2D->setFixedSize(24, 24); + m_closeBtn2D->setAccessibleName("closebutton-2d"); m_closeBtn2D->setNormalPic(":/icons/resources/close_round_normal.svg"); m_closeBtn2D->setHoverPic(":/icons/resources/close_round_hover.svg"); m_closeBtn2D->setPressPic(":/icons/resources/close_round_press.svg"); m_closeBtn2D->setVisible(false); m_title->setObjectName("AppSnapshotTitle"); + m_title->setAccessibleName("AppSnapshotTitle"); QHBoxLayout *centralLayout = new QHBoxLayout; centralLayout->addWidget(m_title); diff --git a/frame/item/components/floatingpreview.cpp b/frame/item/components/floatingpreview.cpp index a85cd6983..9cd098116 100644 --- a/frame/item/components/floatingpreview.cpp +++ b/frame/item/components/floatingpreview.cpp @@ -38,6 +38,7 @@ FloatingPreview::FloatingPreview(QWidget *parent) , m_closeBtn3D(new DImageButton) , m_titleBtn(new DPushButton) { + m_closeBtn3D->setAccessibleName("closebutton-3d"); m_closeBtn3D->setFixedSize(24, 24); m_closeBtn3D->setNormalPic(":/icons/resources/close_round_normal.svg"); m_closeBtn3D->setHoverPic(":/icons/resources/close_round_hover.svg"); diff --git a/frame/item/dockitem.cpp b/frame/item/dockitem.cpp index b94a129dd..b0f144cee 100644 --- a/frame/item/dockitem.cpp +++ b/frame/item/dockitem.cpp @@ -78,6 +78,11 @@ QSize DockItem::sizeHint() const return QSize(size, size); } +QString DockItem::accessibleName() +{ + return QString(); +} + DockItem::~DockItem() { if (m_popupShown) diff --git a/frame/item/dockitem.h b/frame/item/dockitem.h index 9b69e4dfe..3858ecf28 100644 --- a/frame/item/dockitem.h +++ b/frame/item/dockitem.h @@ -59,6 +59,7 @@ public: inline virtual ItemType itemType() const {Q_UNREACHABLE(); return App;} QSize sizeHint() const override; + virtual QString accessibleName(); public slots: virtual void refershIcon() {} diff --git a/frame/item/launcheritem.cpp b/frame/item/launcheritem.cpp index dbfbe12db..164e7eb72 100644 --- a/frame/item/launcheritem.cpp +++ b/frame/item/launcheritem.cpp @@ -40,9 +40,9 @@ LauncherItem::LauncherItem(QWidget *parent) { m_launcherInter->setSync(true, false); - setAccessibleName("Launcher"); m_tips->setVisible(false); m_tips->setObjectName("launcher"); + m_tips->setAccessibleName("launchertips"); connect(m_gsettings, &QGSettings::changed, this, &LauncherItem::onGSettingsChanged); } diff --git a/frame/item/pluginsitem.cpp b/frame/item/pluginsitem.cpp index 48d5c69e9..fff1e3433 100644 --- a/frame/item/pluginsitem.cpp +++ b/frame/item/pluginsitem.cpp @@ -48,6 +48,7 @@ PluginsItem::PluginsItem(PluginsItemInterface *const pluginInter, const QString m_centralWidget->setParent(this); m_centralWidget->setVisible(true); + m_centralWidget->setAccessibleName("centralwidget"); m_centralWidget->installEventFilter(this); QBoxLayout *hLayout = new QHBoxLayout; diff --git a/frame/main.cpp b/frame/main.cpp index 0855ede15..ba1e7ca73 100644 --- a/frame/main.cpp +++ b/frame/main.cpp @@ -20,8 +20,11 @@ */ #include "window/mainwindow.h" +#include "window/accessible.h" #include "util/themeappicon.h" +#include + #include #include #include @@ -49,17 +52,62 @@ void RegisterDdeSession() if (!cookie.isEmpty()) { QDBusPendingReply r = DDBusSender() - .interface("com.deepin.SessionManager") - .path("/com/deepin/SessionManager") - .service("com.deepin.SessionManager") - .method("Register") - .arg(QString(cookie)) - .call(); + .interface("com.deepin.SessionManager") + .path("/com/deepin/SessionManager") + .service("com.deepin.SessionManager") + .method("Register") + .arg(QString(cookie)) + .call(); qDebug() << Q_FUNC_INFO << r.value(); } } +QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) +{ + QAccessibleInterface *interface = nullptr; + + USE_ACCESSIBLE(classname,MainPanelControl); + USE_ACCESSIBLE(classname,LauncherItem); + USE_ACCESSIBLE(classname,AppItem); + USE_ACCESSIBLE(classname,PreviewContainer); + USE_ACCESSIBLE(classname,PluginsItem); + USE_ACCESSIBLE(classname,TrayPluginItem); + USE_ACCESSIBLE(classname,PlaceholderItem); + USE_ACCESSIBLE(classname,AppDragWidget); + USE_ACCESSIBLE(classname,AppSnapshot); + USE_ACCESSIBLE(classname,FloatingPreview); +// USE_ACCESSIBLE(classname,SNITrayWidget); + USE_ACCESSIBLE(classname,SystemTrayItem); + USE_ACCESSIBLE(classname,FashionTrayItem); + USE_ACCESSIBLE(classname,FashionTrayWidgetWrapper); + USE_ACCESSIBLE(classname,FashionTrayControlWidget); + USE_ACCESSIBLE(classname,AttentionContainer); + USE_ACCESSIBLE(classname,HoldContainer); + USE_ACCESSIBLE(classname,NormalContainer); + USE_ACCESSIBLE(classname,SpliterAnimated); + USE_ACCESSIBLE(classname,IndicatorTrayWidget); + USE_ACCESSIBLE(classname,XEmbedTrayWidget); + USE_ACCESSIBLE(classname,ShowDesktopWidget); + USE_ACCESSIBLE(classname,SoundItem); + USE_ACCESSIBLE(classname,SoundApplet); + USE_ACCESSIBLE(classname,SinkInputWidget); + USE_ACCESSIBLE(classname,VolumeSlider); + USE_ACCESSIBLE(classname,HorizontalSeparator); + USE_ACCESSIBLE(classname,TipsWidget); + USE_ACCESSIBLE(classname,DatetimeWidget); + USE_ACCESSIBLE(classname,OnboardItem); + USE_ACCESSIBLE(classname,TrashWidget); + USE_ACCESSIBLE(classname,PopupControlWidget); + USE_ACCESSIBLE(classname,ShutdownWidget); + USE_ACCESSIBLE(classname,MultitaskingWidget); + // USE_ACCESSIBLE(classname,OverlayWarningWidget); + + // Dtk controls redefine + // USE_ACCESSIBLE_BY_OBJECTNAME(classname,DImageButton,"closebutton");//TODO 未生效 + return interface; +} + int main(int argc, char *argv[]) { DGuiApplicationHelper::setUseInactiveColorGroup(false); @@ -74,6 +122,8 @@ int main(int argc, char *argv[]) app.setAttribute(Qt::AA_EnableHighDpiScaling, true); app.setAttribute(Qt::AA_UseHighDpiPixmaps, false); + QAccessible::installFactory(accessibleFactory); + // load dde-network-utils translator QTranslator translator; translator.load("/usr/share/dde-network-utils/translations/dde-network-utils_" + QLocale::system().name()); diff --git a/frame/panel/mainpanelcontrol.cpp b/frame/panel/mainpanelcontrol.cpp index a0ed18147..5dafcedd4 100755 --- a/frame/panel/mainpanelcontrol.cpp +++ b/frame/panel/mainpanelcontrol.cpp @@ -96,6 +96,10 @@ MainPanelControl::~MainPanelControl() void MainPanelControl::init() { // 主窗口 + m_fixedSpliter->setAccessibleName("spliter_fix"); + m_appSpliter->setAccessibleName("spliter_app"); + m_traySpliter->setAccessibleName("spliter_tray"); + m_mainPanelLayout->addWidget(m_fixedAreaWidget); m_mainPanelLayout->addWidget(m_fixedSpliter); m_mainPanelLayout->addWidget(m_appAreaWidget); @@ -113,24 +117,28 @@ void MainPanelControl::init() // 固定区域 m_fixedAreaWidget->setLayout(m_fixedAreaLayout); + m_fixedAreaWidget->setAccessibleName("fixedarea"); m_fixedAreaLayout->setMargin(0); m_fixedAreaLayout->setContentsMargins(0, 0, 0, 0); m_fixedAreaLayout->setSpacing(0); // 应用程序 m_appAreaSonWidget->setLayout(m_appAreaSonLayout); + m_appAreaSonWidget->setAccessibleName("apparea"); m_appAreaSonLayout->setMargin(0); m_appAreaSonLayout->setContentsMargins(0, 0, 0, 0); m_appAreaSonLayout->setSpacing(0); // 托盘 m_trayAreaWidget->setLayout(m_trayAreaLayout); + m_trayAreaWidget->setAccessibleName("trayarea"); m_trayAreaLayout->setMargin(0); m_trayAreaLayout->setContentsMargins(0, 10, 0, 10); m_trayAreaLayout->setSpacing(0); // 插件 m_pluginAreaWidget->setLayout(m_pluginLayout); + m_pluginAreaWidget->setAccessibleName("pluginarea"); m_pluginLayout->setMargin(0); m_pluginLayout->setContentsMargins(10, 10, 10, 10); m_pluginLayout->setSpacing(10); diff --git a/frame/panel/mainpanelcontrol.h b/frame/panel/mainpanelcontrol.h index f8df9afeb..bbaff3730 100755 --- a/frame/panel/mainpanelcontrol.h +++ b/frame/panel/mainpanelcontrol.h @@ -97,7 +97,7 @@ public slots: void removeItem(DockItem *item); void itemUpdated(DockItem *item); - // void + // void void onGSettingsChanged(const QString &key); protected: @@ -114,7 +114,7 @@ private: QBoxLayout *m_pluginLayout; QWidget *m_appAreaSonWidget; QBoxLayout *m_appAreaSonLayout; - QBoxLayout *m_appAreaLayout; + // QBoxLayout *m_appAreaLayout; Position m_position; QPointer m_placeholderItem; MainPanelDelegate *m_delegate; diff --git a/frame/util/dockpopupwindow.cpp b/frame/util/dockpopupwindow.cpp index 17c6dd05a..1742678c1 100644 --- a/frame/util/dockpopupwindow.cpp +++ b/frame/util/dockpopupwindow.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include DWIDGET_USE_NAMESPACE @@ -38,6 +40,8 @@ DockPopupWindow::DockPopupWindow(QWidget *parent) m_acceptDelayTimer->setSingleShot(true); m_acceptDelayTimer->setInterval(100); + setAccessibleName("popup"); + m_wmHelper = DWindowManagerHelper::instance(); compositeChanged(); @@ -66,6 +70,9 @@ void DockPopupWindow::setContent(QWidget *content) lastWidget->removeEventFilter(this); content->installEventFilter(this); + QAccessibleEvent event(this, QAccessible::NameChanged); + QAccessible::updateAccessibility(&event); + setAccessibleName(content->objectName() + "-popup"); DArrowRectangle::setContent(content); diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index 4c02b2d0a..f20eea41f 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -73,6 +73,7 @@ DockSettings::DockSettings(QWidget *parent) , m_itemManager(DockItemManager::instance(this)) , m_trashPluginShow(true) { + m_settingsMenu.setAccessibleName("dock-settingsmenu"); checkService(); m_primaryRawRect = m_displayInter->primaryRawRect(); @@ -98,12 +99,14 @@ DockSettings::DockSettings(QWidget *parent) m_smartHideAct.setCheckable(true); QMenu *modeSubMenu = new QMenu(&m_settingsMenu); + modeSubMenu->setAccessibleName("modesubmenu"); modeSubMenu->addAction(&m_fashionModeAct); modeSubMenu->addAction(&m_efficientModeAct); QAction *modeSubMenuAct = new QAction(tr("Mode"), this); modeSubMenuAct->setMenu(modeSubMenu); QMenu *locationSubMenu = new QMenu(&m_settingsMenu); + locationSubMenu->setAccessibleName("locationsubmenu"); locationSubMenu->addAction(&m_topPosAct); locationSubMenu->addAction(&m_bottomPosAct); locationSubMenu->addAction(&m_leftPosAct); @@ -112,6 +115,7 @@ DockSettings::DockSettings(QWidget *parent) locationSubMenuAct->setMenu(locationSubMenu); QMenu *statusSubMenu = new QMenu(&m_settingsMenu); + statusSubMenu->setAccessibleName("statussubmenu"); statusSubMenu->addAction(&m_keepShownAct); statusSubMenu->addAction(&m_keepHiddenAct); statusSubMenu->addAction(&m_smartHideAct); @@ -119,6 +123,7 @@ DockSettings::DockSettings(QWidget *parent) statusSubMenuAct->setMenu(statusSubMenu); m_hideSubMenu = new QMenu(&m_settingsMenu); + m_hideSubMenu->setAccessibleName("pluginsmenu"); QAction *hideSubMenuAct = new QAction(tr("Plugins"), this); hideSubMenuAct->setMenu(m_hideSubMenu); diff --git a/frame/window/accessible.cpp b/frame/window/accessible.cpp new file mode 100644 index 000000000..b5dd65ab2 --- /dev/null +++ b/frame/window/accessible.cpp @@ -0,0 +1,437 @@ +/* + * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. + * + * Author: fpc_diesel + * + * Maintainer: fpc_diesel + * + * 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 + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "accessible.h" + +QString getAccesibleName(QWidget *w,QString fallback) +{ + return w->accessibleName().isEmpty()?fallback:w->accessibleName(); +} + +QString AccessibleMainPanelControl::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"mainpanelcontrol"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleLauncherItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"launcheritem"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleAppItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->accessibleName()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessiblePreviewContainer::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"previewcontainer"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessiblePluginsItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->pluginName()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleTrayPluginItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->pluginName()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessiblePlaceholderItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"placeholderitem"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleAppDragWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"appdragwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleAppSnapshot::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"appsnapshot"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleFloatingPreview::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"floatingpreview"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +//QString AccessibleSNITrayWidget::text(QAccessible::Text t) const +//{ +// switch (t) { +// case QAccessible::Name: +// return getAccesibleName(m_w,m_w->itemKeyForConfig()); +// case QAccessible::Description: +// return m_description; +// default: +// return QString(); +// } +//} + +QString AccessibleSystemTrayItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->itemKeyForConfig()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleFashionTrayItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"fashiontrayitem"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleFashionTrayWidgetWrapper::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"fashiontraywrapper"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleFashionTrayControlWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"fashiontraycontrolwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleAttentionContainer::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"attentioncontainer"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleHoldContainer::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"holdcontainer"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleNormalContainer::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"normalcontainer"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleSpliterAnimated::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"spliteranimated"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleIndicatorTrayWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->itemKeyForConfig()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleXEmbedTrayWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->itemKeyForConfig()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleShowDesktopWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"showdesktop"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleSoundItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"sounditem"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleSoundApplet::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"soundapplet"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleSinkInputWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"sinkinputwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleVolumeSlider::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"volumeslider"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} + +QString AccessibleHorizontalSeparator::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"horizontalseparator"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleTipsWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,m_w->text()); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleDatetimeWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"datetimewidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleOnboardItem::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"onboarditem"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleTrashWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"trashwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessiblePopupControlWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"popupcontrolwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleShutdownWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"shutdownwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +QString AccessibleMultitaskingWidget::text(QAccessible::Text t) const +{ + switch (t) { + case QAccessible::Name: + return getAccesibleName(m_w,"multitaskingwidget"); + case QAccessible::Description: + return m_description; + default: + return QString(); + } +} +//QString AccessibleOverlayWarningWidget::text(QAccessible::Text t) const +//{ +// switch (t) { +// case QAccessible::Name: +// return "overlaywarningwidget"; +// case QAccessible::Description: +// return m_description; +// default: +// return QString(); +// } +//} +//QString AccessibleDImageButton::text(QAccessible::Text t) const +//{ +// switch (t) { +// case QAccessible::Name: +// return getAccesibleName(m_w,"DImageButton"); +// case QAccessible::Description: +// return m_description; +// default: +// return QString(); +// } +//} diff --git a/frame/window/accessible.h b/frame/window/accessible.h new file mode 100644 index 000000000..60bd21a28 --- /dev/null +++ b/frame/window/accessible.h @@ -0,0 +1,252 @@ +/* + * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. + * + * Author: fpc_diesel + * + * Maintainer: fpc_diesel + * + * 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 + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef ACCESSIBLE_H +#define ACCESSIBLE_H +#include "../panel/mainpanelcontrol.h" + +#include "../item/launcheritem.h" +#include "../item/appitem.h" +#include "../item/components/previewcontainer.h" +#include "../item/pluginsitem.h" +#include "../item/traypluginitem.h" +#include "../item/placeholderitem.h" +#include "../item/components/appdragwidget.h" +#include "../item/components/appsnapshot.h" +#include "../item/components/floatingpreview.h" + +//#include "../plugins/tray/snitraywidget.h" +#include "../plugins/tray/indicatortraywidget.h" +#include "../plugins/tray/xembedtraywidget.h" +#include "../plugins/tray/system-trays/systemtrayitem.h" +#include "../plugins/tray/fashiontray/fashiontrayitem.h" +#include "../plugins/tray/fashiontray/fashiontraywidgetwrapper.h" +#include "../plugins/tray/fashiontray/fashiontraycontrolwidget.h" +#include "../plugins/tray/fashiontray/containers/attentioncontainer.h" +#include "../plugins/tray/fashiontray/containers/holdcontainer.h" +#include "../plugins/tray/fashiontray/containers/normalcontainer.h" +#include "../plugins/tray/fashiontray/containers/spliteranimated.h" + +#include "../plugins/show-desktop/showdesktopwidget.h" + +#include "../plugins/sound/sounditem.h" +#include "../plugins/sound/soundapplet.h" +#include "../plugins/sound/sinkinputwidget.h" +#include "../plugins/sound/componments/volumeslider.h" +#include "../plugins/sound/componments/horizontalseparator.h" + +#include "../../widgets/tipswidget.h" + +#include "../plugins/datetime/datetimewidget.h" +#include "../plugins/onboard/onboarditem.h" +#include "../plugins/trash/trashwidget.h" +#include "../plugins/trash/popupcontrolwidget.h" +#include "../plugins/shutdown/shutdownwidget.h" +#include "../plugins/multitasking/multitaskingwidget.h" +//#include "overlay-warning/overlaywarningwidget.h" + +//#include + +#include +#include +#include +#include +#include + +//DWIDGET_USE_NAMESPACE + +/**************************************************************************************/ +// 构造函数 +#define FUNC_CREATE(classname,accessibletype,accessdescription) Accessible##classname(classname *w) \ + : QAccessibleWidget(w,accessibletype,#classname)\ + , m_w(w)\ + , m_description(accessdescription)\ +{}\ + private:\ + classname *m_w;\ + QString m_description;\ + +// 左键点击 +#define FUNC_PRESS(classobj) QStringList actionNames() const override{return QStringList() << pressAction();}\ + void doAction(const QString &actionName) override{\ + if(actionName == pressAction())\ +{\ + QPointF localPos = classobj->geometry().center();\ + QMouseEvent event(QEvent::MouseButtonPress,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,&event2);\ + }\ + }\ + +// 右键点击 +#define FUNC_SHOWMENU(classobj) QStringList actionNames() const override{return QStringList() << showMenuAction();}\ + void doAction(const QString &actionName) override{\ + if(actionName == showMenuAction())\ +{\ + QPointF localPos = classobj->geometry().center();\ + QMouseEvent event(QEvent::MouseButtonPress,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,&event2);\ + }\ + }\ + +// 左键和右键点击 +#define FUNC_PRESS_SHOWMENU(classobj) QStringList actionNames() const override{return QStringList() << pressAction() << showMenuAction();}\ + void doAction(const QString &actionName) override{\ + if(actionName == pressAction())\ +{\ + QPointF localPos = classobj->geometry().center();\ + QMouseEvent event(QEvent::MouseButtonPress,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,&event2);\ + }\ + else if(actionName == showMenuAction())\ +{\ + QPointF localPos = classobj->geometry().center();\ + QMouseEvent event(QEvent::MouseButtonPress,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,&event2);\ + }\ + }\ + +// 实现rect接口 +#define FUNC_RECT(classobj) QRect rect() const override{\ + if (!classobj->isVisible())\ + return QRect();\ + return classobj->geometry();\ + }\ + +// 启用accessible +#define USE_ACCESSIBLE(classnamestring,classname) if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType())\ +{\ + interface = new Accessible##classname(static_cast(object));\ + }\ + +// 启用accessible[指定objectname]---适用同一个类,但objectname不同的情况 +#define USE_ACCESSIBLE_BY_OBJECTNAME(classnamestring,classname,objectname) if (classnamestring == QLatin1String(#classname) && object && (object->objectName() == objectname) && object->isWidgetType())\ +{\ + interface = new Accessible##classname(static_cast(object));\ + }\ + +// 按钮类型的控件[仅有左键点击] +#define SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,accessdescription) class Accessible##classname : public QAccessibleWidget\ +{\ + public:\ + FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ + QString text(QAccessible::Text t) const override;/*需要单独实现*/\ + FUNC_PRESS(m_w)\ + };\ + +// 按钮类型的控件[仅有右键点击] +#define SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,accessdescription) class Accessible##classname : public QAccessibleWidget\ +{\ + public:\ + FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ + QString text(QAccessible::Text t) const override;/*需要单独实现*/\ + FUNC_SHOWMENU(m_w)\ + };\ + +// 按钮类型的控件[有左键点击和右键点击] +#define SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,accessdescription) class Accessible##classname : public QAccessibleWidget\ +{\ + public:\ + FUNC_CREATE(classname,QAccessible::Button,accessdescription)\ + QString text(QAccessible::Text t) const override;/*需要单独实现*/\ + FUNC_PRESS_SHOWMENU(m_w)\ + };\ + +// 标签类型的控件 +#define SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,aaccessibletype,accessdescription) class Accessible##classname : public QAccessibleWidget\ +{\ + public:\ + FUNC_CREATE(classname,aaccessibletype,accessdescription)\ + QString text(QAccessible::Text t) const override;/*需要单独实现*/\ + FUNC_RECT(m_w)\ + };\ + +// 简化使用 +#define SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(classname) SET_BUTTON_ACCESSIBLE_PRESS_SHOEMENU_DESCRIPTION(classname,"") +#define SET_BUTTON_ACCESSIBLE_SHOWMENU(classname) SET_BUTTON_ACCESSIBLE_SHOWMENU_DESCRIPTION(classname,"") +#define SET_BUTTON_ACCESSIBLE(classname) SET_BUTTON_ACCESSIBLE_PRESS_DESCRIPTION(classname,"") + +#define SET_LABEL_ACCESSIBLE(classname) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::StaticText,"") +#define SET_FORM_ACCESSIBLE(classname) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Form,"") +#define SET_SLIDER_ACCESSIBLE(classname) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Slider,"") +#define SET_SEPARATOR_ACCESSIBLE(classname) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::Separator,"") +/**************************************************************************************/ + +// 添加accessible +SET_BUTTON_ACCESSIBLE_SHOWMENU(MainPanelControl) + +SET_BUTTON_ACCESSIBLE(LauncherItem) +SET_BUTTON_ACCESSIBLE(AppItem) +SET_BUTTON_ACCESSIBLE(PreviewContainer)// +SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(PluginsItem) +SET_BUTTON_ACCESSIBLE(TrayPluginItem) +SET_BUTTON_ACCESSIBLE(PlaceholderItem) +SET_BUTTON_ACCESSIBLE(AppDragWidget) +SET_BUTTON_ACCESSIBLE(AppSnapshot) +SET_BUTTON_ACCESSIBLE(FloatingPreview)// + +// tray plugin +SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(XEmbedTrayWidget) +SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(IndicatorTrayWidget) +//SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SNITrayWidget) +SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU(SystemTrayItem) +SET_FORM_ACCESSIBLE(FashionTrayItem) +SET_FORM_ACCESSIBLE(FashionTrayWidgetWrapper) +SET_FORM_ACCESSIBLE(FashionTrayControlWidget) +SET_FORM_ACCESSIBLE(AttentionContainer) +SET_FORM_ACCESSIBLE(HoldContainer) +SET_FORM_ACCESSIBLE(NormalContainer) +SET_FORM_ACCESSIBLE(SpliterAnimated) + +// showdesktop plugin +SET_BUTTON_ACCESSIBLE(ShowDesktopWidget)// 未生效 + +// sound plugin +SET_BUTTON_ACCESSIBLE(SoundItem) +SET_FORM_ACCESSIBLE(SoundApplet) +SET_FORM_ACCESSIBLE(SinkInputWidget) +SET_SLIDER_ACCESSIBLE(VolumeSlider) +SET_SEPARATOR_ACCESSIBLE(HorizontalSeparator) + +SET_LABEL_ACCESSIBLE(TipsWidget) + +// fixed plugin +SET_FORM_ACCESSIBLE(DatetimeWidget) +SET_FORM_ACCESSIBLE(OnboardItem) +SET_FORM_ACCESSIBLE(TrashWidget) +SET_FORM_ACCESSIBLE(PopupControlWidget) +SET_FORM_ACCESSIBLE(ShutdownWidget) + +// multitasking plugin +SET_FORM_ACCESSIBLE(MultitaskingWidget) +//SET_FORM_ACCESSIBLE(OverlayWarningWidget) + + +/*********************/ +//SET_BUTTON_ACCESSIBLE(DImageButton) + +#endif // ACCESSIBLE_H diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index b841c9ff8..6e9fb240d 100755 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -149,6 +149,7 @@ MainWindow::MainWindow(QWidget *parent) m_dragWidget(new DragWidget(this)) { setAccessibleName("dock-mainwindow"); + m_mainPanel->setAccessibleName("mainpanel"); setAttribute(Qt::WA_TranslucentBackground); setMouseTracking(true); setAcceptDrops(true); diff --git a/plugins/overlay-warning/overlay-warning-plugin.cpp b/plugins/overlay-warning/overlay-warning-plugin.cpp index 571e6e060..aae9b1a6d 100644 --- a/plugins/overlay-warning/overlay-warning-plugin.cpp +++ b/plugins/overlay-warning/overlay-warning-plugin.cpp @@ -140,7 +140,7 @@ void OverlayWarningPlugin::loadPlugin() m_pluginLoaded = true; - m_warningWidget = new PluginWidget; + m_warningWidget = new OverlayWarningWidget; if (!isOverlayRoot()) { return; diff --git a/plugins/overlay-warning/overlay-warning-plugin.h b/plugins/overlay-warning/overlay-warning-plugin.h index 79be59404..138169404 100644 --- a/plugins/overlay-warning/overlay-warning-plugin.h +++ b/plugins/overlay-warning/overlay-warning-plugin.h @@ -24,7 +24,7 @@ #define OVERLAY_WARNING_PLUGIN_H #include "pluginsiteminterface.h" -#include "pluginwidget.h" +#include "overlaywarningwidget.h" #include "../widgets/tipswidget.h" #include @@ -71,7 +71,7 @@ private slots: private: bool m_pluginLoaded; - PluginWidget *m_warningWidget; + OverlayWarningWidget *m_warningWidget; QTimer *m_showDisableOverlayDialogTimer; }; diff --git a/plugins/overlay-warning/pluginwidget.cpp b/plugins/overlay-warning/overlaywarningwidget.cpp similarity index 86% rename from plugins/overlay-warning/pluginwidget.cpp rename to plugins/overlay-warning/overlaywarningwidget.cpp index aa1d5240f..7ff865dc3 100644 --- a/plugins/overlay-warning/pluginwidget.cpp +++ b/plugins/overlay-warning/overlaywarningwidget.cpp @@ -20,7 +20,7 @@ * along with this program. If not, see . */ -#include "pluginwidget.h" +#include "overlaywarningwidget.h" #include #include @@ -28,17 +28,17 @@ #include #include -PluginWidget::PluginWidget(QWidget *parent) +OverlayWarningWidget::OverlayWarningWidget(QWidget *parent) : QWidget(parent) { } -QSize PluginWidget::sizeHint() const +QSize OverlayWarningWidget::sizeHint() const { return QSize(26, 26); } -void PluginWidget::paintEvent(QPaintEvent *e) +void OverlayWarningWidget::paintEvent(QPaintEvent *e) { Q_UNUSED(e); @@ -62,7 +62,7 @@ void PluginWidget::paintEvent(QPaintEvent *e) painter.drawPixmap(rf.center() - rfp.center() / devicePixelRatioF(), pixmap); } -const QPixmap PluginWidget::loadSvg(const QString &fileName, const QSize &size) const +const QPixmap OverlayWarningWidget::loadSvg(const QString &fileName, const QSize &size) const { const auto ratio = devicePixelRatioF(); diff --git a/plugins/overlay-warning/pluginwidget.h b/plugins/overlay-warning/overlaywarningwidget.h similarity index 89% rename from plugins/overlay-warning/pluginwidget.h rename to plugins/overlay-warning/overlaywarningwidget.h index 10ef77cf2..3a8596be1 100644 --- a/plugins/overlay-warning/pluginwidget.h +++ b/plugins/overlay-warning/overlaywarningwidget.h @@ -23,16 +23,16 @@ #ifndef PLUGINWIDGET_H #define PLUGINWIDGET_H -#include "constants.h" +#include "../../interfaces/constants.h" #include -class PluginWidget : public QWidget +class OverlayWarningWidget : public QWidget { Q_OBJECT public: - explicit PluginWidget(QWidget *parent = 0); + explicit OverlayWarningWidget(QWidget *parent = 0); protected: QSize sizeHint() const; diff --git a/plugins/shutdown/shutdownplugin.cpp b/plugins/shutdown/shutdownplugin.cpp index ff2f92a58..fe6ed7dec 100644 --- a/plugins/shutdown/shutdownplugin.cpp +++ b/plugins/shutdown/shutdownplugin.cpp @@ -235,7 +235,7 @@ void ShutdownPlugin::loadPlugin() m_pluginLoaded = true; - m_shutdownWidget = new PluginWidget; + m_shutdownWidget = new ShutdownWidget; m_proxyInter->itemAdded(this, pluginName()); displayModeChanged(displayMode()); diff --git a/plugins/shutdown/shutdownplugin.h b/plugins/shutdown/shutdownplugin.h index c9a49830f..b52f2bc4d 100644 --- a/plugins/shutdown/shutdownplugin.h +++ b/plugins/shutdown/shutdownplugin.h @@ -23,7 +23,7 @@ #define SHUTDOWNPLUGIN_H #include "pluginsiteminterface.h" -#include "pluginwidget.h" +#include "shutdownwidget.h" #include "../widgets/tipswidget.h" #include "./dbus/dbuslogin1manager.h" @@ -107,7 +107,7 @@ private: private: bool m_pluginLoaded; - PluginWidget *m_shutdownWidget; + ShutdownWidget *m_shutdownWidget; TipsWidget *m_tipsLabel; DBusLogin1Manager* m_login1Inter; }; diff --git a/plugins/shutdown/pluginwidget.cpp b/plugins/shutdown/shutdownwidget.cpp similarity index 89% rename from plugins/shutdown/pluginwidget.cpp rename to plugins/shutdown/shutdownwidget.cpp index 2a14bd404..8b62a4abf 100644 --- a/plugins/shutdown/pluginwidget.cpp +++ b/plugins/shutdown/shutdownwidget.cpp @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -#include "pluginwidget.h" +#include "shutdownwidget.h" #include #include @@ -32,7 +32,7 @@ DWIDGET_USE_NAMESPACE; -PluginWidget::PluginWidget(QWidget *parent) +ShutdownWidget::ShutdownWidget(QWidget *parent) : QWidget(parent) , m_hover(false) , m_pressed(false) @@ -46,7 +46,7 @@ PluginWidget::PluginWidget(QWidget *parent) m_icon = QIcon::fromTheme(":/icons/resources/icons/system-shutdown.svg"); } -void PluginWidget::paintEvent(QPaintEvent *e) +void ShutdownWidget::paintEvent(QPaintEvent *e) { Q_UNUSED(e); @@ -110,7 +110,7 @@ void PluginWidget::paintEvent(QPaintEvent *e) painter.drawPixmap(rf.center() - rfp.center() / pixmap.devicePixelRatioF(), pixmap); } -const QPixmap PluginWidget::loadSvg(const QString &fileName, const QSize &size) const +const QPixmap ShutdownWidget::loadSvg(const QString &fileName, const QSize &size) const { const auto ratio = devicePixelRatioF(); @@ -121,7 +121,7 @@ const QPixmap PluginWidget::loadSvg(const QString &fileName, const QSize &size) return pixmap; } -void PluginWidget::mousePressEvent(QMouseEvent *event) +void ShutdownWidget::mousePressEvent(QMouseEvent *event) { m_pressed = true; update(); @@ -129,7 +129,7 @@ void PluginWidget::mousePressEvent(QMouseEvent *event) QWidget::mousePressEvent(event); } -void PluginWidget::mouseReleaseEvent(QMouseEvent *event) +void ShutdownWidget::mouseReleaseEvent(QMouseEvent *event) { m_pressed = false; m_hover = false; @@ -138,13 +138,13 @@ void PluginWidget::mouseReleaseEvent(QMouseEvent *event) QWidget::mouseReleaseEvent(event); } -void PluginWidget::mouseMoveEvent(QMouseEvent *event) +void ShutdownWidget::mouseMoveEvent(QMouseEvent *event) { m_hover = true; QWidget::mouseMoveEvent(event); } -void PluginWidget::leaveEvent(QEvent *event) +void ShutdownWidget::leaveEvent(QEvent *event) { m_hover = false; m_pressed = false; diff --git a/plugins/shutdown/pluginwidget.h b/plugins/shutdown/shutdownwidget.h similarity index 94% rename from plugins/shutdown/pluginwidget.h rename to plugins/shutdown/shutdownwidget.h index 290489db6..414ffe5b4 100644 --- a/plugins/shutdown/pluginwidget.h +++ b/plugins/shutdown/shutdownwidget.h @@ -27,12 +27,12 @@ #include #include -class PluginWidget : public QWidget +class ShutdownWidget : public QWidget { Q_OBJECT public: - explicit PluginWidget(QWidget *parent = 0); + explicit ShutdownWidget(QWidget *parent = 0); protected: void paintEvent(QPaintEvent *e) override; diff --git a/plugins/sound/soundapplet.cpp b/plugins/sound/soundapplet.cpp index c21933f03..db2084629 100644 --- a/plugins/sound/soundapplet.cpp +++ b/plugins/sound/soundapplet.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #define WIDTH 200 @@ -49,18 +50,22 @@ SoundApplet::SoundApplet(QWidget *parent) , m_audioInter(new DBusAudio(this)) , m_defSinkInter(nullptr) { -// QIcon::setThemeName("deepin"); - + // QIcon::setThemeName("deepin"); + m_centralWidget->setAccessibleName("volumn-centralwidget"); m_volumeBtn->setAccessibleName("volume-button"); + m_volumeIconMax->setAccessibleName("volume-iconmax"); + m_volumeSlider->setAccessibleName("volume-slider"); + m_soundShow->setAccessibleName("volume-soundtips"); + this->horizontalScrollBar()->setAccessibleName("volume-horizontalscrollbar"); + this->verticalScrollBar()->setAccessibleName("volume-verticalscrollbar"); + m_volumeIconMax->setFixedSize(ICON_SIZE, ICON_SIZE); - m_volumeSlider->setAccessibleName("volume-slider"); m_soundShow->setText(QString("%1%").arg(0)); TipsWidget *deviceLabel = new TipsWidget; deviceLabel->setText(tr("Device")); - QHBoxLayout *deviceLayout =new QHBoxLayout; deviceLayout->addSpacing(2); deviceLayout->addWidget(deviceLabel,0, Qt::AlignLeft); @@ -70,7 +75,7 @@ SoundApplet::SoundApplet(QWidget *parent) QVBoxLayout *deviceLineLayout = new QVBoxLayout; deviceLineLayout->addLayout(deviceLayout); -// deviceLineLayout->addSpacing(12); + // deviceLineLayout->addSpacing(12); deviceLineLayout->addWidget(new HorizontalSeparator); deviceLineLayout->setMargin(0); deviceLineLayout->setSpacing(10); @@ -102,6 +107,7 @@ SoundApplet::SoundApplet(QWidget *parent) appLineVLayout->setMargin(0); m_applicationTitle->setLayout(appLineVLayout); + m_applicationTitle->setAccessibleName("applicationtitle"); m_volumeBtn->setFixedSize(ICON_SIZE, ICON_SIZE); m_volumeSlider->setMinimum(0); diff --git a/plugins/sound/sounditem.cpp b/plugins/sound/sounditem.cpp index eb33fcfeb..b04c1a592 100644 --- a/plugins/sound/sounditem.cpp +++ b/plugins/sound/sounditem.cpp @@ -47,6 +47,7 @@ SoundItem::SoundItem(QWidget *parent) m_sinkInter(nullptr) { m_tipsLabel->setObjectName("sound"); + m_tipsLabel->setAccessibleName("soundtips"); m_tipsLabel->setVisible(false); m_applet->setVisible(false); diff --git a/plugins/tray/CMakeLists.txt b/plugins/tray/CMakeLists.txt index 8869024b2..a82939134 100644 --- a/plugins/tray/CMakeLists.txt +++ b/plugins/tray/CMakeLists.txt @@ -37,7 +37,7 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} ../../interfaces - ../../frame) + ../../frame ) target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkWidget_LIBRARIES} ${Qt5Widgets_LIBRARIES} diff --git a/plugins/tray/fashiontray/containers/abstractcontainer.h b/plugins/tray/fashiontray/containers/abstractcontainer.h index 9e9ec5845..4481cf341 100644 --- a/plugins/tray/fashiontray/containers/abstractcontainer.h +++ b/plugins/tray/fashiontray/containers/abstractcontainer.h @@ -2,7 +2,7 @@ #define ABSTRACTCONTAINER_H #include "constants.h" -#include "trayplugin.h" +#include "../../trayplugin.h" #include "../fashiontraywidgetwrapper.h" #include diff --git a/plugins/tray/fashiontray/fashiontrayitem.cpp b/plugins/tray/fashiontray/fashiontrayitem.cpp index 7a44c4eed..dbebb9dd1 100644 --- a/plugins/tray/fashiontray/fashiontrayitem.cpp +++ b/plugins/tray/fashiontray/fashiontrayitem.cpp @@ -55,6 +55,7 @@ FashionTrayItem::FashionTrayItem(TrayPlugin *trayPlugin, QWidget *parent) m_mainBoxLayout->setSpacing(0); m_leftSpace->setFixedSize(TraySpace, TraySpace); + m_leftSpace->setAccessibleName("leftspace"); m_mainBoxLayout->addWidget(m_leftSpace); m_mainBoxLayout->addWidget(m_normalContainer); diff --git a/plugins/tray/fashiontray/fashiontrayitem.h b/plugins/tray/fashiontray/fashiontrayitem.h index bac4b6671..40b150687 100644 --- a/plugins/tray/fashiontray/fashiontrayitem.h +++ b/plugins/tray/fashiontray/fashiontrayitem.h @@ -23,7 +23,7 @@ #define FASHIONTRAYITEM_H #include "constants.h" -#include "trayplugin.h" +#include "../trayplugin.h" #include "fashiontraywidgetwrapper.h" #include "fashiontraycontrolwidget.h" #include "containers/normalcontainer.h" @@ -35,7 +35,7 @@ #include #include -#include +#include "../abstracttraywidget.h" #define FASHION_MODE_ITEM_KEY "fashion-mode-item" diff --git a/plugins/tray/fashiontray/fashiontraywidgetwrapper.h b/plugins/tray/fashiontray/fashiontraywidgetwrapper.h index 4bef15e62..448eb7c01 100644 --- a/plugins/tray/fashiontray/fashiontraywidgetwrapper.h +++ b/plugins/tray/fashiontray/fashiontraywidgetwrapper.h @@ -22,7 +22,7 @@ #ifndef FASHIONTRAYWIDGETWRAPPER_H #define FASHIONTRAYWIDGETWRAPPER_H -#include "abstracttraywidget.h" +#include "../abstracttraywidget.h" #include #include diff --git a/plugins/tray/system-trays/systemtrayitem.h b/plugins/tray/system-trays/systemtrayitem.h index 3994d939b..43f42e7c2 100644 --- a/plugins/tray/system-trays/systemtrayitem.h +++ b/plugins/tray/system-trays/systemtrayitem.h @@ -23,7 +23,7 @@ #define SYSTEMTRAYITEM_H #include "constants.h" -#include "abstracttraywidget.h" +#include "../abstracttraywidget.h" #include "util/dockpopupwindow.h" #include "pluginsiteminterface.h" diff --git a/widgets/tipswidget.h b/widgets/tipswidget.h index cb5e0b61a..e2c951261 100644 --- a/widgets/tipswidget.h +++ b/widgets/tipswidget.h @@ -9,6 +9,7 @@ class TipsWidget : public QFrame public: explicit TipsWidget(QWidget *parent = nullptr); + const QString& text(){return m_text;} void setText(const QString &text); void refreshFont();