summaryrefslogtreecommitdiffstats
path: root/scribus/tabdocument.h
blob: 232a399bc9f41cb72e1ba3b0f8783d2372454e61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
#ifndef TABDOCUMENT_H
#define TABDOCUMENT_H

#include <QWidget>
class QGridLayout;
class QHBoxLayout;
class QVBoxLayout;
class QGroupBox;
class QComboBox;
class QCheckBox;
class QSpinBox;
class QLabel;

#include "scribusapi.h"

class ScrSpinBox;
class PageLayouts;
class MarginWidget;
class ScribusDoc;

/*! \brief Document panel for preferences dialog.
This class is inherited from UI base class.
\author Petr Vanek <petr@scribus.info>
*/
class SCRIBUS_API TabDocument : public QWidget
{
	Q_OBJECT

public:
	TabDocument(QWidget* parent = 0, const char* name = 0, const bool reform = false);
	~TabDocument(){};
	void restoreDefaults(struct ApplicationPrefs *prefsData);
	void restoreDefaults(ScribusDoc *prefsData);
	void unitChange();
	//! \brief Hide non-needed GUI for ReformDoc
	void hideReform();
	ScrSpinBox* pageWidth;
	ScrSpinBox* pageHeight;
	PageLayouts* docLayout;
	MarginWidget* marginGroup;
	QGroupBox* GroupSize;
	QComboBox* pageSizeComboBox;
	QComboBox* pageOrientationComboBox;
	int choosenLayout;
	double pageW;
	double pageH;
	QString prefsPageSizeName;
	QComboBox* unitCombo;
	QGroupBox* GroupAS;
	QSpinBox* ASTime;
	QGroupBox* urGroup;
	QSpinBox* urSpinBox;
	// reform widgets
	QCheckBox* sizeAllPages;
	QCheckBox* sizeAllMasterPages;
private:
	double unitRatio;
private slots:
	/*!
	\author Franz Schmid
	\brief Preferences (Document / Page Size), sets Page width values
	\param v Width value
	 */
	void setPageWidth(double v);
	/*!
	\author Franz Schmid
	\brief Preferences (Document / Page Size), sets Page height values
	\param v Height value
	 */
	void setPageHeight(double v);
	/*!
	\author Franz Schmid
	\brief Preferences (Document / Page Size), sets Page orientation value and page dimensions
	\param ori Orientation value
	 */
	void setOrien(int ori);
	/*!
	\author Franz Schmid
	\brief Preferences (Document / Page Size), sets Page size values. Connects signals for setting page dimensions.
	\param gr Standard page size value (eg A4)
	 */
	void setSize(const QString & gr);
	void setPageSize();
	void slotUndo(bool isEnabled);

protected:
	QLabel* GZText1;
	QLabel* GZText2;
	QLabel* GZText3;
	QLabel* GZText4;
	QLabel* unitComboText;
	QLabel* ASText;
	QLabel* urLabel;
	QLabel* sizePages;
	QHBoxLayout* sizePagesLayout;
	QHBoxLayout* tabLayout_7;
	QVBoxLayout* Layout21;
	QHBoxLayout* dsLayout4p;
	QVBoxLayout* dsLayout4pv;
	QVBoxLayout* GroupSizeLayout;
	QGridLayout* Layout6;
	QHBoxLayout* Layout5_2;
	QHBoxLayout* GroupASLayout;
};

#endif