leocad/common/lc_instructionsdialog.cpp

462 lines
16 KiB
C++
Raw Normal View History

2020-06-01 03:46:36 +02:00
#include "lc_global.h"
#include "lc_instructionsdialog.h"
2021-01-08 02:04:19 +01:00
#include "lc_pagesetupdialog.h"
2020-06-01 03:46:36 +02:00
#include "project.h"
#include "lc_model.h"
2021-01-08 02:04:19 +01:00
#include "lc_view.h"
2021-01-15 03:19:58 +01:00
#include "lc_collapsiblewidget.h"
2021-01-15 23:43:31 +01:00
lcInstructionsStepImageItem::lcInstructionsStepImageItem(const QPixmap& Pixmap, QGraphicsItem* Parent, lcModel* Model, lcStep Step)
: QGraphicsPixmapItem(Pixmap, Parent), mModel(Model), mStep(Step)
2021-01-15 03:19:58 +01:00
{
}
2021-01-15 23:43:31 +01:00
lcInstructionsStepNumberItem::lcInstructionsStepNumberItem(const QString& Text, QGraphicsItem* Parent, lcModel* Model, lcStep Step)
: QGraphicsSimpleTextItem(Text, Parent), mModel(Model), mStep(Step)
2021-01-15 03:19:58 +01:00
{
}
2020-06-01 03:46:36 +02:00
2021-01-15 23:43:31 +01:00
lcInstructionsPageWidget::lcInstructionsPageWidget(QWidget* Parent, lcInstructions* Instructions, lcInstructionsPropertiesWidget* PropertiesWidget)
: QGraphicsView(Parent), mInstructions(Instructions), mPropertiesWidget(PropertiesWidget)
2021-01-15 23:24:44 +01:00
{
2021-01-16 00:37:28 +01:00
QGraphicsScene* Scene = new QGraphicsScene();
setScene(Scene);
connect(Scene, &QGraphicsScene::selectionChanged, this, &lcInstructionsPageWidget::SelectionChanged);
2021-01-15 23:24:44 +01:00
}
2021-01-15 23:43:31 +01:00
void lcInstructionsPageWidget::SelectionChanged()
2021-01-15 23:24:44 +01:00
{
2021-01-15 23:43:31 +01:00
QGraphicsScene* Scene = qobject_cast<QGraphicsScene*>(sender());
QGraphicsItem* Focus = nullptr;
2021-01-15 23:24:44 +01:00
2021-01-15 23:43:31 +01:00
if (Scene)
{
QList<QGraphicsItem*> SelectedItems = Scene->selectedItems();
2021-01-15 23:24:44 +01:00
2021-01-15 23:43:31 +01:00
if (!SelectedItems.isEmpty())
Focus = SelectedItems.first();
}
2021-01-15 23:24:44 +01:00
2021-01-16 00:37:28 +01:00
mPropertiesWidget->SelectionChanged(Focus);
2021-01-15 23:24:44 +01:00
}
2021-01-15 23:43:31 +01:00
void lcInstructionsPageWidget::SetCurrentPage(const lcInstructionsPage* Page)
2020-06-01 03:46:36 +02:00
{
2021-01-16 00:37:28 +01:00
QGraphicsScene* Scene = scene();
Scene->clear();
2020-06-01 03:46:36 +02:00
2021-01-07 20:48:43 +01:00
if (!Page)
return;
const lcInstructionsPageSetup& PageSetup = mInstructions->mPageSetup;
// Scene->setSceneRect(0, 0, mInstructions->mPageSetup.Width, mInstructions->mPageSetup.Height);
QGraphicsRectItem* PageItem = Scene->addRect(QRectF(0.0f, 0.0f, PageSetup.Width, PageSetup.Height), QPen(Qt::black), QBrush(Qt::white));
PageItem->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
QRectF MarginsRect(PageSetup.MarginLeft, PageSetup.MarginTop, PageSetup.Width - PageSetup.MarginLeft - PageSetup.MarginRight, PageSetup.Height - PageSetup.MarginTop - PageSetup.MarginBottom);
for (const lcInstructionsStep& Step : Page->Steps)
2021-01-06 03:48:12 +01:00
{
2021-01-07 20:48:43 +01:00
const float StepWidth = MarginsRect.width() * Step.Rect.width();
const float StepHeight = MarginsRect.height() * Step.Rect.height();
2021-01-08 02:04:19 +01:00
lcView View(lcViewType::View, Step.Model);
View.SetOffscreenContext();
View.MakeCurrent();
2021-01-16 02:50:15 +01:00
View.SetBackgroundColorOverride(lcRGBAFromQColor(mInstructions->GetColorProperty(lcInstructionsPropertyType::StepBackgroundColor, Step.Model, Step.Step)));
2021-01-08 02:04:19 +01:00
View.SetSize(StepWidth, StepHeight);
std::vector<QImage> Images = View.GetStepImages(Step.Step, Step.Step);
if (Images.empty())
continue;
QImage& StepImage = Images.front();
2021-01-07 20:48:43 +01:00
2021-01-15 23:43:31 +01:00
lcInstructionsStepImageItem* StepImageItem = new lcInstructionsStepImageItem(QPixmap::fromImage(StepImage), PageItem, Step.Model, Step.Step);
2021-01-07 20:48:43 +01:00
StepImageItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
StepImageItem->setPos(MarginsRect.left() + MarginsRect.width() * Step.Rect.x(), MarginsRect.top() + MarginsRect.height() * Step.Rect.y());
2021-01-15 23:43:31 +01:00
lcInstructionsStepNumberItem* StepNumberItem = new lcInstructionsStepNumberItem(QString::number(Step.Step), StepImageItem, Step.Model, Step.Step);
2021-01-16 02:50:15 +01:00
QFont StepNumberFont = mInstructions->GetFontProperty(lcInstructionsPropertyType::StepNumberFont, Step.Model, Step.Step);
2021-01-15 23:24:44 +01:00
StepNumberItem->setFont(StepNumberFont);
2021-01-16 02:50:15 +01:00
StepNumberItem->setBrush(QBrush(mInstructions->GetColorProperty(lcInstructionsPropertyType::StepNumberColor, Step.Model, Step.Step)));
2021-01-07 20:48:43 +01:00
StepNumberItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
QImage PartsImage = Step.Model->GetPartsListImage(300, Step.Step);
QGraphicsPixmapItem* PartsImageItem = new QGraphicsPixmapItem(QPixmap::fromImage(PartsImage), StepImageItem);
PartsImageItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
PartsImageItem->setPos(StepNumberItem->boundingRect().topRight());
2021-01-06 03:48:12 +01:00
}
2020-06-01 03:46:36 +02:00
}
2021-01-07 19:46:57 +01:00
lcInstructionsPageListWidget::lcInstructionsPageListWidget(QWidget* Parent, lcInstructions* Instructions)
: QDockWidget(Parent), mInstructions(Instructions)
2020-06-01 03:46:36 +02:00
{
QWidget* CentralWidget = new QWidget(this);
2021-01-06 23:06:15 +01:00
setWidget(CentralWidget);
setWindowTitle(tr("Pages"));
2020-06-01 03:46:36 +02:00
2021-01-07 02:45:38 +01:00
QVBoxLayout* Layout = new QVBoxLayout(CentralWidget);
2021-01-06 03:48:12 +01:00
Layout->setContentsMargins(0, 0, 0, 0);
2020-06-01 03:46:36 +02:00
2021-01-07 19:46:57 +01:00
QHBoxLayout* ButtonsLayout = new QHBoxLayout();
ButtonsLayout->setContentsMargins(0, 0, 0, 0);
Layout->addLayout(ButtonsLayout);
QToolButton* PageSetupButton = new QToolButton();
PageSetupButton->setText("Page Setup");
ButtonsLayout->addWidget(PageSetupButton);
connect(PageSetupButton, SIGNAL(clicked()), this, SLOT(ShowPageSetupDialog()));
ButtonsLayout->addStretch(1);
/*
2021-01-07 02:45:38 +01:00
lcCollapsibleWidget* SetupWidget = new lcCollapsibleWidget(tr("Page Setup"), CentralWidget);
Layout->addWidget(SetupWidget);
2021-01-07 19:46:57 +01:00
// QVBoxLayout* SetupLayout = new QVBoxLayout();
// SetupWidget->SetChildLayout(SetupLayout);
QGridLayout* SetupLayout = new QGridLayout();
2021-01-07 02:45:38 +01:00
SetupWidget->SetChildLayout(SetupLayout);
2021-01-07 19:46:57 +01:00
// lcCollapsibleWidget* SizeWidget = new lcCollapsibleWidget(tr("Size"));
QGroupBox* SizeWidget = new QGroupBox(tr("Size"));
2021-01-07 02:45:38 +01:00
SetupLayout->addWidget(SizeWidget);
QGridLayout* SizeLayout = new QGridLayout();
2021-01-07 19:46:57 +01:00
// SizeWidget->SetChildLayout(SizeLayout);
SizeWidget->setLayout(SizeLayout);
2021-01-07 02:45:38 +01:00
mWidthEdit = new lcSmallLineEdit();
SizeLayout->addWidget(new QLabel(tr("Width:")), 1, 0);
SizeLayout->addWidget(mWidthEdit, 1, 1);
mHeightEdit = new lcSmallLineEdit();
SizeLayout->addWidget(new QLabel(tr("Height:")), 1, 2);
SizeLayout->addWidget(mHeightEdit, 1, 3);
2021-01-07 19:46:57 +01:00
mUnitsComboBox = new QComboBox();
mUnitsComboBox->addItems(QStringList() << tr("Pixels") << tr("Centimeters") << tr("Inches"));
SizeLayout->addWidget(new QLabel(tr("Units:")), 4, 0);
SizeLayout->addWidget(mUnitsComboBox, 4, 1, 1, -1);
2021-01-07 02:45:38 +01:00
2021-01-07 19:46:57 +01:00
mSizeComboBox = new QComboBox();
SizeLayout->addWidget(new QLabel(tr("Preset:")), 5, 0);
SizeLayout->addWidget(mSizeComboBox, 5, 1, 1, -1);
// lcCollapsibleWidget* OrientationWidget = new lcCollapsibleWidget(tr("Orientation"));
// SetupLayout->addWidget(OrientationWidget);
//
// QVBoxLayout* OrientationLayout = new QVBoxLayout();
// OrientationWidget->SetChildLayout(OrientationLayout);
//
// mPortraitButton = new QRadioButton(tr("Portrait"));
// OrientationLayout->addWidget(mPortraitButton);
// mLandscapeButton = new QRadioButton(tr("Landscape"));
// OrientationLayout->addWidget(mLandscapeButton);
QGroupBox* MarginsWidget = new QGroupBox(tr("Margins"));
// lcCollapsibleWidget* MarginsWidget = new lcCollapsibleWidget(tr("Margins"));
2021-01-07 02:45:38 +01:00
SetupLayout->addWidget(MarginsWidget);
QGridLayout* MarginsLayout = new QGridLayout();
2021-01-07 19:46:57 +01:00
// MarginsWidget->SetChildLayout(MarginsLayout);
MarginsWidget->setLayout(MarginsLayout);
2021-01-07 02:45:38 +01:00
mLeftMarginEdit = new lcSmallLineEdit();
2021-01-07 19:46:57 +01:00
MarginsLayout->addWidget(new QLabel(tr("Left:")), 2, 0);
MarginsLayout->addWidget(mLeftMarginEdit, 2, 1);
2021-01-07 02:45:38 +01:00
mRightMarginEdit = new lcSmallLineEdit();
2021-01-07 19:46:57 +01:00
MarginsLayout->addWidget(new QLabel(tr("Right:")), 2, 2);
MarginsLayout->addWidget(mRightMarginEdit, 2, 3);
2021-01-07 02:45:38 +01:00
mTopMarginEdit = new lcSmallLineEdit();
2021-01-07 19:46:57 +01:00
MarginsLayout->addWidget(new QLabel(tr("Top:")), 3, 0);
MarginsLayout->addWidget(mTopMarginEdit, 3, 1);
2021-01-07 02:45:38 +01:00
mBottomMarginEdit = new lcSmallLineEdit();
2021-01-07 19:46:57 +01:00
MarginsLayout->addWidget(new QLabel(tr("Bottom:")), 3, 2);
MarginsLayout->addWidget(mBottomMarginEdit, 3, 3);
2021-01-07 02:45:38 +01:00
2021-01-07 19:46:57 +01:00
// lcCollapsibleWidget* UnitsWidget = new lcCollapsibleWidget(tr("Units"));
// SetupLayout->addWidget(UnitsWidget);
//
// QVBoxLayout* UnitsLayout = new QVBoxLayout();
// UnitsWidget->SetChildLayout(UnitsLayout);
2021-01-07 02:45:38 +01:00
2021-01-07 19:46:57 +01:00
// SetupWidget->Collapse();
*/
2021-01-06 23:06:15 +01:00
mThumbnailsWidget = new QListWidget(CentralWidget);
Layout->addWidget(mThumbnailsWidget);
}
2021-01-07 19:46:57 +01:00
void lcInstructionsPageListWidget::ShowPageSetupDialog()
{
lcPageSetupDialog Dialog(this, &mInstructions->mPageSetup);
if (Dialog.exec() != QDialog::Accepted)
return;
}
2021-01-15 03:19:58 +01:00
lcInstructionsPropertiesWidget::lcInstructionsPropertiesWidget(QWidget* Parent, lcInstructions* Instructions)
: QDockWidget(Parent), mInstructions(Instructions)
{
QWidget* CentralWidget = new QWidget(this);
setWidget(CentralWidget);
setWindowTitle(tr("Properties"));
QGridLayout* Layout = new QGridLayout(CentralWidget);
Layout->setContentsMargins(0, 0, 0, 0);
QComboBox* ScopeComboBox = new QComboBox(CentralWidget);
ScopeComboBox->addItems(QStringList() << tr("Default") << tr("Current Model") << tr("Current Step Only") << tr("Current Step Forward"));
Layout->addWidget(new QLabel(tr("Scope:")), 0, 0);
Layout->addWidget(ScopeComboBox, 0, 1);
QComboBox* PresetComboBox = new QComboBox(CentralWidget);
Layout->addWidget(new QLabel(tr("Preset:")), 1, 0);
Layout->addWidget(PresetComboBox, 1, 1);
Layout->setRowStretch(3, 1);
}
2021-01-15 23:24:44 +01:00
void lcInstructionsPropertiesWidget::StepImageItemFocusIn(lcInstructionsStepImageItem* ImageItem)
2021-01-15 03:19:58 +01:00
{
mWidget = new lcCollapsibleWidget(tr("Step Properties")); // todo: disable collapse
QGridLayout* WidgetLayout = qobject_cast<QGridLayout*>(widget()->layout());
WidgetLayout->addWidget(mWidget, 2, 0, 1, -1);
QGridLayout* Layout = new QGridLayout();
mWidget->SetChildLayout(Layout);
2021-01-16 02:50:15 +01:00
QLabel* ColorLabel = new QLabel(tr("Background Color:"));
2021-01-16 00:40:06 +01:00
Layout->addWidget(ColorLabel, 1, 0);
2021-01-15 03:19:58 +01:00
QToolButton* ColorButton = new QToolButton();
2021-01-16 00:40:06 +01:00
QPixmap Pixmap(12, 12);
2021-01-16 02:50:15 +01:00
QColor Color = mInstructions->GetColorProperty(lcInstructionsPropertyType::StepBackgroundColor, ImageItem->GetModel(), ImageItem->GetStep());
2021-01-16 00:40:06 +01:00
Pixmap.fill(Color);
ColorButton->setIcon(Pixmap);
Layout->addWidget(ColorButton, 1, 1);
2021-01-15 03:19:58 +01:00
2021-01-16 00:40:06 +01:00
connect(ColorButton, &QToolButton::clicked, [this, Color]()
{
QColor NewColor = QColorDialog::getColor(Color, this, tr("Select Step Number Color"));
2021-01-15 03:19:58 +01:00
2021-01-16 00:40:06 +01:00
if (NewColor.isValid())
2021-01-16 02:50:15 +01:00
mInstructions->SetDefaultColor(lcInstructionsPropertyType::StepBackgroundColor, NewColor);
2021-01-16 00:40:06 +01:00
});
2021-01-15 03:19:58 +01:00
}
2021-01-15 23:24:44 +01:00
void lcInstructionsPropertiesWidget::StepNumberItemFocusIn(lcInstructionsStepNumberItem* NumberItem)
{
mWidget = new lcCollapsibleWidget(tr("Step Number Properties")); // todo: disable collapse
QGridLayout* WidgetLayout = qobject_cast<QGridLayout*>(widget()->layout());
WidgetLayout->addWidget(mWidget, 2, 0, 1, -1);
QGridLayout* Layout = new QGridLayout();
mWidget->SetChildLayout(Layout);
2021-01-16 02:50:15 +01:00
QFont Font = mInstructions->GetFontProperty(lcInstructionsPropertyType::StepNumberFont, NumberItem->GetModel(), NumberItem->GetStep());
2021-01-15 23:24:44 +01:00
QLabel* FontLabel = new QLabel(tr("Font:"));
Layout->addWidget(FontLabel, 0, 0);
QToolButton* FontButton = new QToolButton();
2021-01-16 02:50:15 +01:00
QString FontName = QString("%1 %2").arg(Font.family(), QString::number(Font.pointSize()));
2021-01-16 00:37:28 +01:00
FontButton->setText(FontName);
2021-01-15 23:24:44 +01:00
Layout->addWidget(FontButton, 0, 1);
2021-01-16 00:37:28 +01:00
connect(FontButton, &QToolButton::clicked, [this, Font]()
2021-01-15 23:24:44 +01:00
{
2021-01-16 00:37:28 +01:00
bool Ok = false;
QFont NewFont = QFontDialog::getFont(&Ok, Font, this, tr("Select Step Number Font"));
if (Ok)
2021-01-16 02:50:15 +01:00
mInstructions->SetDefaultFont(lcInstructionsPropertyType::StepNumberFont, NewFont); // todo: this is clearing the scene selection and hiding the properties widget
2021-01-16 00:37:28 +01:00
});
2021-01-15 23:24:44 +01:00
QLabel* ColorLabel = new QLabel(tr("Color:"));
Layout->addWidget(ColorLabel, 1, 0);
2021-01-16 00:37:28 +01:00
QToolButton* ColorButton = new QToolButton();
QPixmap Pixmap(12, 12);
2021-01-16 02:50:15 +01:00
QColor Color = mInstructions->GetColorProperty(lcInstructionsPropertyType::StepNumberColor, NumberItem->GetModel(), NumberItem->GetStep());
2021-01-16 00:37:28 +01:00
Pixmap.fill(Color);
ColorButton->setIcon(Pixmap);
Layout->addWidget(ColorButton, 1, 1);
connect(ColorButton, &QToolButton::clicked, [this, Color]()
{
QColor NewColor = QColorDialog::getColor(Color, this, tr("Select Step Number Color"));
if (NewColor.isValid())
2021-01-16 02:50:15 +01:00
mInstructions->SetDefaultColor(lcInstructionsPropertyType::StepNumberColor, NewColor);
2021-01-16 00:37:28 +01:00
});
2021-01-15 23:24:44 +01:00
}
2021-01-16 00:37:28 +01:00
void lcInstructionsPropertiesWidget::SelectionChanged(QGraphicsItem* FocusItem)
2021-01-15 03:19:58 +01:00
{
2021-01-15 23:43:31 +01:00
if (mFocusItem == FocusItem)
2021-01-15 03:19:58 +01:00
return;
delete mWidget;
mWidget = nullptr;
2021-01-15 23:43:31 +01:00
mFocusItem = FocusItem;
if (!FocusItem)
return;
lcInstructionsStepImageItem* ImageItem = dynamic_cast<lcInstructionsStepImageItem*>(FocusItem);
if (ImageItem)
{
StepImageItemFocusIn(ImageItem);
return;
}
lcInstructionsStepNumberItem* NumberItem = dynamic_cast<lcInstructionsStepNumberItem*>(FocusItem);
if (NumberItem)
{
StepNumberItemFocusIn(NumberItem);
return;
}
2021-01-15 03:19:58 +01:00
}
2021-01-06 23:06:15 +01:00
lcInstructionsDialog::lcInstructionsDialog(QWidget* Parent, Project* Project)
: QMainWindow(Parent), mProject(Project)
{
setWindowTitle(tr("Instructions"));
2020-06-01 03:46:36 +02:00
2021-01-07 19:46:57 +01:00
mInstructions = mProject->GetInstructions();
2021-01-15 23:43:31 +01:00
mPropertiesWidget = new lcInstructionsPropertiesWidget(this, mInstructions);
mPropertiesWidget->setObjectName("InstructionsProperties");
addDockWidget(Qt::RightDockWidgetArea, mPropertiesWidget);
mPageWidget = new lcInstructionsPageWidget(this, mInstructions, mPropertiesWidget);
2021-01-06 23:06:15 +01:00
setCentralWidget(mPageWidget);
2020-06-01 03:46:36 +02:00
2021-01-15 03:19:58 +01:00
mPageListWidget = new lcInstructionsPageListWidget(this, mInstructions);
mPageListWidget->setObjectName("InstructionsPageList");
2021-01-06 23:06:15 +01:00
addDockWidget(Qt::LeftDockWidgetArea, mPageListWidget);
2020-06-01 03:46:36 +02:00
2021-01-06 03:48:12 +01:00
mPageSettingsToolBar = addToolBar(tr("Page Settings"));
mPageSettingsToolBar->setObjectName("PageSettings");
mPageSettingsToolBar->setFloatable(false);
mPageSettingsToolBar->setMovable(false);
mVerticalPageAction = mPageSettingsToolBar->addAction("Vertical");
mVerticalPageAction->setCheckable(true);
mHorizontalPageAction = mPageSettingsToolBar->addAction("Horizontal");
mHorizontalPageAction->setCheckable(true);
mRowsSpinBox = new QSpinBox(mPageSettingsToolBar);
mPageSettingsToolBar->addWidget(mRowsSpinBox);
mColumnsSpinBox = new QSpinBox(mPageSettingsToolBar);
mPageSettingsToolBar->addWidget(mColumnsSpinBox);
QActionGroup* PageDirectionGroup = new QActionGroup(mPageSettingsToolBar);
PageDirectionGroup->addAction(mVerticalPageAction);
PageDirectionGroup->addAction(mHorizontalPageAction);
2021-01-15 03:19:58 +01:00
for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++)
2021-01-06 23:06:15 +01:00
mPageListWidget->mThumbnailsWidget->addItem(QString("Page %1").arg(PageNumber + 1));
2020-06-01 03:46:36 +02:00
2021-01-06 23:06:15 +01:00
connect(mPageListWidget->mThumbnailsWidget, SIGNAL(currentRowChanged(int)), this, SLOT(CurrentThumbnailChanged(int)));
mPageListWidget->mThumbnailsWidget->setCurrentRow(0);
2021-01-06 03:48:12 +01:00
2021-01-15 03:19:58 +01:00
connect(mInstructions, &lcInstructions::PageInvalid, this, &lcInstructionsDialog::PageInvalid);
2021-01-07 02:45:38 +01:00
connect(mVerticalPageAction, SIGNAL(toggled(bool)), this, SLOT(UpdatePageSettings()));
connect(mHorizontalPageAction, SIGNAL(toggled(bool)), this, SLOT(UpdatePageSettings()));
2021-01-06 03:48:12 +01:00
connect(mRowsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(UpdatePageSettings()));
connect(mColumnsSpinBox, SIGNAL(valueChanged(int)), this, SLOT(UpdatePageSettings()));
}
void lcInstructionsDialog::UpdatePageSettings()
{
lcInstructionsPageSettings PageSettings;
PageSettings.Rows = mRowsSpinBox->value();
PageSettings.Columns = mColumnsSpinBox->value();
if (mHorizontalPageAction->isChecked())
PageSettings.Direction = lcInstructionsDirection::Horizontal;
else
PageSettings.Direction = lcInstructionsDirection::Vertical;
2021-01-15 03:19:58 +01:00
mInstructions->SetDefaultPageSettings(PageSettings);
2021-01-06 03:48:12 +01:00
// lcInstructionsPage* Page = &mInstructions.mPages[mThumbnailsWidget->currentIndex().row()];
2021-01-06 23:06:15 +01:00
mPageListWidget->mThumbnailsWidget->clear();
2021-01-15 03:19:58 +01:00
for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++)
2021-01-06 23:06:15 +01:00
mPageListWidget->mThumbnailsWidget->addItem(QString("Page %1").arg(PageNumber + 1));
2021-01-06 03:48:12 +01:00
// mThumbnailsWidget->setCurrentRow(0);
// mPageWidget->SetCurrentPage(Page);
2020-06-01 03:46:36 +02:00
}
void lcInstructionsDialog::CurrentThumbnailChanged(int Index)
{
2021-01-15 03:19:58 +01:00
if (Index < 0 || Index >= static_cast<int>(mInstructions->mPages.size()))
2021-01-06 03:48:12 +01:00
{
2021-01-15 23:43:31 +01:00
mPageWidget->SetCurrentPage(nullptr);
2021-01-06 03:48:12 +01:00
return;
}
2021-01-15 03:19:58 +01:00
const lcInstructionsPage* Page = &mInstructions->mPages[Index];
2021-01-06 03:48:12 +01:00
// const lcInstructionsPageSettings& PageSettings = Page->Settings;
2021-01-15 03:19:58 +01:00
const lcInstructionsPageSettings& PageSettings = mInstructions->mPageSettings;
2021-01-06 03:48:12 +01:00
2021-01-15 23:43:31 +01:00
mPageWidget->SetCurrentPage(Page);
2021-01-06 03:48:12 +01:00
if (PageSettings.Direction == lcInstructionsDirection::Horizontal)
{
mHorizontalPageAction->blockSignals(true);
mHorizontalPageAction->setChecked(true);
mHorizontalPageAction->blockSignals(false);
}
else
{
mVerticalPageAction->blockSignals(true);
mVerticalPageAction->setChecked(true);
mVerticalPageAction->blockSignals(false);
}
mRowsSpinBox->blockSignals(true);
mRowsSpinBox->setValue(PageSettings.Rows);
mRowsSpinBox->blockSignals(false);
mColumnsSpinBox->blockSignals(true);
mColumnsSpinBox->setValue(PageSettings.Columns);
mColumnsSpinBox->blockSignals(false);
2020-06-01 03:46:36 +02:00
}
2021-01-15 03:19:58 +01:00
void lcInstructionsDialog::PageInvalid(int PageIndex)
{
if (mPageListWidget->mThumbnailsWidget->currentRow() == PageIndex)
{
const lcInstructionsPage* Page = &mInstructions->mPages[PageIndex];
2021-01-15 23:43:31 +01:00
mPageWidget->SetCurrentPage(Page);
2021-01-15 03:19:58 +01:00
}
}