mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
Merge branch 'maintain/5.1.1' into uos
# Conflicts: # frame/main.cpp # frame/util/docksettings.cpp
This commit is contained in:
commit
5469493e26
@ -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)
|
||||
|
@ -281,7 +281,6 @@ void DockItemManager::pluginItemInserted(PluginsItem *item)
|
||||
if(pluginType == DockItem::FixedPlugin)
|
||||
{
|
||||
insertIndex ++;
|
||||
item->setAccessibleName("plugins");
|
||||
}
|
||||
|
||||
emit itemInserted(insertIndex - firstPluginPosition, item);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
|
@ -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{
|
||||
|
@ -25,12 +25,11 @@
|
||||
#include "controller/dockitemmanager.h"
|
||||
|
||||
#include <QAccessible>
|
||||
#include <QDir>
|
||||
|
||||
#include <DApplication>
|
||||
#include <DLog>
|
||||
#include <DDBusSender>
|
||||
|
||||
#include <QDir>
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
#include <unistd.h>
|
||||
@ -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");
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -1,427 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
|
||||
*
|
||||
* Author: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* Maintainer: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#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();
|
||||
// }
|
||||
//}
|
@ -1,27 +1,9 @@
|
||||
/*
|
||||
* Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
|
||||
*
|
||||
* Author: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* Maintainer: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#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 <QAccessible>
|
||||
#include <QAccessibleWidget>
|
||||
#include <QEvent>
|
||||
#include <QMouseEvent>
|
||||
#include <QApplication>
|
||||
#include <DImageButton>
|
||||
#include <DSwitchButton>
|
||||
#include <DPushButton>
|
||||
|
||||
/**************************************************************************************/
|
||||
// 构造函数
|
||||
#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<classname *>(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<classname *>(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;
|
||||
}
|
||||
|
254
frame/window/accessibledefine.h
Normal file
254
frame/window/accessibledefine.h
Normal file
@ -0,0 +1,254 @@
|
||||
/*
|
||||
* Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
|
||||
*
|
||||
* Author: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* Maintainer: fpc_diesel <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#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 <QAccessible>
|
||||
#include <QAccessibleWidget>
|
||||
#include <QEvent>
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
#include <QWidget>
|
||||
#include <QObject>
|
||||
#include <QMetaEnum>
|
||||
#include <QMouseEvent>
|
||||
#include <QApplication>
|
||||
|
||||
#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<QAccessible::Role>();
|
||||
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<classname *>(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<classname *>(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
|
@ -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();
|
||||
|
||||
|
@ -1,243 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist>
|
||||
<schema path="/com/deepin/dde/dock/module/app/" id="com.deepin.dde.dock.module.app" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/activeapp/" id="com.deepin.dde.dock.module.activeapp" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/dockapp/" id="com.deepin.dde.dock.module.dockapp" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/launcher/" id="com.deepin.dde.dock.module.launcher" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/datetime/" id="com.deepin.dde.dock.module.datetime" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/network/" id="com.deepin.dde.dock.module.network" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/onboard/" id="com.deepin.dde.dock.module.onboard" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/power/" id="com.deepin.dde.dock.module.power" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/shutdown/" id="com.deepin.dde.dock.module.shutdown" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/sound/" id="com.deepin.dde.dock.module.sound" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/trash/" id="com.deepin.dde.dock.module.trash" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/systemtray/" id="com.deepin.dde.dock.module.systemtray" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/tray/" id="com.deepin.dde.dock.module.tray" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/menu/" id="com.deepin.dde.dock.module.menu" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
<schema path="/com/deepin/dde/dock/module/AiAssistant/" id="com.deepin.dde.dock.module.AiAssistant" gettext-domain="DDE">
|
||||
<key type="b" name="control">
|
||||
<default>false</default>
|
||||
<summary>Blocking event</summary>
|
||||
<description>
|
||||
Blocking mouse events
|
||||
</description>
|
||||
</key>
|
||||
<key type="b" name="enable">
|
||||
<default>true</default>
|
||||
<summary>Module Enable</summary>
|
||||
<description>
|
||||
Control Module Enable
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
#include "overlaywarningwidget.h"
|
||||
#include "../../interfaces/constants.h"
|
||||
|
||||
#include <QSvgRenderer>
|
||||
#include <QPainter>
|
||||
|
@ -20,10 +20,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef PLUGINWIDGET_H
|
||||
#define PLUGINWIDGET_H
|
||||
|
||||
#include "../../interfaces/constants.h"
|
||||
#ifndef OVERLAYWARNINGWIDGET_H
|
||||
#define OVERLAYWARNINGWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -192,6 +192,8 @@ bool SystemTrayItem::event(QEvent *event)
|
||||
void SystemTrayItem::enterEvent(QEvent *event)
|
||||
{
|
||||
if (checkGSettingsControl()) {
|
||||
//网络需要显示Tips,需要特殊处理。
|
||||
if (m_pluginInter->pluginName() != "network")
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Charged %1</translation>
|
||||
<translation type="vanished">Charged %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,14 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Charging %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Charged</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1 ....</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>ሞልቷል %1</translation>
|
||||
<translation type="vanished">ሞልቷል %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>مشحون %1</translation>
|
||||
<translation type="vanished">مشحون %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>يتم الآن شحن 1%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>مشحون</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Cargóse %1</translation>
|
||||
<translation type="vanished">Cargóse %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Заредено %1</translation>
|
||||
<translation type="vanished">Заредено %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Зареден</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 চার্জ করা হয়েছে</translation>
|
||||
<translation type="vanished">%1 চার্জ করা হয়েছে</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Càrrega: %1</translation>
|
||||
<translation type="vanished">Càrrega: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Es carrega %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@ -253,7 +257,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock</source>
|
||||
<translation>Bloqueja</translation>
|
||||
<translation>Bloca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Log out</source>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<name>AbstractPluginsController</name>
|
||||
<message>
|
||||
<source>The plugin %1 is not compatible with the system.</source>
|
||||
<translation>Přídavný modul %1 není slučitelný se systémem.</translation>
|
||||
<translation>Zásuvný modul %1 není kompatibilní se systémem.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -17,7 +17,7 @@
|
||||
<name>DatetimePlugin</name>
|
||||
<message>
|
||||
<source>Datetime</source>
|
||||
<translation>Datum</translation>
|
||||
<translation>Datum a čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>12 Hour Time</source>
|
||||
@ -51,11 +51,11 @@
|
||||
<name>DialogManager</name>
|
||||
<message>
|
||||
<source>Are you sure you want to empty %1 items?</source>
|
||||
<translation>Opravdu chcete smazat %1 položek ?</translation>
|
||||
<translation>Opravdu chcete %1 položek smazat?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation>Zrušit</translation>
|
||||
<translation>Storno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
@ -74,7 +74,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown volume</source>
|
||||
<translation>Neznámý obsah</translation>
|
||||
<translation>Neznámý svazek</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -96,7 +96,7 @@
|
||||
<name>DockSettings</name>
|
||||
<message>
|
||||
<source>Fashion Mode</source>
|
||||
<translation>Návykový režim</translation>
|
||||
<translation>Módní režim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Efficient Mode</source>
|
||||
@ -120,15 +120,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Shown</source>
|
||||
<translation>Ukázat vždy</translation>
|
||||
<translation>Vždy zobrazeno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Hidden</source>
|
||||
<translation>Vždy skrýt</translation>
|
||||
<translation>Vždy skryto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Smart Hide</source>
|
||||
<translation>Skrýt chytře</translation>
|
||||
<translation>Chytré skrývání</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mode</source>
|
||||
@ -144,7 +144,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Plugins</source>
|
||||
<translation>Přídavné moduly</translation>
|
||||
<translation>Zásuvné moduly</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -176,7 +176,7 @@
|
||||
<name>OnboardPlugin</name>
|
||||
<message>
|
||||
<source>Onboard</source>
|
||||
<translation>Virtuální klávesnice</translation>
|
||||
<translation>Onboard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
@ -191,7 +191,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation>Správa napájení</translation>
|
||||
<translation>Nastavení správy napájení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Nabito %1</translation>
|
||||
<translation type="vanished">Nabito %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,14 +215,18 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nabíjení %1…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Nabito</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
<message>
|
||||
<source>Show Desktop</source>
|
||||
<translation>Ukázat pracovní plochu</translation>
|
||||
<translation>Ukázat plochu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
@ -249,7 +253,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernovat</translation>
|
||||
<translation>Uspat na disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock</source>
|
||||
@ -265,7 +269,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation>Správa napájení</translation>
|
||||
<translation>Nastavení správy napájení</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -276,14 +280,14 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Application</source>
|
||||
<translation>Program</translation>
|
||||
<translation>Aplikace</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SoundItem</name>
|
||||
<message>
|
||||
<source>Unmute</source>
|
||||
<translation>Zhlasit</translation>
|
||||
<translation>Zrušit ztlumení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mute</source>
|
||||
@ -295,7 +299,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Volume %1</source>
|
||||
<translation>Hlasitost %1</translation>
|
||||
<translation>Stávající hlasitost %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -313,11 +317,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Trash - %1 file</source>
|
||||
<translation>Smazat %1 soubor</translation>
|
||||
<translation>Koš – %1 soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Trash - %1 files</source>
|
||||
<translation>Smazat %1 souborů</translation>
|
||||
<translation>Koš – %1 souborů</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -361,7 +365,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation>Připojeno, ale bez přístupu k internetu</translation>
|
||||
<translation>Připojeno, ale bez přístupu k Internetu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Opladet %1</translation>
|
||||
<translation type="vanished">Opladet %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Oplader %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Opladet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,19 +203,23 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 aufgeladen</translation>
|
||||
<translation type="vanished">%1 aufgeladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
<translation>Lade %1, %2 Min. bis geladen</translation>
|
||||
<translation>%1 wird aufgeladen, %2 Min. bis vollständig geladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 hr %3 min until full</source>
|
||||
<translation>Lade %1, %2 Std. %3 Min. bis geladen</translation>
|
||||
<translation>%1 wird aufgeladen, %2 Std. %3 Min. bis vollständig geladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 wird aufgeladen ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Aufgeladen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Φορτισμένη %1</translation>
|
||||
<translation type="vanished">Φορτισμένη %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Πλήρη Φόρτιση</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Charged %1</translation>
|
||||
<translation type="vanished">Charged %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -29,7 +29,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Time Settings</source>
|
||||
<translation>Ajustes de tiempo</translation>
|
||||
<translation>Ajustes de fecha y hora</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Cargado %1</translation>
|
||||
<translation type="vanished">Cargado %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cargando %1…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Cargado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 شارژشد</translation>
|
||||
<translation type="vanished">%1 شارژشد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -104,11 +104,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Top</source>
|
||||
<translation>Yläosa</translation>
|
||||
<translation>Ylös</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bottom</source>
|
||||
<translation>Alaosa</translation>
|
||||
<translation>Alas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
@ -120,15 +120,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Shown</source>
|
||||
<translation>Pidä näkyvänä</translation>
|
||||
<translation>Näytä aina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Hidden</source>
|
||||
<translation>Pidä piilotettuna</translation>
|
||||
<translation>Piilotta paneeli</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Smart Hide</source>
|
||||
<translation>Älykäs piilotus</translation>
|
||||
<translation>Piilota automaattisesti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mode</source>
|
||||
@ -140,7 +140,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<translation>Tila</translation>
|
||||
<translation>Näytä</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Plugins</source>
|
||||
@ -158,7 +158,7 @@
|
||||
<name>MultitaskingPlugin</name>
|
||||
<message>
|
||||
<source>Multitasking View</source>
|
||||
<translation>Työpöydät</translation>
|
||||
<translation>Työtilan ikkunat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
@ -176,7 +176,7 @@
|
||||
<name>OnboardPlugin</name>
|
||||
<message>
|
||||
<source>Onboard</source>
|
||||
<translation>Näppäimistö</translation>
|
||||
<translation>Näyttönäppäimistö</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Ladattu: %1</translation>
|
||||
<translation type="vanished">Ladattu: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Ladataan: %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@ -291,7 +295,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Audio Settings</source>
|
||||
<translation>Äänen asetukset</translation>
|
||||
<translation>Ääniasetukset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Volume %1</source>
|
||||
|
@ -162,7 +162,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation>Enlever du dock</translation>
|
||||
<translation>Détacher du dock</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Chargé à %1</translation>
|
||||
<translation type="vanished">Chargé à %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Chargement de %1 en cours....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Chargé</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Cargado %1</translation>
|
||||
<translation type="vanished">Cargado %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Cargado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>चार्ज है %1</translation>
|
||||
<translation type="vanished">चार्ज है %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Napunjeno %1</translation>
|
||||
<translation type="vanished">Napunjeno %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Napunjeno</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Töltve %1</translation>
|
||||
<translation type="vanished">Töltve %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Feltöltve</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Terisi %1</translation>
|
||||
<translation type="vanished">Terisi %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Carica %1</translation>
|
||||
<translation type="vanished">Carica %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>In carica %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Carico</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -158,11 +158,11 @@
|
||||
<name>MultitaskingPlugin</name>
|
||||
<message>
|
||||
<source>Multitasking View</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>マルチタスク画面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>ドックから削除</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -195,26 +195,30 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>残量 %1、残り %2 分</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 hr %3 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>残量 %1、残り %2 時間 %3 分</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>充電完了 %1</translation>
|
||||
<translation type="vanished">充電完了 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>充電中 %1、充電完了まで %2 分</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 hr %3 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>充電中 %1、充電完了まで %2 時間 %3 分</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>充電中 %1 …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@ -226,7 +230,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>ドックから削除</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 충전됨</translation>
|
||||
<translation type="vanished">%1 충전됨</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>%1 충전중 ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Įkrauta %1</translation>
|
||||
<translation type="vanished">Įkrauta %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Įkraunama %1....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 цэнэглэсэн</translation>
|
||||
<translation type="vanished">%1 цэнэглэсэн</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 dicaskan</translation>
|
||||
<translation type="vanished">%1 dicaskan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mengecas %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Dicas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Ladet opp %1</translation>
|
||||
<translation type="vanished">Ladet opp %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Endret</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>चार्ज % 1</translation>
|
||||
<translation type="vanished">चार्ज % 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -162,7 +162,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Undock</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 Opgeladen</translation>
|
||||
<translation type="vanished">%1 Opgeladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
@ -226,7 +230,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Undock</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Naładowana %1</translation>
|
||||
<translation type="vanished">Naładowana %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ładowanie %1....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Naładowana</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -17,7 +17,7 @@
|
||||
<name>DatetimePlugin</name>
|
||||
<message>
|
||||
<source>Datetime</source>
|
||||
<translation>Data e hora</translation>
|
||||
<translation>Data hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>12 Hour Time</source>
|
||||
@ -124,7 +124,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Hidden</source>
|
||||
<translation>Manter Oculta</translation>
|
||||
<translation>Manter oculta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Smart Hide</source>
|
||||
@ -158,11 +158,11 @@
|
||||
<name>MultitaskingPlugin</name>
|
||||
<message>
|
||||
<source>Multitasking View</source>
|
||||
<translation>Vista de Tarefas</translation>
|
||||
<translation>Vista de tarefas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation>Remover da dock</translation>
|
||||
<translation>Remover da doca</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Carregado %1</translation>
|
||||
<translation type="vanished">Carregado %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,18 +215,22 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A carregar %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Carregado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
<message>
|
||||
<source>Show Desktop</source>
|
||||
<translation>Mostrar Ambiente de trabalho</translation>
|
||||
<translation>Mostrar ambiente de trabalho</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation>Remover da dock</translation>
|
||||
<translation>Remover da doca</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -361,7 +365,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation>Ligado, mas sem acesso à Internet</translation>
|
||||
<translation>Ligado mas sem acesso à Internet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<name>DBusAdaptors</name>
|
||||
<message>
|
||||
<source>Add keyboard layout</source>
|
||||
<translation>Adicionar Layout de Teclado</translation>
|
||||
<translation>Adicionar o layout de teclado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -21,11 +21,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>12 Hour Time</source>
|
||||
<translation>12 Horas</translation>
|
||||
<translation>Formato de 12 Horas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>24 Hour Time</source>
|
||||
<translation>24 Horas</translation>
|
||||
<translation>Formato de 24 Horas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Time Settings</source>
|
||||
@ -51,7 +51,7 @@
|
||||
<name>DialogManager</name>
|
||||
<message>
|
||||
<source>Are you sure you want to empty %1 items?</source>
|
||||
<translation>Quer realmente limpar %1 itens?</translation>
|
||||
<translation>Esvaziar %1 itens?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
@ -81,7 +81,7 @@
|
||||
<name>DiskMountPlugin</name>
|
||||
<message>
|
||||
<source>Disk</source>
|
||||
<translation>Disco</translation>
|
||||
<translation>Dispositivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
@ -195,27 +195,31 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
<translation>%1 carregado | %2m restantes</translation>
|
||||
<translation>%1 Carregado - %2m restantes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 hr %3 min remaining</source>
|
||||
<translation>%1 carregado | %2h%3 restantes</translation>
|
||||
<translation>%1 Carregado - %2h%3 restantes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 carregado</translation>
|
||||
<translation type="vanished">%1 Carregado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
<translation>Carregando %1 | %2min até completar</translation>
|
||||
<translation>Carregando %1 - %2m até completar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 hr %3 min until full</source>
|
||||
<translation>Carregando %1 | %2h%3min até completar</translation>
|
||||
<translation>Carregando %1 - %2h%3 até completar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Carregando %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Carregado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Încărcat %1</translation>
|
||||
<translation type="vanished">Încărcat %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Заряжено %1</translation>
|
||||
<translation type="vanished">Заряжено %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Зарядка %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Заряжен</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -361,7 +365,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation>Подключено без доступа к Интернет</translation>
|
||||
<translation>Подключено, без доступа к Интернету</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Nabité %1</translation>
|
||||
<translation type="vanished">Nabité %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Nabitý</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Napolnjeno %1</translation>
|
||||
<translation type="vanished">Napolnjeno %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Napolnjen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
@ -249,7 +253,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mirovanje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock</source>
|
||||
@ -361,7 +365,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Povezano brez dostopa do interneta</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -3,55 +3,55 @@
|
||||
<name>AbstractPluginsController</name>
|
||||
<message>
|
||||
<source>The plugin %1 is not compatible with the system.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shtojca %1 s’është e përputhshme me sistemin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DBusAdaptors</name>
|
||||
<message>
|
||||
<source>Add keyboard layout</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shtoni skemë tastiere</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DatetimePlugin</name>
|
||||
<message>
|
||||
<source>Datetime</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Datë dhe kohë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>12 Hour Time</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Format Kohe 12 Orësh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>24 Hour Time</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Format Kohe 24 Orësh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Time Settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime Kohe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DeviceItem</name>
|
||||
<message>
|
||||
<source>Enable network</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aktivizo rrjetin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable network</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Çaktivizo rrjetin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime rrjeti</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DialogManager</name>
|
||||
<message>
|
||||
<source>Are you sure you want to empty %1 items?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Jeni i sigurt se doni të zbrazni $1 objekte?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
@ -59,162 +59,166 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fshije</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This action cannot be restored</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Për këtë veprim s’mund të bëhet rikthim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DiskControlItem</name>
|
||||
<message>
|
||||
<source>Unknown device</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Pajisje e panjohur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown volume</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Vëllim i panjohur</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DiskMountPlugin</name>
|
||||
<message>
|
||||
<source>Disk</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unmount all</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Çmontoji krejt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DockSettings</name>
|
||||
<message>
|
||||
<source>Fashion Mode</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mënyrë Moda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Efficient Mode</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mënyrë Efikase</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Top</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Sipër</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bottom</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Në Fund</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Majtas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Djathtas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Shown</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mbaje të Shfaqur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep Hidden</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mbaje të Fshehur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Smart Hide</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fshehje e Mençur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mode</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mënyrë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Location</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Vendndodhje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Gjendje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Plugins</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shtojca</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LauncherItem</name>
|
||||
<message>
|
||||
<source>Launcher</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nisës</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MultitaskingPlugin</name>
|
||||
<message>
|
||||
<source>Multitasking View</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Pamje Multitasking</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hiqe nga paneli</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NetworkPlugin</name>
|
||||
<message>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rrjet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>OnboardPlugin</name>
|
||||
<message>
|
||||
<source>Onboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Onboard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PowerPlugin</name>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Energji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime energjie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kapacitet %1, edhe %2 min</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 hr %3 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kapacitet %1, edhe %2 hr %3 min</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation type="vanished">E ngarkuar %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Po ngarkohet %1, edhe %2 min deri sa të jetë plot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 hr %3 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Po ngarkohet %1, edhe %2 hr % e 3min deri sa të jetë plot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Po ngarkohet %1 …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@ -222,157 +226,157 @@
|
||||
<name>ShowDesktopPlugin</name>
|
||||
<message>
|
||||
<source>Show Desktop</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shfaq Desktopin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hiqe nga paneli</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutdownPlugin</name>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Energji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Shut down</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fike</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restart</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rinise</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Pezulloje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Plogështoje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kyçe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Log out</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Dilni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Switch account</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Këmbeni llogari</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime energjie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SoundApplet</name>
|
||||
<message>
|
||||
<source>Device</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Pajisje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Application</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aplikacion</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SoundItem</name>
|
||||
<message>
|
||||
<source>Unmute</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ktheji zërin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mute</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hiqi zërin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Audio Settings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rregullime Audio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Volume %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Volumi i Tanishëm %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SoundPlugin</name>
|
||||
<message>
|
||||
<source>Sound</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zë</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrashPlugin</name>
|
||||
<message>
|
||||
<source>Trash</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hedhurina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Trash - %1 file</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hedhurina - %1 kartelë</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Trash - %1 files</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hedhurina - %1 kartela</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrashWidget</name>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hap</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Empty</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zbraze</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TrayPlugin</name>
|
||||
<message>
|
||||
<source>System Tray</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shtyllë Sistemi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WiredItem</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>E panjohur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wired connection: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lidhje me fill: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WirelessItem</name>
|
||||
<message>
|
||||
<source>No Network</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>S’ka Rrjet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wireless Connection: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lidhje Pa Fill: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>I lidhur, por pa hyrje Internet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WirelessList</name>
|
||||
<message>
|
||||
<source>Wireless Network</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rrjet Pa Fill</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wireless Network %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rrjet Pa Fill %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -29,7 +29,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Time Settings</source>
|
||||
<translation>Поставке времена</translation>
|
||||
<translation>Подешавање времена</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -44,7 +44,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Network settings</source>
|
||||
<translation>Поставке мреже</translation>
|
||||
<translation>Подешавање мреже</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -191,7 +191,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation>Поставке напајања</translation>
|
||||
<translation>Управљање напајањем</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Напуњено %1</translation>
|
||||
<translation type="vanished">Напуњено %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Пуни се %1 ....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@ -265,7 +269,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Power settings</source>
|
||||
<translation>Поставке напајања</translation>
|
||||
<translation>Управљање напајањем</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -291,7 +295,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Audio Settings</source>
|
||||
<translation>Поставке звука</translation>
|
||||
<translation>Подешавање звука</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Volume %1</source>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Laddad %1</translation>
|
||||
<translation type="vanished">Laddad %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 Şarj Oldu</translation>
|
||||
<translation type="vanished">%1 Şarj oldu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 Şarj oluyor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Şarj edildi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Заряджений на %1</translation>
|
||||
<translation type="vanished">Заряджений на %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,6 +215,10 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>Заряджаємо %1....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -3,14 +3,14 @@
|
||||
<name>AbstractPluginsController</name>
|
||||
<message>
|
||||
<source>The plugin %1 is not compatible with the system.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tiện ích %1 không tương thích với hệ thống</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DBusAdaptors</name>
|
||||
<message>
|
||||
<source>Add keyboard layout</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Thêm bố cục bàn phím</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -51,7 +51,7 @@
|
||||
<name>DialogManager</name>
|
||||
<message>
|
||||
<source>Are you sure you want to empty %1 items?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Bạn có chắc chắn muốn làm trống mục %1 không?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
@ -158,11 +158,11 @@
|
||||
<name>MultitaskingPlugin</name>
|
||||
<message>
|
||||
<source>Multitasking View</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Chế độ xem đa nhiệm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Gỡ khỏi dock</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -176,7 +176,7 @@
|
||||
<name>OnboardPlugin</name>
|
||||
<message>
|
||||
<source>Onboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Onboard</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Settings</source>
|
||||
@ -195,27 +195,31 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Năng lượng %1, %2 còn lại</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capacity %1, %2 hr %3 min remaining</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Năng lượng %1, %2 giờ %3 phút còn lại</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>Được nạp %1</translation>
|
||||
<translation type="vanished">Được nạp %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Đang sạc %1, %2 phút sẽ đầy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 hr %3 min until full</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Đang sạc %1, %2 giờ %3 phút sẽ đầy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Đang sạc %1 ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>Được sạt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -226,7 +230,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Undock</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Gỡ khỏi dock</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -249,7 +253,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ngủ đông</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock</source>
|
||||
@ -361,7 +365,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Connected but no Internet access</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Đã kết nối nhưng không có truy cập Internet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>已充满%1</translation>
|
||||
<translation type="vanished">已充满%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -217,6 +217,10 @@
|
||||
<source>Charging %1 ....</source>
|
||||
<translation>电量%1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>已充满</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShowDesktopPlugin</name>
|
||||
|
@ -203,7 +203,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged %1</source>
|
||||
<translation>%1 充電完成</translation>
|
||||
<translation type="vanished">%1 充電完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1, %2 min until full</source>
|
||||
@ -215,7 +215,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Charging %1 ....</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>電量%1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Charged</source>
|
||||
<translation>充電完成</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
Loading…
x
Reference in New Issue
Block a user