diff --git a/src/kcmodule/buttonactionselectiondialog.cpp b/src/kcmodule/buttonactionselectiondialog.cpp index 8fe19b1..e1a0124 100644 --- a/src/kcmodule/buttonactionselectiondialog.cpp +++ b/src/kcmodule/buttonactionselectiondialog.cpp @@ -1,95 +1,95 @@ /* * This file is part of the KDE wacomtablet project. For copyright * information and license terms see the AUTHORS and COPYING files * in the top-level directory of this distribution. * * 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 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "buttonactionselectiondialog.h" #include "buttonshortcut.h" #include "buttonactionselectionwidget.h" #include #include #include #include #include using namespace Wacom; namespace Wacom { class ButtonActionSelectionDialogPrivate { public: ButtonShortcut shortcut; ButtonActionSelectionWidget* selectionWidget; // no need to delete this widget as it is properly parented. }; } ButtonActionSelectionDialog::ButtonActionSelectionDialog(QWidget* parent) : QDialog(parent), d_ptr(new ButtonActionSelectionDialogPrivate) { Q_D (ButtonActionSelectionDialog); d->selectionWidget = new ButtonActionSelectionWidget(this); QVBoxLayout* layout = new QVBoxLayout; setLayout(layout); QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); layout->addWidget(d->selectionWidget); layout->addWidget(buttonBox); setWindowTitle( i18nc( "The action that will be assigned to a tablet button.", "Select Button Action" ) ); - setWindowIcon( QIcon::fromTheme( QLatin1String("input-tablet") ) ); + setWindowIcon( QIcon::fromTheme( QLatin1String("preferences-desktop-tablet") ) ); connect( buttonBox, &QDialogButtonBox::clicked, [this, buttonBox](QAbstractButton* button){ if (QDialogButtonBox::Ok == buttonBox->standardButton(button)) { onOkClicked(); accept(); } else { // Cancel reject(); } } ); } ButtonActionSelectionDialog::~ButtonActionSelectionDialog() { delete this->d_ptr; } const ButtonShortcut& ButtonActionSelectionDialog::getShortcut() const { Q_D (const ButtonActionSelectionDialog); return d->shortcut; } void ButtonActionSelectionDialog::setShortcut(const ButtonShortcut& shortcut) { Q_D (ButtonActionSelectionDialog); d->shortcut = shortcut; d->selectionWidget->setShortcut(shortcut); } void ButtonActionSelectionDialog::onOkClicked() { Q_D (ButtonActionSelectionDialog); d->shortcut = d->selectionWidget->getShortcut(); } diff --git a/src/kcmodule/tabletareaselectiondialog.cpp b/src/kcmodule/tabletareaselectiondialog.cpp index c016673..164379c 100644 --- a/src/kcmodule/tabletareaselectiondialog.cpp +++ b/src/kcmodule/tabletareaselectiondialog.cpp @@ -1,118 +1,118 @@ /* * This file is part of the KDE wacomtablet project. For copyright * information and license terms see the AUTHORS and COPYING files * in the top-level directory of this distribution. * * 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 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "tabletareaselectiondialog.h" #include "tabletareaselectionwidget.h" #include "stringutils.h" #include "screensinfo.h" #include #include #include #include #include using namespace Wacom; namespace Wacom { class TabletAreaSelectionDialogPrivate { public: TabletAreaSelectionWidget *selectionWidget = nullptr; // no need to delete this widget as it is properly parented. }; // PRIVATE CLASS } // NAMESPACE TabletAreaSelectionDialog::TabletAreaSelectionDialog() : QDialog(nullptr), d_ptr(new TabletAreaSelectionDialogPrivate) { setupUi(); } TabletAreaSelectionDialog::~TabletAreaSelectionDialog() { delete this->d_ptr; } const ScreenMap& TabletAreaSelectionDialog::getScreenMap() { Q_D(TabletAreaSelectionDialog); return d->selectionWidget->getScreenMap(); } const ScreenSpace TabletAreaSelectionDialog::getScreenSpace() const { Q_D(const TabletAreaSelectionDialog); return d->selectionWidget->getScreenSpace(); } void TabletAreaSelectionDialog::select(QString output) { Q_D(TabletAreaSelectionDialog); d->selectionWidget->select(output); } void TabletAreaSelectionDialog::select(const ScreenSpace& screenSpace) { Q_D(TabletAreaSelectionDialog); d->selectionWidget->select(screenSpace); } void TabletAreaSelectionDialog::setupWidget(const ScreenMap& mappings, const QString& deviceName, const ScreenRotation& rotation) { Q_D(TabletAreaSelectionDialog); d->selectionWidget->setupWidget(mappings, deviceName, rotation); } void TabletAreaSelectionDialog::setupUi() { Q_D(TabletAreaSelectionDialog); d->selectionWidget = new TabletAreaSelectionWidget(this); QVBoxLayout* layout = new QVBoxLayout; QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); layout->addWidget( d->selectionWidget ); layout->addWidget( buttonBox ); setLayout(layout); connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); setWindowTitle( i18nc( "Dialog title from a dialog which lets the user select an area of the tablet where the screen space will be mapped to.", "Select a Tablet Area" ) ); - setWindowIcon( QIcon::fromTheme( QLatin1String("input-tablet") ) ); + setWindowIcon( QIcon::fromTheme( QLatin1String("preferences-desktop-tablet") ) ); //connect( this, SIGNAL(okClicked()), this, SLOT(onOkClicked()) ); } diff --git a/src/kded/tabletdaemon.cpp b/src/kded/tabletdaemon.cpp index 13f5c77..7a25787 100644 --- a/src/kded/tabletdaemon.cpp +++ b/src/kded/tabletdaemon.cpp @@ -1,240 +1,240 @@ /* * This file is part of the KDE wacomtablet project. For copyright * information and license terms see the AUTHORS and COPYING files * in the top-level directory of this distribution. * * 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 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "tabletdaemon.h" #include "logging.h" #include "dbustabletservice.h" #include "tabletfinder.h" #include "tablethandler.h" #include "wacomadaptor.h" #include "x11eventnotifier.h" #include "globalactions.h" #include "../wacomtablet-version.h" // common includes #include "aboutdata.h" // stdlib includes #include // KDE includes #include #include #include #include #include #include using namespace Wacom; K_PLUGIN_FACTORY_WITH_JSON(WacomTabletFactory, "wacomtablet.json", registerPlugin();) namespace Wacom { /** * Private class of the TabletDaemon for the d-pointer */ class TabletDaemonPrivate { public: TabletDaemonPrivate() : tabletHandler(), dbusTabletService(tabletHandler) {} TabletHandler tabletHandler; /**< tablet handler */ DBusTabletService dbusTabletService; std::shared_ptr actionCollection; /**< Collection of all global actions */ }; // CLASS } // NAMESPACE TabletDaemon::TabletDaemon( QObject *parent, const QVariantList &args ) : KDEDModule( parent ), d_ptr( new TabletDaemonPrivate ) { Q_UNUSED( args ); Q_D( TabletDaemon ); setupApplication(); setupDBus(); setupEventNotifier(); setupActions(); // scan for connected devices TabletFinder::instance().scan(); // connect profile changed handler after searching for tablets as this is only used for the global shortcut workaround. connect(&(d->tabletHandler), &TabletHandler::profileChanged, this, &TabletDaemon::onProfileChanged); // Connecting this after the device has been set up ensures that no notification is send on startup. connect( &(d->tabletHandler), &TabletHandler::notify, this, &TabletDaemon::onNotify); } TabletDaemon::~TabletDaemon() { X11EventNotifier::instance().stop(); delete this->d_ptr; } void TabletDaemon::onNotify(const QString& eventId, const QString& title, const QString& message, bool suggestConfigure) const { KNotification* notification = new KNotification(eventId); notification->setComponentName( QStringLiteral("wacomtablet") ); notification->setTitle(title); notification->setText(message); - notification->setIconName( QLatin1String( "input-tablet" ) ); + notification->setIconName( QLatin1String( "preferences-desktop-tablet" ) ); if (suggestConfigure) { notification->setActions(QStringList{ i18nc("Button that shows up in notification of a new tablet being connected", "Configure") }); connect(notification, &KNotification::action1Activated, this, &TabletDaemon::onOpenConfiguration); } notification->sendEvent(); } void TabletDaemon::onProfileChanged(const QString &tabletId, const QString& profile) { Q_UNUSED(tabletId); Q_UNUSED(profile); // When closing the KCM module the KAction destructor disables all global shortcuts. // Make sure the global shortcuts are restored when a profile changes. This is not // optimal but at least it will enable the shortcuts again. qCDebug(KDED) << QLatin1String("Restoring global keyboard shortcuts..."); setupActions(); } void TabletDaemon::onOpenConfiguration() const { QProcess::startDetached(QStringLiteral("kcmshell5 wacomtablet")); } void TabletDaemon::setupActions() { Q_D( TabletDaemon ); //if someone adds another action also add it to kcmodule/generalwidget.cpp // This method is called multiple times - make sure the action collection is only created once. if (!d->actionCollection) { d->actionCollection = std::shared_ptr(new GlobalActions(false, this)); d->actionCollection->setConfigGlobal(true); } connect(d->actionCollection.get(), &GlobalActions::toggleTouchTriggered, &(d->tabletHandler), &TabletHandler::onToggleTouch, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::toggleStylusTriggered, &(d->tabletHandler), &TabletHandler::onTogglePenMode, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::toggleScreenMapTriggered, &(d->tabletHandler), &TabletHandler::onToggleScreenMapping, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::mapToFullScreenTriggered, &(d->tabletHandler), &TabletHandler::onMapToFullScreen, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::mapToScreen1Triggered, &(d->tabletHandler), &TabletHandler::onMapToScreen1, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::mapToScreen2Triggered, &(d->tabletHandler), &TabletHandler::onMapToScreen2, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::nextProfileTriggered, &(d->tabletHandler), &TabletHandler::onNextProfile, Qt::UniqueConnection); connect(d->actionCollection.get(), &GlobalActions::previousProfileTriggered, &(d->tabletHandler), &TabletHandler::onPreviousProfile, Qt::UniqueConnection); } void TabletDaemon::setupApplication() { static AboutData about(QLatin1Literal("wacomtablet"), i18n( "Graphic Tablet Configuration daemon"), QLatin1String(WACOMTABLET_VERSION_STRING), i18n( "A Wacom tablet control daemon" )); } void TabletDaemon::setupDBus() { Q_D( TabletDaemon ); // connect tablet handler events to D-Bus // this is done here and not in the D-Bus tablet service to facilitate unit testing connect(&(d->tabletHandler), &TabletHandler::profileChanged, &(d->dbusTabletService), &DBusTabletService::onProfileChanged); connect(&(d->tabletHandler), &TabletHandler::tabletAdded, &(d->dbusTabletService), &DBusTabletService::onTabletAdded); connect(&(d->tabletHandler), &TabletHandler::tabletRemoved, &(d->dbusTabletService), &DBusTabletService::onTabletRemoved); } void TabletDaemon::setupEventNotifier() { Q_D( TabletDaemon ); // Set up monitoring for individual screen geometry changes monitorAllScreensGeometry(); // Set up monitoring for screens being added, removed or reordered connect(qApp, &QGuiApplication::primaryScreenChanged, &(d->tabletHandler), &TabletHandler::onScreenAddedRemoved); connect(qApp, &QGuiApplication::screenAdded, &(d->tabletHandler), &TabletHandler::onScreenAddedRemoved); connect(qApp, &QGuiApplication::screenRemoved, &(d->tabletHandler), &TabletHandler::onScreenAddedRemoved); // Set up tablet connected/disconnected signals connect( &X11EventNotifier::instance(), &X11EventNotifier::tabletAdded, &TabletFinder::instance(), &TabletFinder::onX11TabletAdded); connect( &X11EventNotifier::instance(), &X11EventNotifier::tabletRemoved, &TabletFinder::instance(), &TabletFinder::onX11TabletRemoved); connect( &TabletFinder::instance(), &TabletFinder::tabletAdded, &(d->tabletHandler), &TabletHandler::onTabletAdded); connect( &TabletFinder::instance(), &TabletFinder::tabletRemoved, &(d->tabletHandler), &TabletHandler::onTabletRemoved); if (QX11Info::isPlatformX11()) { X11EventNotifier::instance().start(); } } void TabletDaemon::monitorAllScreensGeometry() { // Add existing screens for (const auto &screen : QGuiApplication::screens()) { monitorScreenGeometry(screen); } // Monitor future screens connect(qApp, &QGuiApplication::screenAdded, this, &TabletDaemon::monitorScreenGeometry); } void TabletDaemon::monitorScreenGeometry(QScreen *screen) { Q_D( TabletDaemon ); const auto &tabletHandler = &(d->tabletHandler); connect(screen, &QScreen::orientationChanged, [=](const Qt::ScreenOrientation &newScreenRotation){ tabletHandler->onScreenRotated(screen->name(), newScreenRotation); }); screen->setOrientationUpdateMask(Qt::LandscapeOrientation | Qt::PortraitOrientation | Qt::InvertedLandscapeOrientation | Qt::InvertedPortraitOrientation); connect(screen, &QScreen::geometryChanged, &(d->tabletHandler), &TabletHandler::onScreenGeometryChanged); } #include "tabletdaemon.moc" diff --git a/src/kded/wacomtablet.notifyrc b/src/kded/wacomtablet.notifyrc index 41bdd5d..b65203b 100644 --- a/src/kded/wacomtablet.notifyrc +++ b/src/kded/wacomtablet.notifyrc @@ -1,366 +1,366 @@ [Global] -IconName=input-tablet +IconName=preferences-desktop-tablet Comment=Wacom Tablet Comment[ar]=لوحيّّ واكُم Comment[bs]=Wacom Tablet Comment[ca]=Tauleta Wacom Comment[ca@valencia]=Tauleta Wacom Comment[cs]=Tablet Wacom Comment[da]=Wacom tegneplade Comment[de]=Wacom-Tablett Comment[el]=Πινάκιο Wacom Comment[en_GB]=Wacom Tablet Comment[es]=Tablet Wacom Comment[et]=Wacomi graafikalaud Comment[eu]=Wacom Tableta Comment[fi]=Wacom-piirtopöytä Comment[fr]=Tablette « Wacom » Comment[ga]=Táibléad Wacom Comment[gl]=Tableta de Wacom Comment[hu]=Wacom táblagép Comment[ia]=Tabletta Wacom Comment[id]=Tablet Wacom Comment[it]=Tavoletta Wacom Comment[ja]=Wacom タブレット Comment[kk]=Wacom планшеті Comment[km]=Wacom Tablet Comment[ko]=와콤 태블릿 Comment[lt]=Wacom planšetė Comment[mr]=वेकॉम टॅब्लेट Comment[nb]=Wacom tegneplate Comment[nds]=Wacom-Tablett Comment[nl]=Wacom-tablet Comment[nn]=Wacom-teikneplate Comment[pa]=ਵਸਕੋਮ ਟੈਬਲੇਟ Comment[pl]=Tablet Wacom Comment[pt]=Tablete Wacom Comment[pt_BR]=Mesa digitalizadora Wacom Comment[ro]=Planșetă Wacom Comment[ru]=Планшет Wacom Comment[sk]=Wacom Tablet Comment[sl]=Tablica Wacom Comment[sv]=Wacom ritplatta Comment[th]=แท็บเล็ตของ Wacom Comment[tr]=Wacom Tablet Comment[ug]=Wacom سەزگۈر تاختا Comment[uk]=Планшет Wacom Comment[x-test]=xxWacom Tabletxx Comment[zh_CN]=Wacom 数位板 Comment[zh_TW]=Wacom 平板裝置 Name=WacomTablet Name[ar]=لوحيّ واكُم Name[bs]=WacomTablet Name[ca]=TauletaWacom Name[ca@valencia]=TauletaWacom Name[cs]=Tablet Wacom Name[da]=Wacom tegneplade Name[de]=Wacom-Tablett Name[el]=WacomTablet Name[en_GB]=WacomTablet Name[es]=WacomTablet Name[et]=Wacomi graafikalaud Name[eu]=WacomTableta Name[fi]=Wacom-piirtopöytä Name[fr]=Tablette « Wacom » Name[gl]=WacomTablet Name[hu]=WacomTablet Name[id]=WacomTablet Name[it]=TavolettaWacom Name[kk]=Wacom планшеті Name[km]=WacomTablet Name[ko]=WacomTablet Name[lt]=Wacomplanšetė Name[mr]=वेकॉम-टॅब्लेट Name[nb]=WacomTablet Name[nds]=Wacom-Tablett Name[nl]=WacomTablet Name[nn]=WacomTablet Name[pa]=ਵਕੋਮਟੇਬਲੇਟ Name[pl]=Tablet Wacom Name[pt]=Tablete Wacom Name[pt_BR]=Mesa digitalizadora Wacom Name[ro]=PlanșetăWacom Name[ru]=Планшет Wacom Name[sk]=WacomTablet Name[sl]=WacomTablet Name[sv]=Wacom-ritplatta Name[th]=แท็บเล็ตของ Wacom Name[tr]=WacomTablet Name[ug]=WacomTablet Name[uk]=Планшет Wacom Name[x-test]=xxWacomTabletxx Name[zh_CN]=Wacom 数位板 Name[zh_TW]=Wacom 平板裝置 [Event/tabletAdded] Name=New tablet connected Name[ar]=وُصل لوحيّ جديد Name[bs]=Novi tablet povezan Name[ca]=Hi ha una nova tauleta connectada Name[ca@valencia]=Hi ha una nova tauleta connectada Name[cs]=Připojen nový tablet Name[da]=Ny tegneplade tilsluttet Name[de]=Neues Tablett angeschlossen Name[el]=Νέο πινάκιο συνδέθηκε Name[en_GB]=New tablet connected Name[es]=Nuevo tablet conectado Name[et]=Uus graafikalaud on ühendatud Name[eu]=Tableta berria konektatu da Name[fi]=Uusi piirtopöytä kytketty Name[fr]=Nouvelle tablette connectée Name[gl]=Hai unha tableta nova conectada Name[hu]=Új táblagép csatlakoztatva Name[id]=Tablet baru terkonek Name[it]=Nuova tavoletta connessa Name[ja]=新しいタブレットが接続されました Name[kk]=Жаңа планшет қосылды Name[km]=បាន​តភ្ជាប់​ tablet ថ្មី​ Name[ko]=새 태블릿 연결됨 Name[lt]=Nauja planšetė prisijungta Name[mr]=नवीन टॅब्लेट जुळले गेले Name[nb]=Ny skriveplate tilkoblet Name[nds]=Nieg Tablett tokoppelt Name[nl]=Nieuw tablet verbonden Name[nn]=Ny teikneplate kopla til Name[pa]=ਨਵਾਂ ਟੈਪਲੇਟ ਕੁਨੈਕਟ ਕੀਤਾ Name[pl]=Podłączono nowy tablet Name[pt]=Foi ligada uma nova tablete Name[pt_BR]=Nova mesa digitalizadora conectada Name[ro]=Planșetă nouă conectată Name[ru]=Подключён новый планшет Name[sk]=Nový tablet pripojený Name[sl]=Povezana je bila nova tablica Name[sv]=Ny ritplatta ansluten Name[th]=เชื่อมต่อแท็บเล็ตใหม่แล้ว Name[tr]=Yeni tablet bağlandı Name[uk]=З’єднано новий планшет Name[x-test]=xxNew tablet connectedxx Name[zh_CN]=新数位板已连接 Name[zh_TW]=新的平板裝置已連線 Comment=New graphic tablet connected Comment[ar]=لوحيّ جديد قد وُصل Comment[bs]=Novi grafički tablet povezan Comment[ca]=Hi ha una nova tauleta gràfica connectada Comment[ca@valencia]=Hi ha una nova tauleta gràfica connectada Comment[cs]=Připojen nový grafický tablet Comment[da]=Ny grafiktegneplade tilsluttet Comment[de]=Neues Grafiktablett angeschlossen Comment[el]=Νέο γραφικό πινάκιο συνδέθηκε Comment[en_GB]=New graphic tablet connected Comment[es]=Nueva tableta gráfica conectada Comment[et]=Uus graafikalaud on ühendatud Comment[eu]=Tableta grafiko berria konektatu da Comment[fi]=Uusi piirtopöytä kytketty Comment[fr]=Nouvelle tablette graphique connectée Comment[gl]=Hai unha tableta gráfica nova conectada Comment[hu]=Új rajztábla csatlakoztatva Comment[id]=Tablet grafik baru terkonek Comment[it]=Nuova tavoletta grafica connessa Comment[ja]=新しいグラフィックタブレットが接続されました Comment[kk]=Жаңа графикалық планшет қосылды Comment[km]=ក្រាហ្វិក​របស់​​ tablet ថ្មី​ដែល​បាន​តភ្ជាប់​ Comment[ko]=새 그래픽 태블릿 연결됨 Comment[lt]=Nauja grafinė planšetė prisijungta Comment[mr]=नवीन ग्राफिक टॅब्लेट जुळले गेले Comment[nb]=Ny tegneplate tilkoblet Comment[nds]=Nieg Grafiktablett tokoppelt Comment[nl]=Nieuw grafisch tablet verbonden Comment[nn]=Ny teikneplate vart kopla til Comment[pa]=ਨਵਾਂ ਗਰਾਫਿਕਸ ਟੈਬਲੇਟ ਕੁਨੈਕਟ ਕੀਤਾ Comment[pl]=Podłączono nowy graficzny tablet Comment[pt]=Foi ligada uma nova tablete gráfica Comment[pt_BR]=Nova mesa digitalizadora gráfica conectada Comment[ro]=A fost conectată o planșetă grafică nouă Comment[ru]=Подключён новый графический планшет Comment[sk]=Nový grafický tablet pripojený Comment[sl]=Povezana je bila nova tablica Comment[sv]=Ny grafisk ritplatta ansluten Comment[th]=เชื่อมต่อแท็บเล็ตกราฟิกใหม่แล้ว Comment[tr]=Yeni grafik tablet bağlandı Comment[uk]=З’єднано новий графічний планшет Comment[x-test]=xxNew graphic tablet connectedxx Comment[zh_CN]=新数位板已连接 Comment[zh_TW]=新的圖形平板裝置已連線 Action=Popup [Event/tabletRemoved] Name=Tablet removed Name[ar]=أُزيل لوحيّ Name[bs]=Tablet uklonjen Name[ca]=S'ha extret la tauleta Name[ca@valencia]=S'ha extret la tauleta Name[cs]=Tablet odpojen Name[da]=Tegneplade fjernet Name[de]=Tablett entfernt Name[el]=Το πινάκιο αφαιρέθηκε Name[en_GB]=Tablet removed Name[es]=Tableta retirada Name[et]=Graafikalaud on eemaldatud Name[eu]=Tableta kendu da Name[fi]=Piirtopöytä irrotettu Name[fr]=Tablette supprimée Name[gl]=Retirouse a tableta Name[hu]=Táblagép eltávolítva Name[id]=Tablet dihapus Name[it]=Tavoletta rimossa Name[ja]=タブレットが取り外されました Name[kk]=Планшет өшірілді Name[km]=បាន​យក​ Tablet ចេញ​ Name[ko]=태블릿 제거됨 Name[lt]=Planšetė pašalinta Name[mr]=टॅब्लेट काढून टाकले Name[nb]=Plate frakoblet Name[nds]=Tablett wegdaan Name[nl]=Tablet verwijderd Name[nn]=Teikneplate kopla frå Name[pa]=ਟੈਬਲੇਟ ਹਟਾਇਆ Name[pl]=Usunięto tablet Name[pt]=Tablete removida Name[pt_BR]=Mesa digitalizadora removida Name[ro]=Planșetă eliminată Name[ru]=Планшет отключён Name[sk]=Tablet odtránený Name[sl]=Tablica je bila odstranjena Name[sv]=Ritplatta borttagen Name[th]=เอาแท็บเล็ตออกแล้ว Name[tr]=Tablet çıkarıldı Name[uk]=Вилучено планшет Name[x-test]=xxTablet removedxx Name[zh_CN]=数位板已移除 Name[zh_TW]=平板裝置已移除 Comment=Graphic tablet removed Comment[ar]=أُزيل لوحيّ رسم Comment[bs]=Grafički tablet uklonjen Comment[ca]=S'ha extret la tauleta gràfica Comment[ca@valencia]=S'ha extret la tauleta gràfica Comment[cs]=Grafický tablet odpojen Comment[da]=Grafiktegneplade fjernet Comment[de]=Grafiktablett entfernt Comment[el]=Το γραφικό πινάκιο αφαιρέθηκε Comment[en_GB]=Graphic tablet removed Comment[es]=Tableta gráfica retirada Comment[et]=Graafikalaud on eemaldatud Comment[eu]=Tableta grafikoa kendu da Comment[fi]=Piirtopöytä irrotettu Comment[fr]=Tablette graphique supprimée Comment[gl]=Retirouse a tableta gráfica Comment[hu]=Rajztábla eltávolítva Comment[id]=Tablet grafik dihapus Comment[it]=Tavoletta grafica rimossa Comment[ja]=グラフィックタブレットが取り外されました Comment[kk]=Графикалық планшет өшірілді Comment[km]=ក្រាហ្វិក​របស់​ tablet ដែល​បាន​យក​ចេញ​ Comment[ko]=그래픽 태블릿 제거됨 Comment[lt]=Grafinė planšetė pašalinta Comment[mr]=ग्राफिक टॅब्लेट काढून टाकले Comment[nb]=Tegneplate frakoblet Comment[nds]=Grafiktablett wegdaan Comment[nl]=Grafisch tablet verwijderd Comment[nn]=Teikneplate vart kopla frå Comment[pa]=ਗਰਾਫਿਕਸ ਟੈਬਲੇਟ ਹਟਾਇਆ Comment[pl]=Usunięto graficzny tablet Comment[pt]=Tablete gráfica removida Comment[pt_BR]=Mesa digitalizadora gráfica removida Comment[ro]=A fost eliminată o planșetă grafică Comment[ru]=Графический планшет отключён Comment[sk]=Grafický tablet odstránený Comment[sl]=Tablica je bila odstranjena Comment[sv]=Grafisk ritplatta borttagen Comment[th]=เอาแท็บเล็ตกราฟิกออกแล้ว Comment[tr]=Grafik tablet çıkarıldı Comment[uk]=Вилучено графічний планшет Comment[x-test]=xxGraphic tablet removedxx Comment[zh_CN]=数位板已移除 Comment[zh_TW]=圖形平板裝置已移除 Action=Popup [Event/tabletError] Name=A tablet error Name[ar]=عطل في اللوحيّ Name[bs]=Greška tableta Name[ca]=Un error a la tauleta Name[ca@valencia]=Un error a la tauleta Name[cs]=Chyba tabletu Name[da]=Tegnepladefejl Name[de]=Tablett-Fehler Name[el]=Σφάλμα πινακίου Name[en_GB]=A tablet error Name[es]=Error de la tableta Name[et]=Graafikalaua tõrge Name[eu]=Tabletaren errore bat Name[fi]=Piirtopöytävirhe Name[fr]=Une erreur de la tablette Name[ga]=Earráid leis an táibléad Name[gl]=Un erro coa tableta Name[hu]=Táblagéphiba Name[id]=Tablet error Name[it]=Errore della tavoletta Name[kk]=Планшет қатесі Name[km]=កំហុស​ tablet Name[ko]=태블릿 오류 Name[lt]=Planšetės klaida Name[mr]=टॅब्लेट त्रुटी Name[nb]=En platefeil Name[nds]=En Tablettfehler Name[nl]=Een tabletfout Name[nn]=Feil ved teikneplate Name[pa]=ਟੈਬਲੇਟ ਗਲਤੀ Name[pl]=Błąd tabletu Name[pt]=Erro da tablete Name[pt_BR]=Erro da mesa digitalizadora Name[ro]=O eroare de planșetă Name[ru]=Ошибка планшета Name[sk]=Chyba tabletu Name[sl]=Napaka tablice Name[sv]=Fel med ritplatta Name[th]=แท็บเล็ตมีข้อผิดพลาด Name[tr]=Bir tablet hatası Name[uk]=Помилка планшета Name[x-test]=xxA tablet errorxx Name[zh_CN]=数位板错误 Name[zh_TW]=平板裝置錯誤 Comment=An error occurred with the tablet Comment[ar]=حدث عطل مع اللوحيّ Comment[bs]=Desila se greška s tabletom Comment[ca]=Hi ha hagut un error amb la tauleta Comment[ca@valencia]=Hi ha hagut un error amb la tauleta Comment[cs]=V tabletu došlo k chybě Comment[da]=Der opstod en fejl med tegnepladen Comment[de]=Mit dem Tablett ist ein Fehler aufgetreten Comment[el]=Ένα σφάλμα εμφανίστηκε με το πινάκιο Comment[en_GB]=An error occurred with the tablet Comment[es]=Ha ocurrido un error con la tableta Comment[et]=Graafikalauaga tekkist tõrge Comment[eu]=Errore bat gertatu da tabletarekin Comment[fi]=Piirtopöydän suhteen tapahtui virhe Comment[fr]=Un problème s'est produite avec la tablette Comment[ga]=Tharla earráid leis an táibléad Comment[gl]=Produciuse un erro coa tableta Comment[hu]=Hiba történt a táblagéppel Comment[id]=Sebuah error terjadi dengan si tablet Comment[it]=Si è verificato un errore con la tavoletta Comment[kk]=Планшетпен бір қате орын алды Comment[km]=កំហុស​បាន​កើត​ឡើង​ជាមួយ​​ tablet Comment[ko]=태블릿에 오류가 발생함 Comment[lt]=Įvyko klaida su planšete Comment[mr]=टॅब्लेट मध्ये त्रुटी आढळली Comment[nb]=Det oppsto en feil med plata Comment[nds]=Mit dat Tablett hett dat en Fehler geven. Comment[nl]=Er deed zich een fout voor met het tablet Comment[nn]=Det oppstod ein feil med teikneplata Comment[pa]=ਟੈਬਲੇਟ ਨਾਲ ਗਲਤੀ ਆਈ Comment[pl]=Wystąpił błąd z tabletem Comment[pt]=Ocorreu um erro com a tablete Comment[pt_BR]=Ocorreu um erro com a mesa digitalizadora Comment[ro]=A intervenit o eroare legată de planșetă Comment[ru]=Произошла ошибка, связанная с планшетом Comment[sk]=Nastala chyba s tabletom Comment[sl]=Prišlo je do napake tablice Comment[sv]=Ett fel uppstod med ritplattan Comment[th]=เกิดข้อผิดพลาดกับแท็บเล็ต Comment[tr]=Tablet ile ilgili bir hata oluştu Comment[uk]=Під час роботи з планшетом сталася помилка Comment[x-test]=xxAn error occurred with the tabletxx Comment[zh_CN]=数位板发生错误 Comment[zh_TW]=平板裝置發生錯誤 Action=Popup