File indexing completed on 2025-09-14 03:43:10

0001 /*
0002     File                 : WorksheetDock.h
0003     Project              : LabPlot
0004     Description          : widget for worksheet properties
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2008 Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
0007     SPDX-FileCopyrightText: 2010-2022 Alexander Semke <alexander.semke@web.de>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #ifndef WORKSHEETDOCK_H
0013 #define WORKSHEETDOCK_H
0014 
0015 #include "backend/worksheet/Worksheet.h"
0016 #include "kdefrontend/dockwidgets/BaseDock.h"
0017 #include "ui_worksheetdock.h"
0018 
0019 class AbstractAspect;
0020 class BackgroundWidget;
0021 class ThemeHandler;
0022 class Worksheet;
0023 
0024 class WorksheetDock : public BaseDock {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit WorksheetDock(QWidget*);
0029     void setWorksheets(QList<Worksheet*>);
0030     void updateLocale() override;
0031     void updateUnits() override;
0032 
0033     enum class SizeType {
0034         ViewSize = 0,
0035         StandardPage,
0036         Custom,
0037     };
0038 
0039 private:
0040     Ui::WorksheetDock ui;
0041     BackgroundWidget* backgroundWidget{nullptr};
0042     QList<Worksheet*> m_worksheetList;
0043     Worksheet* m_worksheet{nullptr};
0044     ThemeHandler* m_themeHandler;
0045 
0046     void updatePaperSize();
0047 
0048     void load();
0049     void loadConfig(KConfig&);
0050 
0051 private Q_SLOTS:
0052     void retranslateUi();
0053 
0054     // SLOTs for changes triggered in WorksheetDock
0055     //"General"-tab
0056     void scaleContentChanged(bool);
0057     void sizeTypeChanged(int);
0058     void pageChanged(int);
0059     void sizeChanged();
0060     void orientationChanged(int);
0061 
0062     //"Layout"-tab
0063     void layoutChanged(int);
0064     void layoutTopMarginChanged(double);
0065     void layoutBottomMarginChanged(double);
0066     void layoutRightMarginChanged(double);
0067     void layoutLeftMarginChanged(double);
0068     void layoutHorizontalSpacingChanged(double);
0069     void layoutVerticalSpacingChanged(double);
0070     void layoutRowCountChanged(int);
0071     void layoutColumnCountChanged(int);
0072 
0073     // SLOTs for changes triggered in Worksheet
0074     void worksheetDescriptionChanged(const AbstractAspect*);
0075     void worksheetScaleContentChanged(bool);
0076     void worksheetUseViewSizeChanged(bool);
0077     void worksheetPageRectChanged(const QRectF&);
0078 
0079     void worksheetLayoutChanged(Worksheet::Layout);
0080     void worksheetLayoutTopMarginChanged(double);
0081     void worksheetLayoutBottomMarginChanged(double);
0082     void worksheetLayoutLeftMarginChanged(double);
0083     void worksheetLayoutRightMarginChanged(double);
0084     void worksheetLayoutVerticalSpacingChanged(double);
0085     void worksheetLayoutHorizontalSpacingChanged(double);
0086     void worksheetLayoutRowCountChanged(int);
0087     void worksheetLayoutColumnCountChanged(int);
0088 
0089     // save/load templates and themes
0090     void loadConfigFromTemplate(KConfig&);
0091     void saveConfigAsTemplate(KConfig&);
0092     void loadTheme(const QString&);
0093 
0094 Q_SIGNALS:
0095     void info(const QString&);
0096 };
0097 
0098 #endif // WORKSHEETDOCK_H