Files
GostGenerator/view/pagebreakconfirmationdialog.h
T

69 lines
1.8 KiB
C++

#ifndef PAGEBREAKCONFIRMATIONDIALOG_H
#define PAGEBREAKCONFIRMATIONDIALOG_H
#include <QDialog>
#include <QList>
#include <QString>
class QVBoxLayout;
class QHBoxLayout;
class QLabel;
class QPushButton;
class QCheckBox;
class QTextEdit;
class QScrollArea;
struct PageBreakInfo {
int rowIndex;
QString headerText;
int currentPage;
int nextPage;
int emptyRowsToAdd;
};
class PageBreakConfirmationDialog : public QDialog
{
Q_OBJECT
public:
explicit PageBreakConfirmationDialog(const QList<PageBreakInfo> &pageBreakInfos, QWidget *parent = nullptr);
// Возвращает список строк, для которых пользователь подтвердил перенос
QList<int> getConfirmedRows() const;
// Возвращает, нужно ли показывать этот диалог в будущем
bool shouldShowDialogInFuture() const;
private slots:
void onConfirmAllClicked();
void onConfirmSelectedClicked();
void onSkipAllClicked();
void onDetailsToggled(bool checked);
void onSelectAllToggled(bool checked);
private:
void setupUI();
void updateDetailsText();
void updateSelectAllCheckBox();
QList<PageBreakInfo> m_pageBreakInfos;
QList<int> m_confirmedRows;
QList<QCheckBox*> m_rowCheckBoxes;
QVBoxLayout *m_mainLayout;
QLabel *m_titleLabel;
QLabel *m_descriptionLabel;
QScrollArea *m_checkBoxesScrollArea;
QCheckBox *m_selectAllCheckBox;
QTextEdit *m_detailsTextEdit;
QCheckBox *m_showDetailsCheckBox;
QCheckBox *m_rememberChoiceCheckBox;
QPushButton *m_confirmAllButton;
QPushButton *m_confirmSelectedButton;
QPushButton *m_skipAllButton;
QPushButton *m_cancelButton;
bool m_showDialogInFuture;
};
#endif // PAGEBREAKCONFIRMATIONDIALOG_H