mirror of
https://github.com/jorenchik/mdemory.git
synced 2026-03-22 00:26:21 +00:00
all ui translated to Latvian
This commit is contained in:
@@ -294,7 +294,7 @@ void updateMdemInfo(std::string filename, bool isChanged) {
|
|||||||
std::tm* tm = std::localtime(¤tMdemBuffer->trainedAt);
|
std::tm* tm = std::localtime(¤tMdemBuffer->trainedAt);
|
||||||
char buffer[100];
|
char buffer[100];
|
||||||
std::strftime(buffer, sizeof(buffer), "%d.%m.%Y %H:%M", tm);
|
std::strftime(buffer, sizeof(buffer), "%d.%m.%Y %H:%M", tm);
|
||||||
ss << "Last practiced: " << std::string(buffer);
|
ss << "Pēdējā mācīšanās reize: " << std::string(buffer);
|
||||||
}
|
}
|
||||||
lastPracticeLabel->setText(QString::fromStdString(ss.str()));
|
lastPracticeLabel->setText(QString::fromStdString(ss.str()));
|
||||||
} else {
|
} else {
|
||||||
@@ -330,7 +330,7 @@ Mdem* makeMdem() {
|
|||||||
mdem->hFront.addWidget(&mdem->wFrontText);
|
mdem->hFront.addWidget(&mdem->wFrontText);
|
||||||
mdem->hFront.addStretch(1);
|
mdem->hFront.addStretch(1);
|
||||||
|
|
||||||
mdem->editButton.setText("Edit");
|
mdem->editButton.setText("Rediģēt");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
&mdem->editButton,
|
&mdem->editButton,
|
||||||
&QToolButton::clicked,
|
&QToolButton::clicked,
|
||||||
@@ -349,7 +349,7 @@ Mdem* makeMdem() {
|
|||||||
);
|
);
|
||||||
mdem->hFront.addWidget(&mdem->editButton);
|
mdem->hFront.addWidget(&mdem->editButton);
|
||||||
|
|
||||||
mdem->deleteButton.setText("Delete");
|
mdem->deleteButton.setText("Dzēst");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
&mdem->deleteButton,
|
&mdem->deleteButton,
|
||||||
&QToolButton::clicked,
|
&QToolButton::clicked,
|
||||||
@@ -375,7 +375,7 @@ Mdem* makeMdem() {
|
|||||||
);
|
);
|
||||||
mdem->hFront.addWidget(&mdem->deleteButton);
|
mdem->hFront.addWidget(&mdem->deleteButton);
|
||||||
|
|
||||||
mdem->toggleVisibility.setText("Show");
|
mdem->toggleVisibility.setText("Parādīt");
|
||||||
mdem->hFront.addWidget(&mdem->toggleVisibility);
|
mdem->hFront.addWidget(&mdem->toggleVisibility);
|
||||||
|
|
||||||
// Back
|
// Back
|
||||||
@@ -403,10 +403,10 @@ Mdem* makeMdem() {
|
|||||||
QObject::connect(&mdem->toggleVisibility, &QToolButton::clicked, [mdem]() {
|
QObject::connect(&mdem->toggleVisibility, &QToolButton::clicked, [mdem]() {
|
||||||
if (mdem->wBack.isVisible()) {
|
if (mdem->wBack.isVisible()) {
|
||||||
mdem->wBack.hide();
|
mdem->wBack.hide();
|
||||||
mdem->toggleVisibility.setText("Show");
|
mdem->toggleVisibility.setText("Parādīt");
|
||||||
} else {
|
} else {
|
||||||
mdem->wBack.show();
|
mdem->wBack.show();
|
||||||
mdem->toggleVisibility.setText("Hide");
|
mdem->toggleVisibility.setText("Slēpt");
|
||||||
}
|
}
|
||||||
showBacklabels(mdem);
|
showBacklabels(mdem);
|
||||||
});
|
});
|
||||||
@@ -464,14 +464,14 @@ void switchPage(int pageIdx) {
|
|||||||
|
|
||||||
int l = 0;
|
int l = 0;
|
||||||
char buffer[50];
|
char buffer[50];
|
||||||
snprintf(buffer, sizeof(buffer), "Page: %d", pageIdx + 1);
|
snprintf(buffer, sizeof(buffer), "Lappuse: %d", pageIdx + 1);
|
||||||
pagination->paginationLabel.setText(buffer);
|
pagination->paginationLabel.setText(buffer);
|
||||||
|
|
||||||
// Adjust mdem amount, hide widgets in mdems
|
// Adjust mdem amount, hide widgets in mdems
|
||||||
for (auto& mdem : mdems) {
|
for (auto& mdem : mdems) {
|
||||||
if (mdem->wBack.isVisible()) {
|
if (mdem->wBack.isVisible()) {
|
||||||
mdem->wBack.hide();
|
mdem->wBack.hide();
|
||||||
mdem->toggleVisibility.setText("Show");
|
mdem->toggleVisibility.setText("Parādīt");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,7 +598,7 @@ void reloadMdem(std::string path) {
|
|||||||
end = std::chrono::high_resolution_clock::now();
|
end = std::chrono::high_resolution_clock::now();
|
||||||
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
||||||
if (showTimes) {
|
if (showTimes) {
|
||||||
std::cout << showTime("I/O time") << std::endl;
|
std::cout << showTime("I/O laiks") << std::endl;
|
||||||
}
|
}
|
||||||
debug = settings->value(SETTING_DEBUG).toBool();
|
debug = settings->value(SETTING_DEBUG).toBool();
|
||||||
auto res = transpile(content);
|
auto res = transpile(content);
|
||||||
@@ -613,7 +613,7 @@ void reloadMdem(std::string path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (settings->value(SETTING_DEBUG).toBool()) {
|
if (settings->value(SETTING_DEBUG).toBool()) {
|
||||||
std::cout << std::format("Last trained at: {}", currentMdemBuffer->trainedAt)
|
std::cout << std::format("Pēdējās mācīšanās reize: {}", currentMdemBuffer->trainedAt)
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -621,7 +621,7 @@ void reloadMdem(std::string path) {
|
|||||||
errorView->box.hide();
|
errorView->box.hide();
|
||||||
} else {
|
} else {
|
||||||
currentMdemBuffer->trainedAt = 0;
|
currentMdemBuffer->trainedAt = 0;
|
||||||
std::cout << std::format("Compilation error: {}", res.error) << std::endl;
|
std::cout << std::format("Transpilācijas kļūda: {}", res.error) << std::endl;
|
||||||
|
|
||||||
for (auto question: res.value.questions) {
|
for (auto question: res.value.questions) {
|
||||||
delete question;
|
delete question;
|
||||||
@@ -632,7 +632,7 @@ void reloadMdem(std::string path) {
|
|||||||
errorView->label.setText(
|
errorView->label.setText(
|
||||||
QString::fromStdString(
|
QString::fromStdString(
|
||||||
std::format(
|
std::format(
|
||||||
"Error while transpiling {}: {} ({}:{})",
|
"Kļūda, transpilējot {}: {} ({}:{})",
|
||||||
filename,
|
filename,
|
||||||
res.error,
|
res.error,
|
||||||
res.row,
|
res.row,
|
||||||
@@ -649,12 +649,12 @@ void reloadMdem(std::string path) {
|
|||||||
switchPage(0);
|
switchPage(0);
|
||||||
updateMdemInfo(filename, false);
|
updateMdemInfo(filename, false);
|
||||||
} else {
|
} else {
|
||||||
std::cout << std::format("Could not open the file: {}", currentPath.toStdString()) << std::endl;
|
std::cout << std::format("Nevar atvert failu: {}", currentPath.toStdString()) << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto mdem: mdems) {
|
for (auto mdem: mdems) {
|
||||||
mdem->wBack.hide();
|
mdem->wBack.hide();
|
||||||
mdem->toggleVisibility.setText("Show");
|
mdem->toggleVisibility.setText("Parādīt");
|
||||||
}
|
}
|
||||||
hideQuestionElements();
|
hideQuestionElements();
|
||||||
}
|
}
|
||||||
@@ -669,7 +669,7 @@ void pickDirectory(QString directory) {
|
|||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Error",
|
"Error",
|
||||||
"The directory that is specified as the default memorybase does not exist."
|
"Direktorijs, kas ir norādīts kā noklusētais, neeksistē."
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -706,7 +706,7 @@ void setupEditorSave() {
|
|||||||
}
|
}
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Editing error",
|
"Rediģēšanas kļūda",
|
||||||
QString::fromStdString(res.error)
|
QString::fromStdString(res.error)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -714,8 +714,8 @@ void setupEditorSave() {
|
|||||||
if (res.value.questions.size() <= 0) {
|
if (res.value.questions.size() <= 0) {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Editing error",
|
"Rediģēšanas kļūda",
|
||||||
"There are no questions in your input."
|
"Jūsu ievadē nav jautājumu."
|
||||||
);
|
);
|
||||||
} else if (res.value.questions.size() == 1) {
|
} else if (res.value.questions.size() == 1) {
|
||||||
auto oldQuestion = editMdem->question;
|
auto oldQuestion = editMdem->question;
|
||||||
@@ -735,16 +735,16 @@ void setupEditorSave() {
|
|||||||
} else {
|
} else {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Editing error",
|
"Rediģēšanas kļūda",
|
||||||
"There are more than question in your input. Please enter one."
|
"Jūsu ievadē ir vairāki jautājumi. Lūdzu ievadiet vienu!"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (res.value.questions.size() <= 0) {
|
if (res.value.questions.size() <= 0) {
|
||||||
QMessageBox::information(
|
QMessageBox::information(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Editing error",
|
"Rediģēšanas kļūda",
|
||||||
"There are no questions in your input."
|
"Jūsu ievadē nav jautājumu."
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
currentMdemBuffer->questions.insert(
|
currentMdemBuffer->questions.insert(
|
||||||
@@ -772,7 +772,7 @@ void saveMdem() {
|
|||||||
|
|
||||||
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
showTimes = settings->value(SETTING_SHOW_TIMES).toBool();
|
||||||
if (showTimes) {
|
if (showTimes) {
|
||||||
std::cout << showTime("Saving time") << std::endl;
|
std::cout << showTime("Saglabāšanas laiks") << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -804,8 +804,8 @@ QMainWindow *initMdemListWindow() {
|
|||||||
QMenuBar *menuBar = new QMenuBar;
|
QMenuBar *menuBar = new QMenuBar;
|
||||||
QFileDialog *fileDialog = new QFileDialog;
|
QFileDialog *fileDialog = new QFileDialog;
|
||||||
|
|
||||||
QMenu *menu = new QMenu("File");
|
QMenu *menu = new QMenu("Fails");
|
||||||
actionOpen = menu->addAction("Open memorybase");
|
actionOpen = menu->addAction("Atvert memorybase");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
actionOpen,
|
actionOpen,
|
||||||
&QAction::triggered,
|
&QAction::triggered,
|
||||||
@@ -822,7 +822,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
openSettings = menu->addAction("Settings");
|
openSettings = menu->addAction("Iestatījumi");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
openSettings,
|
openSettings,
|
||||||
&QAction::triggered,
|
&QAction::triggered,
|
||||||
@@ -830,7 +830,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
settingsWindow->show();
|
settingsWindow->show();
|
||||||
});
|
});
|
||||||
|
|
||||||
actionHelp = menu->addAction("Help");
|
actionHelp = menu->addAction("Palīdzība");
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
actionHelp,
|
actionHelp,
|
||||||
&QAction::triggered,
|
&QAction::triggered,
|
||||||
@@ -846,7 +846,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
{ // Editor.
|
{ // Editor.
|
||||||
editorWindow = new QMainWindow;
|
editorWindow = new QMainWindow;
|
||||||
|
|
||||||
editorWindow->setWindowTitle("QScintilla Simple Editor");
|
editorWindow->setWindowTitle("Jautājumu redaktors");
|
||||||
editorWindow->resize(800, 600);
|
editorWindow->resize(800, 600);
|
||||||
QWidget *wEditor = new QWidget;
|
QWidget *wEditor = new QWidget;
|
||||||
QVBoxLayout *vlEditor = new QVBoxLayout;
|
QVBoxLayout *vlEditor = new QVBoxLayout;
|
||||||
@@ -864,7 +864,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
auto btnSaveEditor = new QPushButton;
|
auto btnSaveEditor = new QPushButton;
|
||||||
|
|
||||||
editorButtons->setLayout(buttonLayout);
|
editorButtons->setLayout(buttonLayout);
|
||||||
btnSaveEditor->setText(QString::fromStdString("Save"));
|
btnSaveEditor->setText(QString::fromStdString("Saglabāt"));
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
btnSaveEditor,
|
btnSaveEditor,
|
||||||
&QToolButton::clicked,
|
&QToolButton::clicked,
|
||||||
@@ -957,14 +957,14 @@ QMainWindow *initMdemListWindow() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Button content.
|
// Button content.
|
||||||
toolbar->btnAdd.setText("Add");
|
toolbar->btnAdd.setText("Pievienot");
|
||||||
toolbar->btnSave.setText("Save");
|
toolbar->btnSave.setText("Saglabāt");
|
||||||
toolbar->btnLoad.setText("Load");
|
toolbar->btnLoad.setText("Ielādēt");
|
||||||
toolbar->btnPractice.setText("Practice");
|
toolbar->btnPractice.setText("Mācīties");
|
||||||
|
|
||||||
toolbar->cbAlgorithm.addItem("Spaced", SPACED);
|
toolbar->cbAlgorithm.addItem("Intervālu", SPACED);
|
||||||
toolbar->cbAlgorithm.addItem("Random", RANDOM);
|
toolbar->cbAlgorithm.addItem("Nejaušais", RANDOM);
|
||||||
toolbar->cbAlgorithm.addItem("Primary", PRIMARY);
|
toolbar->cbAlgorithm.addItem("Primārais", PRIMARY);
|
||||||
|
|
||||||
// Add buttons.
|
// Add buttons.
|
||||||
hlButtonsTop->addWidget(&toolbar->btnAdd);
|
hlButtonsTop->addWidget(&toolbar->btnAdd);
|
||||||
@@ -1014,7 +1014,7 @@ QMainWindow *initMdemListWindow() {
|
|||||||
for (int col = 1; col < model->columnCount(); ++col) {
|
for (int col = 1; col < model->columnCount(); ++col) {
|
||||||
mdemList->hideColumn(col);
|
mdemList->hideColumn(col);
|
||||||
}
|
}
|
||||||
model->setHeaderData(0, Qt::Horizontal, QObject::tr("Custom Name"));
|
/*model->setHeaderData(0, Qt::Horizontal, QObject::tr("Custom name"));*/
|
||||||
leftLayout->addWidget(mdemList);
|
leftLayout->addWidget(mdemList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,6 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "mdemList.h"
|
#include "mdemList.h"
|
||||||
#include "api.h"
|
|
||||||
#include "qscilexer.h"
|
#include "qscilexer.h"
|
||||||
|
|
||||||
QSettings *settings;
|
QSettings *settings;
|
||||||
@@ -71,14 +70,14 @@ QWidget *initSettings () {
|
|||||||
settings = new QSettings(settingsFile, QSettings::IniFormat);
|
settings = new QSettings(settingsFile, QSettings::IniFormat);
|
||||||
auto* settingsWindow = new QWidget;
|
auto* settingsWindow = new QWidget;
|
||||||
|
|
||||||
settingsWindow->setWindowTitle("Settings");
|
settingsWindow->setWindowTitle("Iestatījumi");
|
||||||
|
|
||||||
auto top = new QWidget;
|
auto top = new QWidget;
|
||||||
auto hlTop = new QVBoxLayout;
|
auto hlTop = new QVBoxLayout;
|
||||||
top->setLayout(hlTop);
|
top->setLayout(hlTop);
|
||||||
|
|
||||||
auto settingsLabel = new QLabel;
|
auto settingsLabel = new QLabel;
|
||||||
settingsLabel->setText("Settings");
|
settingsLabel->setText("Iestatījumi");
|
||||||
settingsLabel->setStyleSheet(
|
settingsLabel->setStyleSheet(
|
||||||
"font-size: 20px;"
|
"font-size: 20px;"
|
||||||
);
|
);
|
||||||
@@ -87,16 +86,16 @@ QWidget *initSettings () {
|
|||||||
auto formLayout = new QFormLayout;
|
auto formLayout = new QFormLayout;
|
||||||
|
|
||||||
auto* mbaseInput = new QLineEdit;
|
auto* mbaseInput = new QLineEdit;
|
||||||
auto* browseButton = new QPushButton("Browse");
|
auto* browseButton = new QPushButton("Izvēlēties");
|
||||||
auto* pathLayout = new QHBoxLayout;
|
auto* pathLayout = new QHBoxLayout;
|
||||||
pathLayout->addWidget(mbaseInput);
|
pathLayout->addWidget(mbaseInput);
|
||||||
pathLayout->addWidget(browseButton);
|
pathLayout->addWidget(browseButton);
|
||||||
formLayout->addRow("Default memorybase:", pathLayout);
|
formLayout->addRow("Noklusējuma memorybase:", pathLayout);
|
||||||
|
|
||||||
QObject::connect(browseButton, &QPushButton::clicked, [mbaseInput]() {
|
QObject::connect(browseButton, &QPushButton::clicked, [mbaseInput]() {
|
||||||
QString dir = QFileDialog::getExistingDirectory(
|
QString dir = QFileDialog::getExistingDirectory(
|
||||||
nullptr,
|
nullptr,
|
||||||
"Select Config Directory",
|
"Izvēlēties noklusēto direktoriju",
|
||||||
mbaseInput->text()
|
mbaseInput->text()
|
||||||
);
|
);
|
||||||
if (!dir.isEmpty()) {
|
if (!dir.isEmpty()) {
|
||||||
@@ -110,37 +109,37 @@ QWidget *initSettings () {
|
|||||||
|
|
||||||
auto characterWrap = new QSpinBox;
|
auto characterWrap = new QSpinBox;
|
||||||
characterWrap->setRange(30, 150);
|
characterWrap->setRange(30, 150);
|
||||||
formLayout->addRow("Character wrap in code gen [30-150]:", characterWrap);
|
formLayout->addRow("Rindas pārnešanas platums jautājumu teksta ģenerēšanā [30-150]:", characterWrap);
|
||||||
|
|
||||||
auto* timezone = new QSpinBox;
|
auto* timezone = new QSpinBox;
|
||||||
timezone->setRange(-12, 12);
|
timezone->setRange(-12, 12);
|
||||||
formLayout->addRow("Timezone as number (e.g. +2 as 2):", timezone);
|
formLayout->addRow("Laika zona (e.g. +2 as 2):", timezone);
|
||||||
|
|
||||||
auto* notRemembered = new QDoubleSpinBox;
|
auto* notRemembered = new QDoubleSpinBox;
|
||||||
notRemembered->setRange(0, 100);
|
notRemembered->setRange(0, 100);
|
||||||
formLayout->addRow("Not remembered:", notRemembered);
|
formLayout->addRow("Neatcerējos:", notRemembered);
|
||||||
|
|
||||||
auto* hard = new QDoubleSpinBox;
|
auto* hard = new QDoubleSpinBox;
|
||||||
hard->setRange(0, 100);
|
hard->setRange(0, 100);
|
||||||
formLayout->addRow("Hard:", hard);
|
formLayout->addRow("Grūti:", hard);
|
||||||
|
|
||||||
auto* medium = new QDoubleSpinBox;
|
auto* medium = new QDoubleSpinBox;
|
||||||
medium->setRange(0, 100);
|
medium->setRange(0, 100);
|
||||||
formLayout->addRow("Medium:", medium);
|
formLayout->addRow("Vidēji:", medium);
|
||||||
|
|
||||||
auto* easy = new QDoubleSpinBox;
|
auto* easy = new QDoubleSpinBox;
|
||||||
easy->setRange(0, 100);
|
easy->setRange(0, 100);
|
||||||
formLayout->addRow("Easy:", easy);
|
formLayout->addRow("Viegli:", easy);
|
||||||
|
|
||||||
auto* debug = new QCheckBox;
|
auto* debug = new QCheckBox;
|
||||||
formLayout->addRow("Debug:", debug);
|
formLayout->addRow("Atkļūdošana:", debug);
|
||||||
|
|
||||||
auto* showTimes = new QCheckBox;
|
auto* showTimes = new QCheckBox;
|
||||||
formLayout->addRow("Show times in the console:", showTimes);
|
formLayout->addRow("Rādīt laikus komandrindā:", showTimes);
|
||||||
|
|
||||||
auto btnLayout = new QHBoxLayout;
|
auto btnLayout = new QHBoxLayout;
|
||||||
auto btnSaveSettings = new QPushButton("Save");
|
auto btnSaveSettings = new QPushButton("Saglabāt");
|
||||||
auto btnLoad = new QPushButton("Load");
|
auto btnLoad = new QPushButton("Ielādēt");
|
||||||
auto mainLayout = new QVBoxLayout;
|
auto mainLayout = new QVBoxLayout;
|
||||||
btnLayout->addWidget(btnSaveSettings);
|
btnLayout->addWidget(btnSaveSettings);
|
||||||
btnLayout->addWidget(btnLoad);
|
btnLayout->addWidget(btnLoad);
|
||||||
@@ -172,9 +171,9 @@ QWidget *initSettings () {
|
|||||||
|
|
||||||
auto updateSettingsLabel = [settingsLabel](bool isChanged) {
|
auto updateSettingsLabel = [settingsLabel](bool isChanged) {
|
||||||
if (isChanged) {
|
if (isChanged) {
|
||||||
settingsLabel->setText("Settings *");
|
settingsLabel->setText("Iestatījumi *");
|
||||||
} else {
|
} else {
|
||||||
settingsLabel->setText("Settings");
|
settingsLabel->setText("Iestatījumi");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -669,7 +669,7 @@ QMainWindow *initTrainWindow() {
|
|||||||
|
|
||||||
auto topLeftSpacer = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
|
auto topLeftSpacer = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum);
|
||||||
auto btnSaveProgress = new QToolButton();
|
auto btnSaveProgress = new QToolButton();
|
||||||
btnSaveProgress->setText("Save progress");
|
btnSaveProgress->setText("Saglabāt progresu");
|
||||||
|
|
||||||
hTopButtons->addItem(topLeftSpacer);
|
hTopButtons->addItem(topLeftSpacer);
|
||||||
hTopButtons->addWidget(btnSaveProgress);
|
hTopButtons->addWidget(btnSaveProgress);
|
||||||
@@ -696,7 +696,6 @@ QMainWindow *initTrainWindow() {
|
|||||||
|
|
||||||
{ // Make question text.
|
{ // Make question text.
|
||||||
lQuestionText = new QLabel();
|
lQuestionText = new QLabel();
|
||||||
lQuestionText->setText("What is the capital of Latvia?");
|
|
||||||
lQuestionText->setWordWrap(true);
|
lQuestionText->setWordWrap(true);
|
||||||
lQuestionText->setStyleSheet(QString(
|
lQuestionText->setStyleSheet(QString(
|
||||||
"QLabel {"
|
"QLabel {"
|
||||||
@@ -720,7 +719,6 @@ QMainWindow *initTrainWindow() {
|
|||||||
|
|
||||||
{ // Make answer text.
|
{ // Make answer text.
|
||||||
answerText = new QLabel();
|
answerText = new QLabel();
|
||||||
answerText->setText("- Riga\n- Second line");
|
|
||||||
answerText->setWordWrap(true);
|
answerText->setWordWrap(true);
|
||||||
answerText->setStyleSheet(QString(
|
answerText->setStyleSheet(QString(
|
||||||
"QLabel {"
|
"QLabel {"
|
||||||
@@ -799,25 +797,25 @@ QMainWindow *initTrainWindow() {
|
|||||||
setCooldownHours(48);
|
setCooldownHours(48);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnNotRemembered->setText("Not remembered (Z)");
|
btnNotRemembered->setText("Neatcerējos (Z)");
|
||||||
addShortcut("Z", []() {
|
addShortcut("Z", []() {
|
||||||
if (btnNotRemembered->isVisible()) {
|
if (btnNotRemembered->isVisible()) {
|
||||||
btnNotRemembered->click();
|
btnNotRemembered->click();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnHard->setText("Hard (X)");
|
btnHard->setText("Grūti (X)");
|
||||||
addShortcut("X", []() {
|
addShortcut("X", []() {
|
||||||
if (btnHard->isVisible()) {
|
if (btnHard->isVisible()) {
|
||||||
btnHard->click();
|
btnHard->click();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnMedium->setText("Medium (C)");
|
btnMedium->setText("Vidēji (C)");
|
||||||
addShortcut("C", []() {
|
addShortcut("C", []() {
|
||||||
if (btnMedium->isVisible()) {
|
if (btnMedium->isVisible()) {
|
||||||
btnMedium->click();
|
btnMedium->click();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnEasy->setText("Easy (V)");
|
btnEasy->setText("Viegli (V)");
|
||||||
addShortcut("V", []() {
|
addShortcut("V", []() {
|
||||||
if (btnEasy->isVisible()) {
|
if (btnEasy->isVisible()) {
|
||||||
btnEasy->click();
|
btnEasy->click();
|
||||||
@@ -846,10 +844,10 @@ QMainWindow *initTrainWindow() {
|
|||||||
vButtonBox->addWidget(actionButtons);
|
vButtonBox->addWidget(actionButtons);
|
||||||
actionButtons->setLayout(hButtons);
|
actionButtons->setLayout(hButtons);
|
||||||
|
|
||||||
btnTriggerAnswer->setText("Show answer");
|
btnTriggerAnswer->setText("Parādīt atbildi");
|
||||||
btnTriggerAnswer->hide();
|
btnTriggerAnswer->hide();
|
||||||
|
|
||||||
btnNext->setText("Next");
|
btnNext->setText("Nākamais");
|
||||||
QObject::connect(btnNext, &QToolButton::clicked, []() {
|
QObject::connect(btnNext, &QToolButton::clicked, []() {
|
||||||
setupNextQuestion();
|
setupNextQuestion();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ Result<std::vector<Token>> tokenizeMdem(const std::string& content) {
|
|||||||
if (!identifierStarted) {
|
if (!identifierStarted) {
|
||||||
return {
|
return {
|
||||||
tokens,
|
tokens,
|
||||||
"Cannot end identifier if it is not started",
|
"Nevar beigt identifikatoru, ja tas nav iesākts",
|
||||||
tokens[i].row,
|
tokens[i].row,
|
||||||
tokens[i].column
|
tokens[i].column
|
||||||
};
|
};
|
||||||
@@ -245,12 +245,12 @@ Result<std::vector<Token>> tokenizeMdem(const std::string& content) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
std::cout << "SECTION: Lexer output:\n";
|
std::cout << "SECTION: LEXER:\n";
|
||||||
std::cout << std::format("Token count: {}", tokens.size()) << std::endl;
|
std::cout << std::format("Tekstvienību daudzums: {}", tokens.size()) << std::endl;
|
||||||
for (const Token& token : tokens) {
|
for (const Token& token : tokens) {
|
||||||
std::cout << token.toString();
|
std::cout << token.toString();
|
||||||
}
|
}
|
||||||
std::cout << "SECTION END: Lexer output\n";
|
std::cout << "SECTION END: LEXER\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
return {tokens, ""};
|
return {tokens, ""};
|
||||||
@@ -258,18 +258,18 @@ Result<std::vector<Token>> tokenizeMdem(const std::string& content) {
|
|||||||
|
|
||||||
std::string Token::toString(const TokenType* ttype) {
|
std::string Token::toString(const TokenType* ttype) {
|
||||||
switch (*ttype) {
|
switch (*ttype) {
|
||||||
case TokenType::TextFragment: return "text fragment";
|
case TokenType::TextFragment: return "teksta fragments";
|
||||||
case TokenType::QuestionEnd: return "question end symbol";
|
case TokenType::QuestionEnd: return "jautājuma beigas";
|
||||||
case TokenType::MatchGroupEnd: return "match group end";
|
case TokenType::MatchGroupEnd: return "grupas beigas";
|
||||||
case TokenType::ElementDashStart: return "dash element start";
|
case TokenType::ElementDashStart: return "svītras elementa sākums";
|
||||||
case TokenType::ElementOrderModifier: return "order element modifier";
|
case TokenType::ElementOrderModifier: return "secības elementa sākums";
|
||||||
case TokenType::ElementPlusStart: return "plus element start";
|
case TokenType::ElementPlusStart: return "plusa elementa sākums";
|
||||||
case TokenType::Cooldown: return "cooldown";
|
case TokenType::Cooldown: return "pārtraukums";
|
||||||
case TokenType::CooldownStart: return "start of cooldown";
|
case TokenType::CooldownStart: return "pātraukuma sākums";
|
||||||
case TokenType::CooldownEnd: return "end of cooldown";
|
case TokenType::CooldownEnd: return "pātraukuma beigas";
|
||||||
case TokenType::StartOfFile: return "start of the file";
|
case TokenType::StartOfFile: return "faila sākums";
|
||||||
case TokenType::EndOfFile: return "end of file";
|
case TokenType::EndOfFile: return "faila beigas";
|
||||||
default: return "unrecognized token";
|
default: return "neatpazīta tekstvienība";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ Result<NoneType> ValidateGrammar(const std::vector<Token>& tokens) {
|
|||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
.error=std::format(
|
.error=std::format(
|
||||||
"Invalid token sequence: {} cannot precede {}",
|
"Nekorekta tekstvienību secība: {} nevar būt pirms {}",
|
||||||
std::string(capitalize(Token::toString(&token.tokenType))),
|
std::string(capitalize(Token::toString(&token.tokenType))),
|
||||||
std::string(capitalize(Token::toString(&nextToken.tokenType)))
|
std::string(capitalize(Token::toString(&nextToken.tokenType)))
|
||||||
),
|
),
|
||||||
@@ -133,7 +133,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
std::cout << "SECTION: Parser output:\n";
|
std::cout << "SECTION: PARSER:\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
auto isInBounds = [tokens](size_t i) {
|
auto isInBounds = [tokens](size_t i) {
|
||||||
@@ -147,7 +147,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
std::istringstream ss(datetime);
|
std::istringstream ss(datetime);
|
||||||
ss >> std::get_time(&tm, format.c_str());
|
ss >> std::get_time(&tm, format.c_str());
|
||||||
if (ss.fail()) {
|
if (ss.fail()) {
|
||||||
throw std::runtime_error("Failed to parse datetime string");
|
throw std::runtime_error("Neizdevās nolasīt datuma un laiku");
|
||||||
}
|
}
|
||||||
std::time_t time = timegm(&tm);
|
std::time_t time = timegm(&tm);
|
||||||
return time;
|
return time;
|
||||||
@@ -156,7 +156,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
time = parseToUTCTime(tokens[i].content.c_str(), "%d.%m.%Y %H:%M");
|
time = parseToUTCTime(tokens[i].content.c_str(), "%d.%m.%Y %H:%M");
|
||||||
} catch (std::exception e) {
|
} catch (std::exception e) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
std::format("cannot parse the time - {}", e.what()),
|
std::format("Parsēšanas kļūda - {}", e.what()),
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -175,7 +175,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
// Start element parsing & add to the offset.
|
// Start element parsing & add to the offset.
|
||||||
if (isInBounds(i + 1) && tokens[i + 1].tokenType == TokenType::ElementOrderModifier) {
|
if (isInBounds(i + 1) && tokens[i + 1].tokenType == TokenType::ElementOrderModifier) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"cannot have order modifier ('^') in the question definition",
|
"Nevar izmantot secības modifikatoru ('^') jautājuma sākumā",
|
||||||
tokens[i + 1]
|
tokens[i + 1]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -184,7 +184,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
cooldown = std::stod(tokens[i + 2].content);
|
cooldown = std::stod(tokens[i + 2].content);
|
||||||
} catch (std::exception e) {
|
} catch (std::exception e) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"error parsing cooldown",
|
"kļūda nolasot pārtraukumu",
|
||||||
tokens[i + 1]
|
tokens[i + 1]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -214,7 +214,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
if (offset == 5 && tokens[i + 5].tokenType != TokenType::QuestionEnd) {
|
if (offset == 5 && tokens[i + 5].tokenType != TokenType::QuestionEnd) {
|
||||||
// Cannot place the identifier on the ordinary element.
|
// Cannot place the identifier on the ordinary element.
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"Invalid identifier placement",
|
"Nepareiza idenfikatora izvietošana",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -235,19 +235,19 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
isOrderQuestion = true;
|
isOrderQuestion = true;
|
||||||
if (!isDash) {
|
if (!isDash) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"order questions can only be used with dashes ('-')",
|
"secības jautājumus var izmantot tikai ar svītrām ('-')",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (isGroupQuestion) {
|
if (isGroupQuestion) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"question with groups cannot be ordered ('-^' and ':')",
|
"jautājumos ar grupām nevar būt secības elementu ('-^' and ':')",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (isInBounds(i + 3) && tokens[i + 3].tokenType == TokenType::MatchGroupEnd) {
|
if (isInBounds(i + 3) && tokens[i + 3].tokenType == TokenType::MatchGroupEnd) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"cannot have groups in order question('-^' and ':')",
|
"secības jautājumā nevar būt grupas ('-^' and ':')",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -257,7 +257,7 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
isGroupQuestion = true;
|
isGroupQuestion = true;
|
||||||
if (!isDash) {
|
if (!isDash) {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"group questions can only be used with dashes ('-')",
|
"grupas jautājumus var definēt tikai ar svītru elementiem ('-')",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -338,19 +338,19 @@ Result<ParseInfo> parseQuestions(const std::vector<Token>& tokens) {
|
|||||||
}
|
}
|
||||||
} else if (tokens[i].tokenType == TokenType::EndOfFile) {
|
} else if (tokens[i].tokenType == TokenType::EndOfFile) {
|
||||||
if (debug) {
|
if (debug) {
|
||||||
std::cout << "File terminated: EndOfFile\n";
|
std::cout << "Fails beidzās: EndOfFile\n";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"Unexpected token encountered",
|
"Negaidīta tekstvienība",
|
||||||
tokens[i]
|
tokens[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
std::cout << "SECTION END: Parser output:\n";
|
std::cout << "SECTION END: PARSER:\n";
|
||||||
}
|
}
|
||||||
return makeResult(
|
return makeResult(
|
||||||
"",
|
"",
|
||||||
@@ -372,7 +372,7 @@ std::string MultiElementQuestion::toString() const {
|
|||||||
ss << opener << " " << choice.answer << "; ";
|
ss << opener << " " << choice.answer << "; ";
|
||||||
}
|
}
|
||||||
return std::format(
|
return std::format(
|
||||||
"<Multiple element>\nsection:{}\nid:{}\n{}\n{}",
|
"<Vairāku elementu jautājums>\nsekcija:{}\npārtraukums:{}\n{}\n{}",
|
||||||
section,
|
section,
|
||||||
cooldown,
|
cooldown,
|
||||||
questionText,
|
questionText,
|
||||||
@@ -390,7 +390,7 @@ std::string GroupQuestion::toString() const {
|
|||||||
ss << "; ";
|
ss << "; ";
|
||||||
}
|
}
|
||||||
return std::format(
|
return std::format(
|
||||||
"<GroupQuestion>\nsection:{}\nid:{}\n{}\n{}",
|
"<Grupas jautājums>\nsekcija:{}\npārtraukums:{}\n{}\n{}",
|
||||||
section,
|
section,
|
||||||
cooldown,
|
cooldown,
|
||||||
questionText,
|
questionText,
|
||||||
|
|||||||
Reference in New Issue
Block a user