diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a459c836..a59624ad8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,3 @@ install(FILES "cmake/DdeDock/DdeDockConfig.cmake" ## services files install(FILES frame/com.deepin.dde.Dock.service DESTINATION /usr/share/dbus-1/services) - -install(FILES gschema/com.deepin.dde.dock.module.gschema.xml - DESTINATION share/glib-2.0/schemas) diff --git a/frame/controller/dockitemmanager.cpp b/frame/controller/dockitemmanager.cpp index 955c61108..e32497049 100644 --- a/frame/controller/dockitemmanager.cpp +++ b/frame/controller/dockitemmanager.cpp @@ -281,7 +281,6 @@ void DockItemManager::pluginItemInserted(PluginsItem *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 76a9fe947..a19c88a1e 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -104,7 +104,7 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent) m_active = m_itemEntryInter->isActive(); m_appNameTips->setObjectName("AppItemTips"); - m_appNameTips->setAccessibleName(m_itemEntryInter->name() + "-tips"); + m_appNameTips->setAccessibleName(m_itemEntryInter->name()); m_appNameTips->setVisible(false); m_appNameTips->installEventFilter(this); diff --git a/frame/item/components/appsnapshot.cpp b/frame/item/components/appsnapshot.cpp index 83e52e215..388f5027f 100644 --- a/frame/item/components/appsnapshot.cpp +++ b/frame/item/components/appsnapshot.cpp @@ -60,13 +60,12 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent) , m_wmHelper(DWindowManagerHelper::instance()) { 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->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 9cd098116..f042938dc 100644 --- a/frame/item/components/floatingpreview.cpp +++ b/frame/item/components/floatingpreview.cpp @@ -38,7 +38,7 @@ FloatingPreview::FloatingPreview(QWidget *parent) , m_closeBtn3D(new DImageButton) , m_titleBtn(new DPushButton) { - m_closeBtn3D->setAccessibleName("closebutton-3d"); + m_closeBtn3D->setObjectName("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/pluginsitem.cpp b/frame/item/pluginsitem.cpp index fff1e3433..52499f660 100644 --- a/frame/item/pluginsitem.cpp +++ b/frame/item/pluginsitem.cpp @@ -57,7 +57,7 @@ PluginsItem::PluginsItem(PluginsItemInterface *const pluginInter, const QString hLayout->setMargin(0); setLayout(hLayout); - setAccessibleName(pluginInter->pluginName() + "-" + m_itemKey); + setAccessibleName(pluginInter->pluginName()); setAttribute(Qt::WA_TranslucentBackground); const QByteArray &schema{ diff --git a/frame/main.cpp b/frame/main.cpp index af108ab99..328f05720 100644 --- a/frame/main.cpp +++ b/frame/main.cpp @@ -25,12 +25,11 @@ #include "controller/dockitemmanager.h" #include +#include #include #include #include - -#include #include #include @@ -66,57 +65,14 @@ void RegisterDdeSession() } } -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); - - return interface; -} - int main(int argc, char *argv[]) { DGuiApplicationHelper::setUseInactiveColorGroup(false); DApplication::loadDXcbPlugin(); DApplication app(argc, argv); - // 锁定物理内存,用于国测测试 - qDebug() << "lock memory result:" << mlockall(MCL_CURRENT | MCL_FUTURE); + // 锁定物理内存,用于国测测试[会显著增加内存占用] +// qDebug() << "lock memory result:" << mlockall(MCL_CURRENT | MCL_FUTURE); app.setOrganizationName("deepin"); app.setApplicationName("dde-dock"); diff --git a/frame/panel/mainpanelcontrol.cpp b/frame/panel/mainpanelcontrol.cpp index ced6d12fd..18990eb64 100755 --- a/frame/panel/mainpanelcontrol.cpp +++ b/frame/panel/mainpanelcontrol.cpp @@ -82,6 +82,7 @@ MainPanelControl::MainPanelControl(QWidget *parent) setAcceptDrops(true); setMouseTracking(true); m_desktopWidget->setMouseTracking(true); + m_desktopWidget->setObjectName("showdesktoparea"); m_appAreaWidget->installEventFilter(this); m_appAreaSonWidget->installEventFilter(this); @@ -102,9 +103,9 @@ MainPanelControl::~MainPanelControl() void MainPanelControl::init() { // 主窗口 - m_fixedSpliter->setAccessibleName("spliter_fix"); - m_appSpliter->setAccessibleName("spliter_app"); - m_traySpliter->setAccessibleName("spliter_tray"); + m_fixedSpliter->setObjectName("spliter_fix"); + m_appSpliter->setObjectName("spliter_app"); + m_traySpliter->setObjectName("spliter_tray"); m_mainPanelLayout->addWidget(m_fixedAreaWidget); m_mainPanelLayout->addWidget(m_fixedSpliter); @@ -123,28 +124,28 @@ void MainPanelControl::init() // 固定区域 m_fixedAreaWidget->setLayout(m_fixedAreaLayout); - m_fixedAreaWidget->setAccessibleName("fixedarea"); + m_fixedAreaWidget->setObjectName("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_appAreaSonWidget->setObjectName("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_trayAreaWidget->setObjectName("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_pluginAreaWidget->setObjectName("pluginarea"); m_pluginLayout->setMargin(0); m_pluginLayout->setSpacing(10); diff --git a/frame/util/abstractpluginscontroller.cpp b/frame/util/abstractpluginscontroller.cpp index 19b97309e..6b76addfa 100644 --- a/frame/util/abstractpluginscontroller.cpp +++ b/frame/util/abstractpluginscontroller.cpp @@ -230,6 +230,7 @@ void AbstractPluginsController::initPlugin(PluginsItemInterface *interface) void AbstractPluginsController::refreshPluginSettings() { const QString &pluginSettings = m_dockDaemonInter->GetPluginSettings().value(); + qDebug() << pluginSettings; if (pluginSettings.isEmpty()) { qDebug() << "Error! get plugin settings from dbus failed!"; return; diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index 878608f3e..f81a78831 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -74,7 +74,7 @@ DockSettings::DockSettings(QWidget *parent) , m_itemManager(DockItemManager::instance(this)) , m_trashPluginShow(true) { - m_settingsMenu.setAccessibleName("dock-settingsmenu"); + m_settingsMenu.setAccessibleName("settingsmenu"); checkService(); onMonitorListChanged(m_displayInter->monitors()); @@ -464,6 +464,11 @@ void DockSettings::primaryScreenChanged() m_screenRawHeight = m_displayInter->screenHeight(); m_screenRawWidth = m_displayInter->screenWidth(); + //为了防止当后端发送错误值,然后发送正确值时,任务栏没有移动在相应的位置 + //当qt没有获取到屏幕资源时候,move函数会失效。可以直接return + if (m_screenRawHeight == 0 || m_screenRawWidth == 0){ + return; + } calculateMultiScreensPos(); emit dataChanged(); calculateWindowConfig(); diff --git a/frame/window/accessible.cpp b/frame/window/accessible.cpp deleted file mode 100644 index 6584d2a2b..000000000 --- a/frame/window/accessible.cpp +++ /dev/null @@ -1,427 +0,0 @@ -/* - * 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(); -// } -//} diff --git a/frame/window/accessible.h b/frame/window/accessible.h index 3719a8fe5..ff076eaf5 100644 --- a/frame/window/accessible.h +++ b/frame/window/accessible.h @@ -1,27 +1,9 @@ -/* - * 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 "accessibledefine.h" +#include "mainwindow.h" #include "../panel/mainpanelcontrol.h" +#include "../../widgets/tipswidget.h" +#include "../util/dockpopupwindow.h" #include "../item/launcheritem.h" #include "../item/appitem.h" @@ -53,194 +35,112 @@ #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 "../plugins/overlay-warning/overlaywarningwidget.h" +#include "../plugins/overlay-warning/overlaywarningwidget.h" -#include -#include -#include -#include -#include +#include +#include +#include -/**************************************************************************************/ -// 构造函数 -#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,"") -/**************************************************************************************/ +DWIDGET_USE_NAMESPACE // 添加accessible -SET_BUTTON_ACCESSIBLE_SHOWMENU(MainPanelControl) +SET_WIDGET_ACCESSIBLE(MainWindow, QAccessible::Form, "mainwindow") +SET_BUTTON_ACCESSIBLE(MainPanelControl, "mainpanelcontrol") +SET_LABEL_ACCESSIBLE(TipsWidget, "tips") +SET_WIDGET_ACCESSIBLE(DockPopupWindow, QAccessible::Form, "popupwindow") +SET_BUTTON_ACCESSIBLE(LauncherItem, "launcheritem") +SET_BUTTON_ACCESSIBLE(AppItem, "appitem") +SET_BUTTON_ACCESSIBLE(PreviewContainer, "previewcontainer") +SET_BUTTON_ACCESSIBLE(PluginsItem, m_w->pluginName()) +SET_BUTTON_ACCESSIBLE(TrayPluginItem, m_w->pluginName()) +SET_BUTTON_ACCESSIBLE(PlaceholderItem, "placeholderitem") +SET_BUTTON_ACCESSIBLE(AppDragWidget, "appdragwidget") +SET_BUTTON_ACCESSIBLE(AppSnapshot, "appsnapshot") +SET_BUTTON_ACCESSIBLE(FloatingPreview, "floatingpreview") +SET_BUTTON_ACCESSIBLE(XEmbedTrayWidget, m_w->itemKeyForConfig()) +SET_BUTTON_ACCESSIBLE(IndicatorTrayWidget, m_w->itemKeyForConfig()) +SET_BUTTON_ACCESSIBLE(SNITrayWidget, m_w->itemKeyForConfig()) +SET_BUTTON_ACCESSIBLE(SystemTrayItem, m_w->itemKeyForConfig()) +SET_WIDGET_ACCESSIBLE(FashionTrayItem, QAccessible::Form, "fashiontrayitem") +SET_WIDGET_ACCESSIBLE(FashionTrayWidgetWrapper, QAccessible::Form, "fashiontraywrapper") +SET_BUTTON_ACCESSIBLE(FashionTrayControlWidget, "fashiontraycontrolwidget") +SET_WIDGET_ACCESSIBLE(AttentionContainer, QAccessible::Form, "attentioncontainer") +SET_WIDGET_ACCESSIBLE(HoldContainer, QAccessible::Form, "holdcontainer") +SET_WIDGET_ACCESSIBLE(NormalContainer, QAccessible::Form, "normalcontainer") +SET_WIDGET_ACCESSIBLE(SpliterAnimated, QAccessible::Form, "spliteranimated") +SET_BUTTON_ACCESSIBLE(SoundItem, "plugin-sounditem") +SET_WIDGET_ACCESSIBLE(SoundApplet, QAccessible::Form, "soundapplet") +SET_WIDGET_ACCESSIBLE(SinkInputWidget, QAccessible::Form, "sinkinputwidget") +SET_WIDGET_ACCESSIBLE(VolumeSlider, QAccessible::Slider, "volumeslider") +SET_WIDGET_ACCESSIBLE(HorizontalSeparator, QAccessible::Separator, "horizontalseparator") +SET_WIDGET_ACCESSIBLE(DatetimeWidget, QAccessible::Form, "plugin-datetime") +SET_WIDGET_ACCESSIBLE(OnboardItem, QAccessible::Form, "plugin-onboard") +SET_WIDGET_ACCESSIBLE(TrashWidget, QAccessible::Form, "plugin-trash") +SET_BUTTON_ACCESSIBLE(PopupControlWidget, "popupcontrolwidget") +SET_WIDGET_ACCESSIBLE(ShutdownWidget, QAccessible::Form, "plugin-shutdown") +SET_WIDGET_ACCESSIBLE(MultitaskingWidget, QAccessible::Form, "plugin-multitasking") +SET_WIDGET_ACCESSIBLE(ShowDesktopWidget, QAccessible::Form, "plugin-showdesktop") +SET_WIDGET_ACCESSIBLE(OverlayWarningWidget, QAccessible::Form, "plugin-overlaywarningwidget") +SET_WIDGET_ACCESSIBLE(QWidget, QAccessible::Form, m_w->objectName().isEmpty() ? "widget" : m_w->objectName()) +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()) -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) +QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) +{ + QAccessibleInterface *interface = nullptr; -// 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) + USE_ACCESSIBLE(classname, MainWindow); + USE_ACCESSIBLE(classname, MainPanelControl); + USE_ACCESSIBLE(classname, TipsWidget); + USE_ACCESSIBLE(classname, DockPopupWindow); + 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, SoundItem); + USE_ACCESSIBLE(classname, SoundApplet); + USE_ACCESSIBLE(classname, SinkInputWidget); + USE_ACCESSIBLE(classname, VolumeSlider); + USE_ACCESSIBLE(classname, HorizontalSeparator); + 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, ShowDesktopWidget); + USE_ACCESSIBLE(classname, OverlayWarningWidget); + 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-3d"); + USE_ACCESSIBLE_BY_OBJECTNAME(QString(classname).replace("Dtk::Widget::", ""), DSwitchButton, ""); -// 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) - -#endif // ACCESSIBLE_H + return interface; +} diff --git a/frame/window/accessibledefine.h b/frame/window/accessibledefine.h new file mode 100644 index 000000000..322516b2c --- /dev/null +++ b/frame/window/accessibledefine.h @@ -0,0 +1,254 @@ +/* + * 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 ACCESSIBLEDEFINE_H +#define ACCESSIBLEDEFINE_H + +// 为了方便使用,把相关定义独立出来,如有需要,直接包含这个头文件,然后使用SET_*的宏去设置,USE_*宏开启即可 +// 注意:对项目中出现的所有的QWidget的派生类都要再启用一次accessiblity,包括qt的原生控件[qt未限制其标记名称为空的情况] +// 注意:使用USE_ACCESSIBLE_BY_OBJECTNAME开启accessiblity的时候,一定要再最这个类用一下USE_ACCESSIBLE,否则标记可能会遗漏 + +/* 宏参数说明 +* classname:类名,例如DLineEdit +* accessiblename:accessible唯一标识,需保证唯一性[getAccessibleName函数处理],优先使用QObject::setAccessibleName值 +* accessibletype:即QAccessible::Role,表示标识控件的类型 +* classobj:QObject指针 +* accessdescription:accessible描述内容,考虑到暂时用不到,目前都默认为空,有需要可自行设计接口 +* +* 部分创建宏说明 +* FUNC_CREATE:创建构造函数 +* FUNC_PRESS:创建Press接口 +* FUNC_SHOWMENU:创建右键菜单接口 +* FUNC_PRESS_SHOWMENU:上两者的综合 +* FUNC_RECT:实现rect接口 +* FUNC_TEXT:实现text接口 +* FUNC_TEXT_BY_LABEL:实现text接口,使用这个宏,需要被添加的类有text接口,从而得到其Value +* USE_ACCESSIBLE:对传入的类型设置其accessible功能 +* USE_ACCESSIBLE_BY_OBJECTNAME:同上,[指定objectname]---适用同一个类,但objectname不同的情况 +* +* 设置为指定类型的Accessible控件宏 +* SET_BUTTON_ACCESSIBLE_PRESS_SHOWMENU:button类型,添加press和showmenu功能 +* SET_BUTTON_ACCESSIBLE_SHOWMENU:button类型,添加showmenu功能 +* SET_BUTTON_ACCESSIBLE:button类型,添加press功能 +* SET_LABEL_ACCESSIBLE:label类型,用于标签控件 +* SET_FORM_ACCESSIBLE:form类型,用于widget控件 +* SET_SLIDER_ACCESSIBLE:slider类型,用于滑块控件 +* SET_SEPARATOR_ACCESSIBLE:separator类型,用于分隔符控件 +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define SEPARATOR "_" + +inline QString getAccessibleName(QWidget *w, QAccessible::Role r, const QString &fallback) +{ + const QString lowerFallback = fallback.toLower(); + // 避免重复生成 + static QMap< QObject *, QString > objnameMap; + if (!objnameMap[w].isEmpty()) + return objnameMap[w]; + + static QMap< QAccessible::Role, QList< QString > > accessibleMap; + QString oldAccessName = w->accessibleName().toLower(); + oldAccessName.replace(SEPARATOR, ""); + + // 按照类型添加固定前缀 + QMetaEnum metaEnum = QMetaEnum::fromType(); + QByteArray prefix = metaEnum.valueToKeys(r); + switch (r) { + case QAccessible::Button: prefix = "Btn"; break; + case QAccessible::StaticText: prefix = "Label"; break; + default: break; + } + + // 再加上标识 + QString accessibleName = QString::fromLatin1(prefix) + SEPARATOR; + accessibleName += oldAccessName.isEmpty() ? lowerFallback : oldAccessName; + // 检查名称是否唯一 + if (accessibleMap[r].contains(accessibleName)) { + if (!objnameMap.key(accessibleName)) { + objnameMap.remove(objnameMap.key(accessibleName)); + objnameMap.insert(w, accessibleName); + return accessibleName; + } + // 获取编号,然后+1 + int pos = accessibleName.indexOf(SEPARATOR); + int id = accessibleName.mid(pos + 1).toInt(); + + QString newAccessibleName; + do { + // 一直找到一个不重复的名字 + newAccessibleName = accessibleName + SEPARATOR + QString::number(++id); + } while (accessibleMap[r].contains(newAccessibleName)); + + accessibleMap[r].append(newAccessibleName); + objnameMap.insert(w, newAccessibleName); + + return newAccessibleName; + } else { + accessibleMap[r].append(accessibleName); + objnameMap.insert(w, accessibleName); + + return accessibleName; + } +} + +#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{\ + if(!classobj->isEnabled())\ + return QStringList();\ + 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{\ + if(!classobj->isEnabled())\ + return QStringList();\ + 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{\ + if(!classobj->isEnabled())\ + return QStringList();\ + 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);\ + }\ + }\ + +#define FUNC_RECT(classobj) QRect rect() const override{\ + if (!classobj->isVisible())\ + return QRect();\ + QPoint pos = classobj->mapToGlobal(QPoint(0, 0));\ + return QRect(pos.x(), pos.y(), classobj->width(), classobj->height());\ + }\ + +#define FUNC_TEXT(classname,accessiblename) QString Accessible##classname::text(QAccessible::Text t) const{\ + switch (t) {\ + case QAccessible::Name:\ + return getAccessibleName(m_w, this->role(), accessiblename);\ + case QAccessible::Description:\ + return m_description;\ + default:\ + return QString();\ + }\ + }\ + +#define FUNC_TEXT_BY_LABEL(classname,accessiblename) QString Accessible##classname::text(QAccessible::Text t) const{\ + switch (t) {\ + case QAccessible::Name:\ + return getAccessibleName(m_w, this->role(), accessiblename);\ + case QAccessible::Description:\ + return m_description;\ + case QAccessible::Value:\ + return m_w->text();\ + default:\ + return QString();\ + }\ + }\ + +#define USE_ACCESSIBLE(classnamestring,classname) if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType())\ + {\ + interface = new Accessible##classname(static_cast(object));\ + }\ + +#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_ACCESSIBLE_WITH_PRESS_SHOWMENU_DESCRIPTION(classname,aaccessibletype,accessdescription) class Accessible##classname : public QAccessibleWidget\ + {\ + public:\ + FUNC_CREATE(classname,aaccessibletype,accessdescription)\ + QString text(QAccessible::Text t) const override;\ + FUNC_PRESS_SHOWMENU(m_w)\ + };\ + +#define SET_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(classname,accessiblename) SET_ACCESSIBLE_WITH_PRESS_SHOWMENU_DESCRIPTION(classname,QAccessible::Button,"")\ + FUNC_TEXT(classname,accessiblename) + +#define SET_MENU_ACCESSIBLE(classname,accessiblename) SET_ACCESSIBLE_WITH_PRESS_SHOWMENU_DESCRIPTION(classname,QAccessible::PopupMenu,"")\ + FUNC_TEXT(classname,accessiblename) + +#define SET_LABEL_ACCESSIBLE(classname,accessiblename) SET_ACCESSIBLE_WITH_DESCRIPTION(classname,QAccessible::StaticText,"")\ + FUNC_TEXT_BY_LABEL(classname,accessiblename) + +#define SET_WIDGET_ACCESSIBLE(classname,aaccessibletype,accessiblename) SET_ACCESSIBLE_WITH_DESCRIPTION(classname,aaccessibletype,"");\ + FUNC_TEXT(classname,accessiblename) +/************************************************************************************************/ + +#endif // ACCESSIBLEDEFINE_H diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index 17359e4a3..fe78a88b7 100755 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -149,7 +149,7 @@ MainWindow::MainWindow(QWidget *parent) m_sniWatcher(new StatusNotifierWatcher(SNI_WATCHER_SERVICE, SNI_WATCHER_PATH, QDBusConnection::sessionBus(), this)), m_dragWidget(new DragWidget(this)) { - setAccessibleName("dock-mainwindow"); + setAccessibleName("mainwindow"); m_mainPanel->setAccessibleName("mainpanel"); setAttribute(Qt::WA_TranslucentBackground); setMouseTracking(true); @@ -614,6 +614,13 @@ void MainWindow::updatePosition() void MainWindow::updateGeometry() { // DockDisplayMode and DockPosition MUST be set before invoke setFixedSize method of MainPanel + + //为了防止当后端发送错误值,然后发送正确值时,任务栏没有移动在相应的位置 + //当qt没有获取到屏幕资源时候,move函数会失效。可以直接return + if(m_settings->primaryRect().width() ==0 || m_settings->primaryRect().height() == 0){ + return; + } + setStrutPartial(); m_mainPanel->setDisplayMode(m_settings->displayMode()); @@ -735,7 +742,10 @@ void MainWindow::expand() setVisible(true); if (m_panelHideAni->state() == QPropertyAnimation::Running) - return; + { + m_panelHideAni->stop(); + emit m_panelHideAni->finished(); + } const auto showAniState = m_panelShowAni->state(); diff --git a/gschema/com.deepin.dde.dock.module.gschema.xml b/gschema/com.deepin.dde.dock.module.gschema.xml deleted file mode 100644 index 3d4c92f14..000000000 --- a/gschema/com.deepin.dde.dock.module.gschema.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - - - false - Blocking event - - Blocking mouse events - - - - true - Module Enable - - Control Module Enable - - - - diff --git a/plugins/overlay-warning/overlaywarningwidget.cpp b/plugins/overlay-warning/overlaywarningwidget.cpp index 7ff865dc3..5385bbaf6 100644 --- a/plugins/overlay-warning/overlaywarningwidget.cpp +++ b/plugins/overlay-warning/overlaywarningwidget.cpp @@ -21,6 +21,7 @@ */ #include "overlaywarningwidget.h" +#include "../../interfaces/constants.h" #include #include diff --git a/plugins/overlay-warning/overlaywarningwidget.h b/plugins/overlay-warning/overlaywarningwidget.h index 3a8596be1..fcdf3725f 100644 --- a/plugins/overlay-warning/overlaywarningwidget.h +++ b/plugins/overlay-warning/overlaywarningwidget.h @@ -20,10 +20,8 @@ * along with this program. If not, see . */ -#ifndef PLUGINWIDGET_H -#define PLUGINWIDGET_H - -#include "../../interfaces/constants.h" +#ifndef OVERLAYWARNINGWIDGET_H +#define OVERLAYWARNINGWIDGET_H #include @@ -40,9 +38,6 @@ protected: private: const QPixmap loadSvg(const QString &fileName, const QSize &size) const; - -private: - Dock::DisplayMode m_displayMode; }; -#endif // PLUGINWIDGET_H +#endif // OVERLAYWARNINGWIDGET_H diff --git a/plugins/power/powerplugin.cpp b/plugins/power/powerplugin.cpp index 963d7c3c5..cbefd5fbc 100644 --- a/plugins/power/powerplugin.cpp +++ b/plugins/power/powerplugin.cpp @@ -211,37 +211,34 @@ void PowerPlugin::refreshTipsData() const int batteryState = m_powerInter->batteryState()["Display"]; if (batteryState == BatteryState::DIS_CHARGING || batteryState == BatteryState::NOT_CHARGED || batteryState == BatteryState::UNKNOWN) { + QString tips; qulonglong timeToEmpty = m_systemPowerInter->batteryTimeToEmpty(); QDateTime time = QDateTime::fromTime_t(timeToEmpty).toUTC(); uint hour = time.toString("hh").toUInt(); uint min = time.toString("mm").toUInt(); - - QString tips; - if (hour == 0) { - tips = tr("Capacity %1, %2 min remaining").arg(value).arg(min); - } - else { + if (min == 0) + tips = tr("Charged"); + else + tips = tr("Capacity %1, %2 min remaining").arg(value).arg(min); + } else { tips = tr("Capacity %1, %2 hr %3 min remaining").arg(value).arg(hour).arg(min); } m_tipsLabel->setText(tips); - } - else if (batteryState == BatteryState::FULLY_CHARGED || percentage == 100.){ - m_tipsLabel->setText(tr("Charged %1").arg(value)); - }else { + } else if (batteryState == BatteryState::FULLY_CHARGED || percentage == 100.) { + m_tipsLabel->setText(tr("Charged")); + } else { qulonglong timeToFull = m_systemPowerInter->batteryTimeToFull(); QDateTime time = QDateTime::fromTime_t(timeToFull).toUTC(); uint hour = time.toString("hh").toUInt(); uint min = time.toString("mm").toUInt(); QString tips; - if(timeToFull == 0) { - tips = tr("Charging %1 ....").arg(value); - } - else if (hour == 0) { + if(timeToFull == 0) { // 电量已充満或电量计算中,剩余充满时间会返回0 + tips = tr("Capacity %1 ....").arg(value); + } else if (hour == 0) { tips = tr("Charging %1, %2 min until full").arg(value).arg(min); - } - else { + } else { tips = tr("Charging %1, %2 hr %3 min until full").arg(value).arg(hour).arg(min); } diff --git a/plugins/sound/sinkinputwidget.cpp b/plugins/sound/sinkinputwidget.cpp index 781b24c46..f4ad692bb 100644 --- a/plugins/sound/sinkinputwidget.cpp +++ b/plugins/sound/sinkinputwidget.cpp @@ -140,34 +140,35 @@ void SinkInputWidget::setMute() void SinkInputWidget::setMuteIcon() { - if (m_inputInter->mute()) { - const auto ratio = devicePixelRatioF(); - QString iconString = "audio-volume-muted-symbolic"; - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) { - iconString.append("-dark"); - } - QPixmap muteIcon = QIcon::fromTheme(iconString).pixmap(ICON_SIZE * ratio, ICON_SIZE * ratio); - muteIcon.setDevicePixelRatio(ratio); - QPixmap appIconSource(getIconFromTheme(m_inputInter->icon(), QSize(ICON_SIZE, ICON_SIZE), devicePixelRatioF())); + //app应用为静音时,只需要将音量图标设置成静音,无需将应用图标设置为静音图标 +// if (m_inputInter->mute()) { +// const auto ratio = devicePixelRatioF(); +// QString iconString = "audio-volume-muted-symbolic"; +// if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) { +// iconString.append("-dark"); +// } +// QPixmap muteIcon = QIcon::fromTheme(iconString).pixmap(ICON_SIZE * ratio, ICON_SIZE * ratio); +// muteIcon.setDevicePixelRatio(ratio); +// QPixmap appIconSource(getIconFromTheme(m_inputInter->icon(), QSize(ICON_SIZE, ICON_SIZE), devicePixelRatioF())); - QPixmap temp(appIconSource.size()); - temp.fill(Qt::transparent); - temp.setDevicePixelRatio(ratio); - QPainter p1(&temp); - p1.drawPixmap(0, 0, appIconSource); - p1.setCompositionMode(QPainter::CompositionMode_DestinationIn); - p1.fillRect(temp.rect(), QColor(0, 0, 0, 40)); - p1.end(); - appIconSource = temp; +// QPixmap temp(appIconSource.size()); +// temp.fill(Qt::transparent); +// temp.setDevicePixelRatio(ratio); +// QPainter p1(&temp); +// p1.drawPixmap(0, 0, appIconSource); +// p1.setCompositionMode(QPainter::CompositionMode_DestinationIn); +// p1.fillRect(temp.rect(), QColor(0, 0, 0, 40)); +// p1.end(); +// appIconSource = temp; - QPainter p(&appIconSource); - p.drawPixmap(0, 0, muteIcon); +// QPainter p(&appIconSource); +// p.drawPixmap(0, 0, muteIcon); - appIconSource.setDevicePixelRatio(ratio); - m_appBtn->setPixmap(appIconSource); - } else { - m_appBtn->setPixmap(getIconFromTheme(m_inputInter->icon(), QSize(ICON_SIZE, ICON_SIZE), devicePixelRatioF())); - } +// appIconSource.setDevicePixelRatio(ratio); +// m_appBtn->setPixmap(appIconSource); +// } else { +// m_appBtn->setPixmap(getIconFromTheme(m_inputInter->icon(), QSize(ICON_SIZE, ICON_SIZE), devicePixelRatioF())); +// } refreshIcon(); } diff --git a/plugins/tray/system-trays/systemtrayitem.cpp b/plugins/tray/system-trays/systemtrayitem.cpp index 0f8cc48ca..71b01afe9 100644 --- a/plugins/tray/system-trays/systemtrayitem.cpp +++ b/plugins/tray/system-trays/systemtrayitem.cpp @@ -192,6 +192,8 @@ bool SystemTrayItem::event(QEvent *event) void SystemTrayItem::enterEvent(QEvent *event) { if (checkGSettingsControl()) { + //网络需要显示Tips,需要特殊处理。 + if (m_pluginInter->pluginName() != "network") return; } diff --git a/translations/dde-dock.ts b/translations/dde-dock.ts index 840ced9da..465a2153b 100644 --- a/translations/dde-dock.ts +++ b/translations/dde-dock.ts @@ -203,7 +203,7 @@ Charged %1 - Charged %1 + Charged %1 Charging %1, %2 min until full @@ -217,6 +217,14 @@ Charging %1 .... Charging %1 .... + + Charged + Charged + + + Capacity %1 .... + + ShowDesktopPlugin diff --git a/translations/dde-dock_am_ET.ts b/translations/dde-dock_am_ET.ts index b240349e7..5f835ba63 100644 --- a/translations/dde-dock_am_ET.ts +++ b/translations/dde-dock_am_ET.ts @@ -203,7 +203,7 @@ Charged %1 - ሞልቷል %1 + ሞልቷል %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_ar.ts b/translations/dde-dock_ar.ts index e004c6e2d..9cfc1b3d9 100644 --- a/translations/dde-dock_ar.ts +++ b/translations/dde-dock_ar.ts @@ -203,7 +203,7 @@ Charged %1 - مشحون %1 + مشحون %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + يتم الآن شحن 1% + + + Charged + مشحون diff --git a/translations/dde-dock_ast.ts b/translations/dde-dock_ast.ts index d7dc1c807..a1def8f13 100644 --- a/translations/dde-dock_ast.ts +++ b/translations/dde-dock_ast.ts @@ -203,7 +203,7 @@ Charged %1 - Cargóse %1 + Cargóse %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_bg.ts b/translations/dde-dock_bg.ts index 16a5fe797..10737e597 100644 --- a/translations/dde-dock_bg.ts +++ b/translations/dde-dock_bg.ts @@ -203,7 +203,7 @@ Charged %1 - Заредено %1 + Заредено %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Зареден + ShowDesktopPlugin diff --git a/translations/dde-dock_bn.ts b/translations/dde-dock_bn.ts index 5c870ce69..db6caebf1 100644 --- a/translations/dde-dock_bn.ts +++ b/translations/dde-dock_bn.ts @@ -203,7 +203,7 @@ Charged %1 - %1 চার্জ করা হয়েছে + %1 চার্জ করা হয়েছে Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_ca.ts b/translations/dde-dock_ca.ts index 595277022..a458a711e 100644 --- a/translations/dde-dock_ca.ts +++ b/translations/dde-dock_ca.ts @@ -203,7 +203,7 @@ Charged %1 - Càrrega: %1 + Càrrega: %1 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + Es carrega %1... + + + Charged @@ -253,7 +257,7 @@ Lock - Bloqueja + Bloca Log out diff --git a/translations/dde-dock_cs.ts b/translations/dde-dock_cs.ts index 06cbb9977..190b91ac3 100644 --- a/translations/dde-dock_cs.ts +++ b/translations/dde-dock_cs.ts @@ -3,7 +3,7 @@ AbstractPluginsController The plugin %1 is not compatible with the system. - Přídavný modul %1 není slučitelný se systémem. + Zásuvný modul %1 není kompatibilní se systémem. @@ -17,7 +17,7 @@ DatetimePlugin Datetime - Datum + Datum a čas 12 Hour Time @@ -51,11 +51,11 @@ DialogManager Are you sure you want to empty %1 items? - Opravdu chcete smazat %1 položek ? + Opravdu chcete %1 položek smazat? Cancel - Zrušit + Storno Delete @@ -74,7 +74,7 @@ Unknown volume - Neznámý obsah + Neznámý svazek @@ -96,7 +96,7 @@ DockSettings Fashion Mode - Návykový režim + Módní režim Efficient Mode @@ -120,15 +120,15 @@ Keep Shown - Ukázat vždy + Vždy zobrazeno Keep Hidden - Vždy skrýt + Vždy skryto Smart Hide - Skrýt chytře + Chytré skrývání Mode @@ -144,7 +144,7 @@ Plugins - Přídavné moduly + Zásuvné moduly @@ -176,7 +176,7 @@ OnboardPlugin Onboard - Virtuální klávesnice + Onboard Settings @@ -191,7 +191,7 @@ Power settings - Správa napájení + Nastavení správy napájení Capacity %1, %2 min remaining @@ -203,7 +203,7 @@ Charged %1 - Nabito %1 + Nabito %1 Charging %1, %2 min until full @@ -215,14 +215,18 @@ Charging %1 .... - + Nabíjení %1… + + + Charged + Nabito ShowDesktopPlugin Show Desktop - Ukázat pracovní plochu + Ukázat plochu Undock @@ -249,7 +253,7 @@ Hibernate - Hibernovat + Uspat na disk Lock @@ -265,7 +269,7 @@ Power settings - Správa napájení + Nastavení správy napájení @@ -276,14 +280,14 @@ Application - Program + Aplikace SoundItem Unmute - Zhlasit + Zrušit ztlumení Mute @@ -295,7 +299,7 @@ Current Volume %1 - Hlasitost %1 + Stávající hlasitost %1 @@ -313,11 +317,11 @@ Trash - %1 file - Smazat %1 soubor + Koš – %1 soubor Trash - %1 files - Smazat %1 souborů + Koš – %1 souborů @@ -361,7 +365,7 @@ Connected but no Internet access - Připojeno, ale bez přístupu k internetu + Připojeno, ale bez přístupu k Internetu diff --git a/translations/dde-dock_da.ts b/translations/dde-dock_da.ts index 970a57261..0109148d7 100644 --- a/translations/dde-dock_da.ts +++ b/translations/dde-dock_da.ts @@ -203,7 +203,7 @@ Charged %1 - Opladet %1 + Opladet %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Oplader %1 .... + + + Charged + Opladet diff --git a/translations/dde-dock_de.ts b/translations/dde-dock_de.ts index cf29aef36..5c70228ae 100644 --- a/translations/dde-dock_de.ts +++ b/translations/dde-dock_de.ts @@ -203,19 +203,23 @@ Charged %1 - %1 aufgeladen + %1 aufgeladen Charging %1, %2 min until full - Lade %1, %2 Min. bis geladen + %1 wird aufgeladen, %2 Min. bis vollständig geladen Charging %1, %2 hr %3 min until full - Lade %1, %2 Std. %3 Min. bis geladen + %1 wird aufgeladen, %2 Std. %3 Min. bis vollständig geladen Charging %1 .... - + %1 wird aufgeladen .... + + + Charged + Aufgeladen diff --git a/translations/dde-dock_el.ts b/translations/dde-dock_el.ts index 39f4cb889..8156ef3ad 100644 --- a/translations/dde-dock_el.ts +++ b/translations/dde-dock_el.ts @@ -203,7 +203,7 @@ Charged %1 - Φορτισμένη %1 + Φορτισμένη %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Πλήρη Φόρτιση + ShowDesktopPlugin diff --git a/translations/dde-dock_en_AU.ts b/translations/dde-dock_en_AU.ts index 8f19d10f7..ca8d757e1 100644 --- a/translations/dde-dock_en_AU.ts +++ b/translations/dde-dock_en_AU.ts @@ -203,7 +203,7 @@ Charged %1 - Charged %1 + Charged %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_es.ts b/translations/dde-dock_es.ts index 32880e68d..370169365 100644 --- a/translations/dde-dock_es.ts +++ b/translations/dde-dock_es.ts @@ -29,7 +29,7 @@ Time Settings - Ajustes de tiempo + Ajustes de fecha y hora @@ -203,7 +203,7 @@ Charged %1 - Cargado %1 + Cargado %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Cargando %1… + + + Charged + Cargado diff --git a/translations/dde-dock_fa.ts b/translations/dde-dock_fa.ts index 11f4b5341..8ba101dfa 100644 --- a/translations/dde-dock_fa.ts +++ b/translations/dde-dock_fa.ts @@ -203,7 +203,7 @@ Charged %1 - %1 شارژشد + %1 شارژشد Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_fi.ts b/translations/dde-dock_fi.ts index ef2417187..e07bc4d08 100644 --- a/translations/dde-dock_fi.ts +++ b/translations/dde-dock_fi.ts @@ -104,11 +104,11 @@ Top - Yläosa + Ylös Bottom - Alaosa + Alas Left @@ -120,15 +120,15 @@ Keep Shown - Pidä näkyvänä + Näytä aina Keep Hidden - Pidä piilotettuna + Piilotta paneeli Smart Hide - Älykäs piilotus + Piilota automaattisesti Mode @@ -140,7 +140,7 @@ Status - Tila + Näytä Plugins @@ -158,7 +158,7 @@ MultitaskingPlugin Multitasking View - Työpöydät + Työtilan ikkunat Undock @@ -176,7 +176,7 @@ OnboardPlugin Onboard - Näppäimistö + Näyttönäppäimistö Settings @@ -203,7 +203,7 @@ Charged %1 - Ladattu: %1 + Ladattu: %1 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + Ladataan: %1 .... + + + Charged @@ -291,7 +295,7 @@ Audio Settings - Äänen asetukset + Ääniasetukset Current Volume %1 diff --git a/translations/dde-dock_fr.ts b/translations/dde-dock_fr.ts index 4b45d2d59..6f455ddad 100644 --- a/translations/dde-dock_fr.ts +++ b/translations/dde-dock_fr.ts @@ -162,7 +162,7 @@ Undock - Enlever du dock + Détacher du dock @@ -203,7 +203,7 @@ Charged %1 - Chargé à %1 + Chargé à %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Chargement de %1 en cours.... + + + Charged + Chargé diff --git a/translations/dde-dock_gl_ES.ts b/translations/dde-dock_gl_ES.ts index 46009a3bc..834297607 100644 --- a/translations/dde-dock_gl_ES.ts +++ b/translations/dde-dock_gl_ES.ts @@ -203,7 +203,7 @@ Charged %1 - Cargado %1 + Cargado %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Cargado + ShowDesktopPlugin diff --git a/translations/dde-dock_hi_IN.ts b/translations/dde-dock_hi_IN.ts index 93b2a9e77..8157284f8 100644 --- a/translations/dde-dock_hi_IN.ts +++ b/translations/dde-dock_hi_IN.ts @@ -203,7 +203,7 @@ Charged %1 - चार्ज है %1 + चार्ज है %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_hr.ts b/translations/dde-dock_hr.ts index 5372df472..a8337701d 100644 --- a/translations/dde-dock_hr.ts +++ b/translations/dde-dock_hr.ts @@ -203,7 +203,7 @@ Charged %1 - Napunjeno %1 + Napunjeno %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Napunjeno + ShowDesktopPlugin diff --git a/translations/dde-dock_hu.ts b/translations/dde-dock_hu.ts index d85390372..3be0df6e5 100644 --- a/translations/dde-dock_hu.ts +++ b/translations/dde-dock_hu.ts @@ -203,7 +203,7 @@ Charged %1 - Töltve %1 + Töltve %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Feltöltve + ShowDesktopPlugin diff --git a/translations/dde-dock_id.ts b/translations/dde-dock_id.ts index ebb447f22..64f469a23 100644 --- a/translations/dde-dock_id.ts +++ b/translations/dde-dock_id.ts @@ -203,7 +203,7 @@ Charged %1 - Terisi %1 + Terisi %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_it.ts b/translations/dde-dock_it.ts index ea51613eb..8eabed812 100644 --- a/translations/dde-dock_it.ts +++ b/translations/dde-dock_it.ts @@ -203,7 +203,7 @@ Charged %1 - Carica %1 + Carica %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + In carica %1 .... + + + Charged + Carico diff --git a/translations/dde-dock_ja.ts b/translations/dde-dock_ja.ts index cd7cb5a3f..667ca41f0 100644 --- a/translations/dde-dock_ja.ts +++ b/translations/dde-dock_ja.ts @@ -158,11 +158,11 @@ MultitaskingPlugin Multitasking View - + マルチタスク画面 Undock - + ドックから削除 @@ -195,26 +195,30 @@ Capacity %1, %2 min remaining - + 残量 %1、残り %2 分 Capacity %1, %2 hr %3 min remaining - + 残量 %1、残り %2 時間 %3 分 Charged %1 - 充電完了 %1 + 充電完了 %1 Charging %1, %2 min until full - + 充電中 %1、充電完了まで %2 分 Charging %1, %2 hr %3 min until full - + 充電中 %1、充電完了まで %2 時間 %3 分 Charging %1 .... + 充電中 %1 … + + + Charged @@ -226,7 +230,7 @@ Undock - + ドックから削除 diff --git a/translations/dde-dock_ko.ts b/translations/dde-dock_ko.ts index 1bfc01a27..9fad72675 100644 --- a/translations/dde-dock_ko.ts +++ b/translations/dde-dock_ko.ts @@ -203,7 +203,7 @@ Charged %1 - %1 충전됨 + %1 충전됨 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + %1 충전중 ... + + + Charged diff --git a/translations/dde-dock_lt.ts b/translations/dde-dock_lt.ts index ae23d517a..8e9bbc408 100644 --- a/translations/dde-dock_lt.ts +++ b/translations/dde-dock_lt.ts @@ -203,7 +203,7 @@ Charged %1 - Įkrauta %1 + Įkrauta %1 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + Įkraunama %1.... + + + Charged diff --git a/translations/dde-dock_mn.ts b/translations/dde-dock_mn.ts index 1b581e12d..20866d697 100644 --- a/translations/dde-dock_mn.ts +++ b/translations/dde-dock_mn.ts @@ -203,7 +203,7 @@ Charged %1 - %1 цэнэглэсэн + %1 цэнэглэсэн Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_ms.ts b/translations/dde-dock_ms.ts index bb7d7f13e..b1bf18fd6 100644 --- a/translations/dde-dock_ms.ts +++ b/translations/dde-dock_ms.ts @@ -203,7 +203,7 @@ Charged %1 - %1 dicaskan + %1 dicaskan Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Mengecas %1 .... + + + Charged + Dicas diff --git a/translations/dde-dock_nb.ts b/translations/dde-dock_nb.ts index b609036da..7861d9231 100644 --- a/translations/dde-dock_nb.ts +++ b/translations/dde-dock_nb.ts @@ -203,7 +203,7 @@ Charged %1 - Ladet opp %1 + Ladet opp %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Endret + ShowDesktopPlugin diff --git a/translations/dde-dock_ne.ts b/translations/dde-dock_ne.ts index c02a76b62..21e419717 100644 --- a/translations/dde-dock_ne.ts +++ b/translations/dde-dock_ne.ts @@ -203,7 +203,7 @@ Charged %1 - चार्ज % 1 + चार्ज % 1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_nl.ts b/translations/dde-dock_nl.ts index b403bacd4..79c043368 100644 --- a/translations/dde-dock_nl.ts +++ b/translations/dde-dock_nl.ts @@ -162,7 +162,7 @@ Undock - + Undock @@ -203,7 +203,7 @@ Charged %1 - %1 Opgeladen + %1 Opgeladen Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin @@ -226,7 +230,7 @@ Undock - + Undock diff --git a/translations/dde-dock_pl.ts b/translations/dde-dock_pl.ts index 3822f6596..84002d443 100644 --- a/translations/dde-dock_pl.ts +++ b/translations/dde-dock_pl.ts @@ -203,7 +203,7 @@ Charged %1 - Naładowana %1 + Naładowana %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Ładowanie %1.... + + + Charged + Naładowana diff --git a/translations/dde-dock_pt.ts b/translations/dde-dock_pt.ts index a80f5371b..659619ebf 100644 --- a/translations/dde-dock_pt.ts +++ b/translations/dde-dock_pt.ts @@ -17,7 +17,7 @@ DatetimePlugin Datetime - Data e hora + Data hora 12 Hour Time @@ -124,7 +124,7 @@ Keep Hidden - Manter Oculta + Manter oculta Smart Hide @@ -158,11 +158,11 @@ MultitaskingPlugin Multitasking View - Vista de Tarefas + Vista de tarefas Undock - Remover da dock + Remover da doca @@ -203,7 +203,7 @@ Charged %1 - Carregado %1 + Carregado %1 Charging %1, %2 min until full @@ -215,18 +215,22 @@ Charging %1 .... - + A carregar %1 .... + + + Charged + Carregado ShowDesktopPlugin Show Desktop - Mostrar Ambiente de trabalho + Mostrar ambiente de trabalho Undock - Remover da dock + Remover da doca @@ -361,7 +365,7 @@ Connected but no Internet access - Ligado, mas sem acesso à Internet + Ligado mas sem acesso à Internet diff --git a/translations/dde-dock_pt_BR.ts b/translations/dde-dock_pt_BR.ts index 84cd9a808..4c4087ee3 100644 --- a/translations/dde-dock_pt_BR.ts +++ b/translations/dde-dock_pt_BR.ts @@ -10,7 +10,7 @@ DBusAdaptors Add keyboard layout - Adicionar Layout de Teclado + Adicionar o layout de teclado @@ -21,11 +21,11 @@ 12 Hour Time - 12 Horas + Formato de 12 Horas 24 Hour Time - 24 Horas + Formato de 24 Horas Time Settings @@ -51,7 +51,7 @@ DialogManager Are you sure you want to empty %1 items? - Quer realmente limpar %1 itens? + Esvaziar %1 itens? Cancel @@ -81,7 +81,7 @@ DiskMountPlugin Disk - Disco + Dispositivos Open @@ -195,27 +195,31 @@ Capacity %1, %2 min remaining - %1 carregado | %2m restantes + %1 Carregado - %2m restantes Capacity %1, %2 hr %3 min remaining - %1 carregado | %2h%3 restantes + %1 Carregado - %2h%3 restantes Charged %1 - %1 carregado + %1 Carregado Charging %1, %2 min until full - Carregando %1 | %2min até completar + Carregando %1 - %2m até completar Charging %1, %2 hr %3 min until full - Carregando %1 | %2h%3min até completar + Carregando %1 - %2h%3 até completar Charging %1 .... - + Carregando %1... + + + Charged + Carregado diff --git a/translations/dde-dock_ro.ts b/translations/dde-dock_ro.ts index 566fdd306..a6a0667a4 100644 --- a/translations/dde-dock_ro.ts +++ b/translations/dde-dock_ro.ts @@ -203,7 +203,7 @@ Charged %1 - Încărcat %1 + Încărcat %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_ru.ts b/translations/dde-dock_ru.ts index 1a0c2565a..62dc261b6 100644 --- a/translations/dde-dock_ru.ts +++ b/translations/dde-dock_ru.ts @@ -203,7 +203,7 @@ Charged %1 - Заряжено %1 + Заряжено %1 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + Зарядка %1 .... + + + Charged + Заряжен @@ -361,7 +365,7 @@ Connected but no Internet access - Подключено без доступа к Интернет + Подключено, без доступа к Интернету diff --git a/translations/dde-dock_sk.ts b/translations/dde-dock_sk.ts index 24ecc55e4..16204afac 100644 --- a/translations/dde-dock_sk.ts +++ b/translations/dde-dock_sk.ts @@ -203,7 +203,7 @@ Charged %1 - Nabité %1 + Nabité %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Nabitý + ShowDesktopPlugin diff --git a/translations/dde-dock_sl.ts b/translations/dde-dock_sl.ts index d24fe75b5..366ce593e 100644 --- a/translations/dde-dock_sl.ts +++ b/translations/dde-dock_sl.ts @@ -203,7 +203,7 @@ Charged %1 - Napolnjeno %1 + Napolnjeno %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + Napolnjen + ShowDesktopPlugin @@ -249,7 +253,7 @@ Hibernate - + Mirovanje Lock @@ -361,7 +365,7 @@ Connected but no Internet access - + Povezano brez dostopa do interneta diff --git a/translations/dde-dock_sq.ts b/translations/dde-dock_sq.ts index e2b0f13da..b9063aa2b 100644 --- a/translations/dde-dock_sq.ts +++ b/translations/dde-dock_sq.ts @@ -3,55 +3,55 @@ AbstractPluginsController The plugin %1 is not compatible with the system. - + Shtojca %1 s’është e përputhshme me sistemin. DBusAdaptors Add keyboard layout - + Shtoni skemë tastiere DatetimePlugin Datetime - + Datë dhe kohë 12 Hour Time - + Format Kohe 12 Orësh 24 Hour Time - + Format Kohe 24 Orësh Time Settings - + Rregullime Kohe DeviceItem Enable network - + Aktivizo rrjetin Disable network - + Çaktivizo rrjetin Network settings - + Rregullime rrjeti DialogManager Are you sure you want to empty %1 items? - + Jeni i sigurt se doni të zbrazni $1 objekte? Cancel @@ -59,162 +59,166 @@ Delete - + Fshije This action cannot be restored - + Për këtë veprim s’mund të bëhet rikthim DiskControlItem Unknown device - + Pajisje e panjohur Unknown volume - + Vëllim i panjohur DiskMountPlugin Disk - + Disk Open - + Hap Unmount all - + Çmontoji krejt DockSettings Fashion Mode - + Mënyrë Moda Efficient Mode - + Mënyrë Efikase Top - + Sipër Bottom - + Në Fund Left - + Majtas Right - + Djathtas Keep Shown - + Mbaje të Shfaqur Keep Hidden - + Mbaje të Fshehur Smart Hide - + Fshehje e Mençur Mode - + Mënyrë Location - + Vendndodhje Status - + Gjendje Plugins - + Shtojca LauncherItem Launcher - + Nisës MultitaskingPlugin Multitasking View - + Pamje Multitasking Undock - + Hiqe nga paneli NetworkPlugin Network - + Rrjet OnboardPlugin Onboard - + Onboard Settings - + Rregullime PowerPlugin Power - + Energji Power settings - + Rregullime energjie Capacity %1, %2 min remaining - + Kapacitet %1, edhe %2 min Capacity %1, %2 hr %3 min remaining - + Kapacitet %1, edhe %2 hr %3 min Charged %1 - + E ngarkuar %1 Charging %1, %2 min until full - + Po ngarkohet %1, edhe %2 min deri sa të jetë plot Charging %1, %2 hr %3 min until full - + Po ngarkohet %1, edhe %2 hr % e 3min deri sa të jetë plot Charging %1 .... + Po ngarkohet %1 … + + + Charged @@ -222,157 +226,157 @@ ShowDesktopPlugin Show Desktop - + Shfaq Desktopin Undock - + Hiqe nga paneli ShutdownPlugin Power - + Energji Shut down - + Fike Restart - + Rinise Suspend - + Pezulloje Hibernate - + Plogështoje Lock - + Kyçe Log out - + Dilni Switch account - + Këmbeni llogari Power settings - + Rregullime energjie SoundApplet Device - + Pajisje Application - + Aplikacion SoundItem Unmute - + Ktheji zërin Mute - + Hiqi zërin Audio Settings - + Rregullime Audio Current Volume %1 - + Volumi i Tanishëm %1 SoundPlugin Sound - + TrashPlugin Trash - + Hedhurina Trash - %1 file - + Hedhurina - %1 kartelë Trash - %1 files - + Hedhurina - %1 kartela TrashWidget Open - + Hap Empty - + Zbraze TrayPlugin System Tray - + Shtyllë Sistemi WiredItem Unknown - + E panjohur Wired connection: %1 - + Lidhje me fill: %1 WirelessItem No Network - + S’ka Rrjet Wireless Connection: %1 - + Lidhje Pa Fill: %1 Connected but no Internet access - + I lidhur, por pa hyrje Internet WirelessList Wireless Network - + Rrjet Pa Fill Wireless Network %1 - + Rrjet Pa Fill %1 \ No newline at end of file diff --git a/translations/dde-dock_sr.ts b/translations/dde-dock_sr.ts index f8e7f9afb..adf40466a 100644 --- a/translations/dde-dock_sr.ts +++ b/translations/dde-dock_sr.ts @@ -29,7 +29,7 @@ Time Settings - Поставке времена + Подешавање времена @@ -44,7 +44,7 @@ Network settings - Поставке мреже + Подешавање мреже @@ -191,7 +191,7 @@ Power settings - Поставке напајања + Управљање напајањем Capacity %1, %2 min remaining @@ -203,7 +203,7 @@ Charged %1 - Напуњено %1 + Напуњено %1 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + Пуни се %1 .... + + + Charged @@ -265,7 +269,7 @@ Power settings - Поставке напајања + Управљање напајањем @@ -291,7 +295,7 @@ Audio Settings - Поставке звука + Подешавање звука Current Volume %1 diff --git a/translations/dde-dock_sv.ts b/translations/dde-dock_sv.ts index fca217910..ede949b64 100644 --- a/translations/dde-dock_sv.ts +++ b/translations/dde-dock_sv.ts @@ -203,7 +203,7 @@ Charged %1 - Laddad %1 + Laddad %1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_sw.ts b/translations/dde-dock_sw.ts index ac1aefdd9..cbb80ed82 100644 --- a/translations/dde-dock_sw.ts +++ b/translations/dde-dock_sw.ts @@ -217,6 +217,10 @@ Charging %1 .... + + Charged + + ShowDesktopPlugin diff --git a/translations/dde-dock_tr.ts b/translations/dde-dock_tr.ts index af731ba07..7d7f5b1a3 100644 --- a/translations/dde-dock_tr.ts +++ b/translations/dde-dock_tr.ts @@ -203,7 +203,7 @@ Charged %1 - %1 Şarj Oldu + %1 Şarj oldu Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + %1 Şarj oluyor... + + + Charged + Şarj edildi diff --git a/translations/dde-dock_uk.ts b/translations/dde-dock_uk.ts index 31819122c..64cdc2d91 100644 --- a/translations/dde-dock_uk.ts +++ b/translations/dde-dock_uk.ts @@ -203,7 +203,7 @@ Charged %1 - Заряджений на %1 + Заряджений на %1 Charging %1, %2 min until full @@ -215,6 +215,10 @@ Charging %1 .... + Заряджаємо %1.... + + + Charged diff --git a/translations/dde-dock_vi.ts b/translations/dde-dock_vi.ts index 4dfa0b25a..0ddf0e2ae 100644 --- a/translations/dde-dock_vi.ts +++ b/translations/dde-dock_vi.ts @@ -3,14 +3,14 @@ AbstractPluginsController The plugin %1 is not compatible with the system. - + Tiện ích %1 không tương thích với hệ thống DBusAdaptors Add keyboard layout - + Thêm bố cục bàn phím @@ -51,7 +51,7 @@ DialogManager Are you sure you want to empty %1 items? - + Bạn có chắc chắn muốn làm trống mục %1 không? Cancel @@ -158,11 +158,11 @@ MultitaskingPlugin Multitasking View - + Chế độ xem đa nhiệm Undock - + Gỡ khỏi dock @@ -176,7 +176,7 @@ OnboardPlugin Onboard - + Onboard Settings @@ -195,27 +195,31 @@ Capacity %1, %2 min remaining - + Năng lượng %1, %2 còn lại Capacity %1, %2 hr %3 min remaining - + Năng lượng %1, %2 giờ %3 phút còn lại Charged %1 - Được nạp %1 + Được nạp %1 Charging %1, %2 min until full - + Đang sạc %1, %2 phút sẽ đầy Charging %1, %2 hr %3 min until full - + Đang sạc %1, %2 giờ %3 phút sẽ đầy Charging %1 .... - + Đang sạc %1 ... + + + Charged + Được sạt @@ -226,7 +230,7 @@ Undock - + Gỡ khỏi dock @@ -249,7 +253,7 @@ Hibernate - + Ngủ đông Lock @@ -361,7 +365,7 @@ Connected but no Internet access - + Đã kết nối nhưng không có truy cập Internet diff --git a/translations/dde-dock_zh_CN.ts b/translations/dde-dock_zh_CN.ts index ec93402cf..a96860c58 100644 --- a/translations/dde-dock_zh_CN.ts +++ b/translations/dde-dock_zh_CN.ts @@ -203,7 +203,7 @@ Charged %1 - 已充满%1 + 已充满%1 Charging %1, %2 min until full @@ -217,6 +217,10 @@ Charging %1 .... 电量%1... + + Charged + 已充满 + ShowDesktopPlugin diff --git a/translations/dde-dock_zh_TW.ts b/translations/dde-dock_zh_TW.ts index b8929b36a..0c83b2a01 100644 --- a/translations/dde-dock_zh_TW.ts +++ b/translations/dde-dock_zh_TW.ts @@ -203,7 +203,7 @@ Charged %1 - %1 充電完成 + %1 充電完成 Charging %1, %2 min until full @@ -215,7 +215,11 @@ Charging %1 .... - + 電量%1... + + + Charged + 充電完成