mirror of
https://github.com/jorenchik/mdemory.git
synced 2026-03-22 00:26:21 +00:00
per page config param
This commit is contained in:
@@ -85,6 +85,7 @@ QVBoxLayout *hMdemScroll;
|
||||
QSpacerItem *mdemSpacer;
|
||||
ErrorView *errorView;
|
||||
Pagination *pagination;
|
||||
int perPage;
|
||||
|
||||
// Editor
|
||||
QsciScintilla *editor;
|
||||
@@ -189,15 +190,16 @@ std::string outputMdem(std::vector<Question*> questions, time_t time = 0) {
|
||||
void makePages() {
|
||||
pagination->pages.clear();
|
||||
auto len = currentMdemBuffer->questions.size();
|
||||
auto pageAmount = len / PER_PAGE;
|
||||
if (len % PER_PAGE != 0) {
|
||||
perPage = settings->value(SETTING_PER_PAGE).toInt();
|
||||
auto pageAmount = len / perPage;
|
||||
if (len % perPage != 0) {
|
||||
pageAmount += 1;
|
||||
}
|
||||
for (size_t i = 0; i < pageAmount; i++) {
|
||||
size_t startingIndex = PER_PAGE * i ;
|
||||
size_t amount = PER_PAGE;
|
||||
if (i == currentMdemBuffer->questions.size() / PER_PAGE) {
|
||||
amount = currentMdemBuffer->questions.size() % PER_PAGE;
|
||||
size_t startingIndex = perPage * i ;
|
||||
size_t amount = perPage;
|
||||
if (i == currentMdemBuffer->questions.size() / perPage) {
|
||||
amount = currentMdemBuffer->questions.size() % perPage;
|
||||
}
|
||||
pagination->pages.push_back(
|
||||
Page{startingIndex, startingIndex + amount}
|
||||
@@ -420,12 +422,14 @@ void CreateMdems(std::vector<Question*>& questions) {
|
||||
}
|
||||
}
|
||||
|
||||
if (questions.size() > mdems.size()) {
|
||||
auto amount = questions.size() - mdems.size();
|
||||
for (size_t i = 0; i < amount; ++i) {
|
||||
auto mdem = makeMdem();
|
||||
mdems.push_back(mdem);
|
||||
hMdemScroll->addWidget(&mdem->wMdem);
|
||||
perPage = settings->value(SETTING_PER_PAGE).toInt();
|
||||
if (perPage > mdems.size()) {
|
||||
for (size_t i = mdems.size(); i < perPage; i++) {
|
||||
if (i >= mdems.size()) {
|
||||
auto mdem = makeMdem();
|
||||
mdems.push_back(mdem);
|
||||
hMdemScroll->addWidget(&mdem->wMdem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,7 +466,7 @@ void switchPage(int pageIdx) {
|
||||
snprintf(buffer, sizeof(buffer), "Page: %d", pageIdx + 1);
|
||||
pagination->paginationLabel.setText(buffer);
|
||||
|
||||
// Hide widgets in mdems
|
||||
// Adjust mdem amount, hide widgets in mdems
|
||||
for (auto& mdem : mdems) {
|
||||
if (mdem->wBack.isVisible()) {
|
||||
mdem->wBack.hide();
|
||||
@@ -1042,6 +1046,7 @@ QMainWindow *initMdemListWindow() {
|
||||
|
||||
auto wPagination = new QWidget();
|
||||
auto hPagination = new QHBoxLayout();
|
||||
|
||||
wPagination->setLayout(hPagination);
|
||||
|
||||
pagination->firstButton.setText(QString::fromStdString("<<"));
|
||||
@@ -1062,7 +1067,8 @@ QMainWindow *initMdemListWindow() {
|
||||
}
|
||||
});
|
||||
|
||||
for (size_t i = 0; i < PER_PAGE; i++) {
|
||||
perPage = settings->value(SETTING_PER_PAGE).toInt();
|
||||
for (size_t i = 0; i < perPage; i++) {
|
||||
auto elButton = new QToolButton();
|
||||
elButton->setText(QString("%1").arg(i+1));
|
||||
hPagination->addWidget(elButton);
|
||||
@@ -1107,12 +1113,12 @@ QMainWindow *initMdemListWindow() {
|
||||
});
|
||||
};
|
||||
|
||||
addShortcut("Ctrl+S", []() {
|
||||
saveMdem();
|
||||
});
|
||||
addShortcut("Ctrl+,", [settingsWindow]() {
|
||||
settingsWindow->show();
|
||||
});
|
||||
addShortcut("Ctrl+S", [toolbar]() {
|
||||
toolbar->btnSave.click();
|
||||
});
|
||||
addShortcut("Ctrl+P", [toolbar]() {
|
||||
toolbar->btnPractice.click();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user