69 lines
1.8 KiB
C++
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
|