File indexing completed on 2024-05-19 05:04:01
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "autotranslateconfigurewidget.h" 0008 #include "model/autotranslatelanguagesmodel.h" 0009 #include "rocketchataccount.h" 0010 #include "room.h" 0011 #include <KLocalizedString> 0012 #include <QCheckBox> 0013 #include <QComboBox> 0014 #include <QHBoxLayout> 0015 #include <QLabel> 0016 #include <QVBoxLayout> 0017 0018 AutoTranslateConfigureWidget::AutoTranslateConfigureWidget(RocketChatAccount *account, QWidget *parent) 0019 : QWidget(parent) 0020 , mAutoTranslate(new QCheckBox(i18n("Auto-Translate"), this)) 0021 , mLanguageComboBox(new QComboBox(this)) 0022 , mRocketChatAccount(account) 0023 { 0024 auto mainLayout = new QVBoxLayout(this); 0025 mainLayout->setObjectName(QStringLiteral("mainLayout")); 0026 mainLayout->setContentsMargins({}); 0027 0028 mAutoTranslate->setObjectName(QStringLiteral("mAutoTranslate")); 0029 mainLayout->addWidget(mAutoTranslate); 0030 connect(mAutoTranslate, &QCheckBox::clicked, this, &AutoTranslateConfigureWidget::slotChangeAutoTranslate); 0031 0032 auto horizontalLayout = new QHBoxLayout; 0033 horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); 0034 horizontalLayout->setContentsMargins({}); 0035 mainLayout->addLayout(horizontalLayout); 0036 0037 auto label = new QLabel(i18n("Language:"), this); 0038 label->setObjectName(QStringLiteral("label")); 0039 label->setTextFormat(Qt::PlainText); 0040 horizontalLayout->addWidget(label); 0041 0042 mLanguageComboBox->setObjectName(QStringLiteral("mLanguage")); 0043 if (mRocketChatAccount) { 0044 mLanguageComboBox->setModel(mRocketChatAccount->autoTranslateLanguagesModel()); 0045 } 0046 connect(mLanguageComboBox, &QComboBox::activated, this, &AutoTranslateConfigureWidget::slotLanguageChanged); 0047 0048 horizontalLayout->addWidget(mLanguageComboBox); 0049 0050 mainLayout->addStretch(1); 0051 } 0052 0053 AutoTranslateConfigureWidget::~AutoTranslateConfigureWidget() = default; 0054 0055 Room *AutoTranslateConfigureWidget::room() const 0056 { 0057 return mRoom; 0058 } 0059 0060 void AutoTranslateConfigureWidget::slotLanguageChanged(int index) 0061 { 0062 mRocketChatAccount->autoTranslateSaveLanguageSettings(mRoom->roomId(), mRocketChatAccount->autoTranslateLanguagesModel()->selectedLanguage(index)); 0063 } 0064 0065 void AutoTranslateConfigureWidget::slotChangeAutoTranslate(bool status) 0066 { 0067 mRocketChatAccount->autoTranslateSaveAutoTranslateSettings(mRoom->roomId(), status); 0068 } 0069 0070 void AutoTranslateConfigureWidget::slotAutoTranslateChanged() 0071 { 0072 mAutoTranslate->setChecked(mRoom->autoTranslate()); 0073 } 0074 0075 void AutoTranslateConfigureWidget::slotAutoTranslateLanguageChanged() 0076 { 0077 mLanguageComboBox->setCurrentIndex(mRocketChatAccount->autoTranslateLanguagesModel()->currentLanguage(mRoom->autoTranslateLanguage())); 0078 } 0079 0080 void AutoTranslateConfigureWidget::setRoom(Room *room) 0081 { 0082 mRoom = room; 0083 connect(mRoom, &Room::autoTranslateChanged, this, &AutoTranslateConfigureWidget::slotAutoTranslateChanged); 0084 connect(mRoom, &Room::autoTranslateLanguageChanged, this, &AutoTranslateConfigureWidget::slotAutoTranslateLanguageChanged); 0085 slotAutoTranslateChanged(); 0086 slotAutoTranslateLanguageChanged(); 0087 } 0088 0089 #include "moc_autotranslateconfigurewidget.cpp"