2 * \file QGraphicsDialog.C
3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * \author Abdelrazak Younes
10 * Full author contact details are available in file CREDITS.
15 #include "QGraphicsDialog.h"
16 #include "QGraphics.h"
18 #include "lengthcombo.h"
19 #include "validators.h"
20 #include "qt_helpers.h"
24 #include "controllers/ControlGraphics.h"
26 #include <QCloseEvent>
27 #include <QPushButton>
38 QGraphicsDialog::QGraphicsDialog(QGraphics * form)
42 connect(okPB, SIGNAL(clicked()),
43 form, SLOT(slotOK()));
44 connect(applyPB, SIGNAL(clicked()),
45 form, SLOT(slotApply()));
46 connect(closePB, SIGNAL(clicked()),
47 form, SLOT(slotClose()));
48 connect(restorePB, SIGNAL(clicked()),
49 form, SLOT(slotRestore()));
50 connect(filename, SIGNAL( textChanged(const QString&) ),
51 this, SLOT( change_adaptor() ) );
52 connect(subcaption, SIGNAL( textChanged(const QString&) ),
53 this, SLOT( change_adaptor() ) );
54 connect(subfigure, SIGNAL( toggled(bool) ),
55 this, SLOT( change_adaptor() ) );
56 connect(latexoptions, SIGNAL( textChanged(const QString&) ),
57 this, SLOT( change_adaptor() ) );
58 connect(clip, SIGNAL( stateChanged(int) ),
59 this, SLOT( change_adaptor() ) );
60 connect(showCB, SIGNAL( currentIndexChanged(int) ),
61 this, SLOT( change_adaptor() ) );
62 connect(displayscale, SIGNAL( textChanged(const QString&) ),
63 this, SLOT( change_adaptor() ) );
64 connect(Width, SIGNAL( textChanged(const QString&) ),
65 this, SLOT( change_adaptor() ) );
66 connect(aspectratio, SIGNAL( stateChanged(int) ),
67 this, SLOT( change_adaptor() ) );
68 connect(draftCB, SIGNAL( stateChanged(int) ),
69 this, SLOT( change_adaptor() ) );
70 connect(unzipCB, SIGNAL( stateChanged(int) ),
71 this, SLOT( change_adaptor() ) );
72 connect(Height, SIGNAL( textChanged(const QString&) ),
73 this, SLOT( change_adaptor() ) );
74 connect(heightUnit, SIGNAL( selectionChanged(lyx::LyXLength::UNIT) ),
75 this, SLOT( change_adaptor() ) );
76 connect(widthUnit, SIGNAL( selectionChanged(lyx::LyXLength::UNIT) ),
77 this, SLOT( change_adaptor() ) );
78 connect(angle, SIGNAL( textChanged(const QString&) ),
79 this, SLOT( change_adaptor() ) );
80 connect(origin, SIGNAL( activated(int) ),
81 this, SLOT( change_adaptor() ) );
82 connect(getPB, SIGNAL( clicked() ),
83 this, SLOT( change_adaptor() ) );
84 connect(scaleCB, SIGNAL(toggled(bool)),
85 this, SLOT(change_adaptor()) );
86 connect(Scale, SIGNAL( textChanged(const QString&) ),
87 this, SLOT( change_adaptor() ) );
89 connect(lbY, SIGNAL( textChanged(const QString&) ),
90 this, SLOT( change_bb() ) );
91 connect(lbYunit, SIGNAL( activated(int) ),
92 this, SLOT( change_bb() ) );
93 connect(rtY, SIGNAL( textChanged(const QString&) ),
94 this, SLOT( change_bb() ) );
95 connect(rtYunit, SIGNAL( activated(int) ),
96 this, SLOT( change_bb() ) );
98 connect(lbX, SIGNAL( textChanged(const QString&) ),
99 this, SLOT( change_bb() ) );
100 connect(lbXunit, SIGNAL( activated(int) ),
101 this, SLOT( change_bb() ) );
102 connect(rtX, SIGNAL( textChanged(const QString&) ),
103 this, SLOT( change_bb() ) );
104 connect(rtXunit, SIGNAL( activated(int) ),
105 this, SLOT( change_bb() ) );
107 angle->setValidator(new QDoubleValidator(-360, 360, 2, angle));
109 lbX->setValidator(new QIntValidator(lbX));
110 lbY->setValidator(new QIntValidator(lbY));
111 rtX->setValidator(new QIntValidator(rtX));
112 rtY->setValidator(new QIntValidator(rtY));
114 displayscale->setValidator(new QIntValidator(displayscale));
115 Height->setValidator(unsignedLengthValidator(Height));
116 Width->setValidator(unsignedLengthValidator(Width));
118 filename->setValidator(new PathValidator(true, filename));
122 void QGraphicsDialog::show()
125 filename->setFocus();
129 void QGraphicsDialog::change_adaptor()
135 void QGraphicsDialog::change_bb()
137 form_->controller().bbChanged = true;
138 lyxerr[Debug::GRAPHICS]
139 << "[controller().bb_Changed set to true]\n";
144 void QGraphicsDialog::closeEvent(QCloseEvent * e)
151 void QGraphicsDialog::on_browsePB_clicked()
153 docstring const str =
154 form_->controller().browse(qstring_to_ucs4(filename->text()));
155 filename->setText(toqstr(str));
160 void QGraphicsDialog::on_getPB_clicked()
166 void QGraphicsDialog::on_editPB_clicked()
168 form_->controller().editGraphics();
172 void QGraphicsDialog::on_filename_textChanged(const QString & filename)
174 editPB->setDisabled(filename.isEmpty());
178 void QGraphicsDialog::on_scaleCB_toggled(bool setscale)
180 Scale->setEnabled(setscale);
181 widthL->setDisabled(setscale);
182 Width->setDisabled(setscale);
183 widthUnit->setDisabled(setscale);
184 aspectratio->setDisabled(setscale);
185 bool noheight = setscale || aspectratio->checkState()==Qt::Checked;
186 heightL->setDisabled(noheight);
187 Height->setDisabled(noheight);
188 heightUnit->setDisabled(noheight);
191 } // namespace frontend
194 #include "QGraphicsDialog_moc.cpp"