1 /****************************************************************************
2 **
3 ** This file is part of the LibreCAD project, a 2D CAD program
4 **
5 ** Copyright (C) 2010 R. van Twisk (librecad@rvt.dds.nl)
6 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
7 **
8 **
9 ** This file may be distributed and/or modified under the terms of the
10 ** GNU General Public License version 2 as published by the Free Software
11 ** Foundation and appearing in the file gpl-2.0.txt included in the
12 ** packaging of this file.
13 **
14 ** This program is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ** GNU General Public License for more details.
18 **
19 ** You should have received a copy of the GNU General Public License
20 ** along with this program; if not, write to the Free Software
21 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 **
23 ** This copyright notice MUST APPEAR in all copies of the script!
24 **
25 **********************************************************************/
26 #ifndef QG_DLGOPTIONSDRAWING_H
27 #define QG_DLGOPTIONSDRAWING_H
28 
29 #include<memory>
30 #include <QGraphicsScene>
31 #include "ui_qg_dlgoptionsdrawing.h"
32 
33 class RS_Graphic;
34 class RS_Vector;
35 
36 class QG_DlgOptionsDrawing : public QDialog, public Ui::QG_DlgOptionsDrawing
37 {
38     Q_OBJECT
39 
40 public:
41     QG_DlgOptionsDrawing(QWidget* parent = 0, bool modal = false, Qt::WindowFlags fl = 0);
42 	~QG_DlgOptionsDrawing();
43 
44 public slots:
45     virtual void setGraphic( RS_Graphic * g );
46     virtual void validate();
47     virtual void updateLengthPrecision();
48     virtual void updateAnglePrecision();
49     virtual void updatePreview();
50     virtual void updatePaperSize();
51     virtual void updateUnitLabels();
52     virtual void updateDimLengthPrecision();
53     virtual void updateDimAnglePrecision();
54     virtual void updatePaperPreview();
55 
56 protected slots:
57     virtual void languageChange();
58 
59 private slots:
60     void on_rbIsometricGrid_clicked();
61 
62     void on_rbCrosshairLeft_toggled(bool checked);
63 
64     void on_rbCrosshairTop_toggled(bool checked);
65 
66     void on_rbCrosshairRight_toggled(bool checked);
67 
68     void on_rbOrthogonalGrid_clicked();
69 
70     void on_cbGridOn_toggled(bool checked);
71 
72 	void on_rbLandscape_toggled(bool checked);
73 
74     void on_cbDimFxLon_toggled(bool checked);
75 
76     void on_tabWidget_currentChanged(int index);
77 
78 private:
79     void updateCBLengthPrecision(QComboBox* u, QComboBox* l);
80     void updateCBAnglePrecision(QComboBox* u, QComboBox* p);
81 
82 protected:
83     void resizeEvent(QResizeEvent* event) override;
84     void showEvent(QShowEvent* event) override;
85 
86 private:
87     QStringList listPrec1;
88     RS_Graphic* graphic;
89     QGraphicsScene* paperScene;
90 	std::unique_ptr<RS_Vector> spacing;
91     void init();
92 };
93 
94 #endif // QG_DLGOPTIONSDRAWING_H
95