-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
1,006 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#include "tempapi.h" | ||
|
||
TempAPI::TempAPI(QObject *parent) | ||
: QObject(parent) { | ||
} | ||
|
||
TempAPI::~TempAPI() { | ||
} | ||
|
||
QString TempAPI::translate(const QString &input, | ||
const QString &sourceLanguage, | ||
const QString &targetLanguage) const { | ||
if (input.isEmpty()) { | ||
return QString(); | ||
} | ||
|
||
QSettings settings; | ||
QString key = settings.value("temp/key").toString(); | ||
QString format = settings.value("temp/format").toString(); | ||
|
||
QString translation = "Some translation."; | ||
|
||
return translation; | ||
} | ||
|
||
QStringList TempAPI::getSupportedLanguages() const { | ||
QSettings settings; | ||
QString key = settings.value("temp/key").toString(); | ||
|
||
QStringList languagesList; | ||
|
||
languagesList.append("en"); | ||
languagesList.append("fr"); | ||
languagesList.append("de"); | ||
languagesList.append("lt"); | ||
|
||
return languagesList; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#ifndef INSTANT_TRANSLATOR_TEMPAPI_H | ||
#define INSTANT_TRANSLATOR_TEMPAPI_H | ||
|
||
#include <QObject> | ||
#include <QSettings> | ||
#include "api.h" | ||
|
||
/** | ||
* Temporary API implementation class. | ||
*/ | ||
class TempAPI : public QObject, public API { | ||
Q_OBJECT | ||
Q_INTERFACES(API) | ||
public: | ||
/** | ||
* Constructs an object with parent object parent. | ||
* @param parent Parent of an object may be viewed as the object's owner. | ||
*/ | ||
explicit TempAPI(QObject *parent = nullptr); | ||
|
||
/** | ||
* Destructor. | ||
*/ | ||
~TempAPI() override; | ||
|
||
/** | ||
* Translate given input. | ||
* @param input Input string. | ||
* @param sourceLanguage Source language code. | ||
* @param targetLanguage Target language code. | ||
* @return Translated string. | ||
*/ | ||
QString translate(const QString &input, | ||
const QString &sourceLanguage, | ||
const QString &targetLanguage) const override; | ||
|
||
/** | ||
* Get supported languages. | ||
* @return Supported languages string list. | ||
*/ | ||
QStringList getSupportedLanguages() const override; | ||
}; | ||
|
||
#endif // INSTANT_TRANSLATOR_TEMPAPI_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
#include "settingsdialog.h" | ||
#include "ui_settingsdialog.h" | ||
|
||
SettingsDialog::SettingsDialog(QWidget *parent, AppSettings *appSettings) : | ||
QDialog(parent), | ||
ui(new Ui::SettingsDialog), | ||
appSettings(appSettings) { | ||
ui->setupUi(this); | ||
|
||
loadSettings(); | ||
} | ||
|
||
SettingsDialog::~SettingsDialog() { | ||
delete ui; | ||
} | ||
|
||
void SettingsDialog::setAppSettings(AppSettings *appSettings) { | ||
this->appSettings = appSettings; | ||
loadSettings(); | ||
} | ||
|
||
void SettingsDialog::on_apisListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) { | ||
int currentIndex = apiSettingsListWidgetItemList.indexOf(current); | ||
|
||
if (currentIndex >= 0) { | ||
APISettings *apiSettings = appSettings->getApiSettingsList().at(currentIndex); | ||
ui->apiKeyLineEdit->setText(apiSettings->getApiKey()); | ||
ui->defaultSourceLanguageLineEdit->setText(apiSettings->getDefaultSourceLanguage()); | ||
ui->defaultTargetLanguageLineEdit->setText(apiSettings->getDefaultTargetLanguage()); | ||
} | ||
} | ||
|
||
void SettingsDialog::on_settingsButtonBox_accepted() { | ||
saveSettings(); | ||
} | ||
|
||
void SettingsDialog::on_settingsButtonBox_clicked(QAbstractButton *button) { | ||
if ((QPushButton *) button == ui->settingsButtonBox->button(QDialogButtonBox::Apply)) { | ||
saveSettings(); | ||
} | ||
} | ||
|
||
void SettingsDialog::saveSettings() { | ||
int currentIndex = apiSettingsListWidgetItemList.indexOf(ui->apisListWidget->currentItem()); | ||
|
||
if (currentIndex >= 0) { | ||
APISettings *apiSettings = appSettings->getApiSettingsList().at(currentIndex); | ||
apiSettings->setApiKey(ui->apiKeyLineEdit->text()); | ||
apiSettings->setDefaultSourceLanguage(ui->defaultSourceLanguageLineEdit->text()); | ||
apiSettings->setDefaultTargetLanguage(ui->defaultTargetLanguageLineEdit->text()); | ||
} | ||
|
||
int defaultApiIndex = ui->defaultApiComboBox->currentIndex(); | ||
QString defaultApiName = appSettings->getApiSettingsList().at(defaultApiIndex)->getName(); | ||
appSettings->setDefaultApi(defaultApiName); | ||
|
||
appSettings->save(); | ||
|
||
} | ||
|
||
void SettingsDialog::loadSettings() { | ||
for (int i = 0; i < appSettings->getApiSettingsList().count(); ++i) { | ||
APISettings *apiSettings = appSettings->getApiSettingsList().at(i); | ||
|
||
QListWidgetItem *listWidgetItem = new QListWidgetItem(apiSettings->getFullName()); | ||
apiSettingsListWidgetItemList.append(listWidgetItem); | ||
ui->apisListWidget->addItem(listWidgetItem); | ||
|
||
ui->defaultApiComboBox->addItem(apiSettings->getFullName()); | ||
QSettings settings; | ||
QString defaultApiName = settings.value("default_api").toString(); | ||
if (apiSettings->getName() == defaultApiName) { | ||
ui->defaultApiComboBox->setCurrentIndex(i); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
#ifndef INSTANT_TRANSLATOR_SETTINGSDIALOG_H | ||
#define INSTANT_TRANSLATOR_SETTINGSDIALOG_H | ||
|
||
#include <QDialog> | ||
#include <QListWidgetItem> | ||
#include <QAbstractButton> | ||
#include <QSettings> | ||
#include "utils/apisettings.h" | ||
#include "utils/appsettings.h" | ||
|
||
namespace Ui { | ||
class SettingsDialog; | ||
} | ||
|
||
/** | ||
* Settings dialog class. | ||
*/ | ||
class SettingsDialog : public QDialog { | ||
Q_OBJECT | ||
|
||
public: | ||
/** | ||
* Constructs an object with parent object parent. | ||
* @param parent Parent of an object may be viewed as the object's owner. | ||
* @param appSettings App settings. | ||
*/ | ||
SettingsDialog(QWidget *parent, AppSettings *appSettings); | ||
|
||
/** | ||
* Destructor. | ||
*/ | ||
~SettingsDialog(); | ||
|
||
/** | ||
* Set App settings. | ||
* @param appSettings App settings. | ||
*/ | ||
void setAppSettings(AppSettings *appSettings); | ||
|
||
private slots: | ||
|
||
/** | ||
* On apisListWidget is current item changed. | ||
* @param current Current list item. | ||
* @param previous Previous list item. | ||
*/ | ||
void on_apisListWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous); | ||
|
||
/** | ||
* On settingsButtonBox is accepted. | ||
*/ | ||
void on_settingsButtonBox_accepted(); | ||
|
||
/** | ||
* On settingsButtonBox is clicked; | ||
* @param button Button. | ||
*/ | ||
void on_settingsButtonBox_clicked(QAbstractButton *button); | ||
|
||
private: | ||
/** | ||
* Save settings data. | ||
*/ | ||
void saveSettings(); | ||
|
||
/** | ||
* Load appSettings. | ||
*/ | ||
void loadSettings(); | ||
|
||
Ui::SettingsDialog *ui; | ||
AppSettings *appSettings; | ||
QList<QListWidgetItem *> apiSettingsListWidgetItemList; | ||
}; | ||
|
||
#endif // INSTANT_TRANSLATOR_SETTINGSDIALOG_H |
Oops, something went wrong.