1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*
SPDX-FileCopyrightText: 2015-2025 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "viewerplugintranslatorinterface.h"
#include <TextTranslator/TranslatorWidget>
#include <KActionCollection>
#include <KLocalizedString>
#include <QAction>
#include <QIcon>
#include <QLayout>
using namespace MessageViewer;
ViewerPluginTranslatorInterface::ViewerPluginTranslatorInterface(KActionCollection *ac, QWidget *parent)
: ViewerPluginInterface(parent)
{
createAction(ac);
}
ViewerPluginTranslatorInterface::~ViewerPluginTranslatorInterface() = default;
void ViewerPluginTranslatorInterface::setText(const QString &text)
{
widget()->setTextToTranslate(text);
}
QList<QAction *> ViewerPluginTranslatorInterface::actions() const
{
return mAction;
}
void ViewerPluginTranslatorInterface::showWidget()
{
widget()->show();
}
ViewerPluginInterface::SpecificFeatureTypes ViewerPluginTranslatorInterface::featureTypes() const
{
return NeedSelection;
}
void ViewerPluginTranslatorInterface::createAction(KActionCollection *ac)
{
if (ac) {
auto act = new QAction(i18nc("@action", "Translate…"), this);
ac->setDefaultShortcut(act, QKeySequence(Qt::CTRL | Qt::ALT | Qt::Key_T));
act->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-locale")));
ac->addAction(QStringLiteral("translate_text"), act);
connect(act, &QAction::triggered, this, &ViewerPluginTranslatorInterface::slotActivatePlugin);
mAction.append(act);
}
}
TextTranslator::TranslatorWidget *ViewerPluginTranslatorInterface::widget()
{
if (!mTranslatorWidget) {
auto parentWidget = static_cast<QWidget *>(parent());
mTranslatorWidget = new TextTranslator::TranslatorWidget(parentWidget);
mTranslatorWidget->setObjectName(QLatin1StringView("translatorwidget"));
parentWidget->layout()->addWidget(mTranslatorWidget);
mTranslatorWidget->hide();
}
return mTranslatorWidget;
}
#include "moc_viewerplugintranslatorinterface.cpp"
|