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