#ifndef PAGEBREAKCONFIRMATIONDIALOG_H #define PAGEBREAKCONFIRMATIONDIALOG_H #include #include #include 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 &pageBreakInfos, QWidget *parent = nullptr); // Возвращает список строк, для которых пользователь подтвердил перенос QList 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 m_pageBreakInfos; QList m_confirmedRows; QList 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