src/forms/circleoptions.h \
src/forms/commandwidget.h \
src/forms/coordinatewidget.h \
+ src/forms/dimensionlabeleditor.h \
src/forms/dimlinearoptions.h \
src/forms/dimoptions.h \
+ src/forms/dlgarc.h \
src/forms/dlgattributes.h \
+ src/forms/dlgcircle.h \
+ src/forms/dlgdimension.h \
+ src/forms/dlgdimlinear.h \
+ src/forms/dlgellipse.h \
+ src/forms/dlghatch.h \
src/forms/dlgimageoptions.h \
src/forms/dlginitial.h \
+ src/forms/dlginsert.h \
+ src/forms/dlgline.h \
+ src/forms/dlgmirror.h \
+ src/forms/dlgmove.h \
+ src/forms/dlgmoverotate.h \
src/forms/dlgoptionsdrawing.h \
src/forms/dlgoptionsgeneral.h \
+ src/forms/dlgpoint.h \
+ src/forms/dlgrotate.h \
+ src/forms/dlgrotate2.h \
+ src/forms/dlgscale.h \
+ src/forms/dlgspline.h \
src/forms/dlgtext.h \
src/forms/exitdialog.h \
src/forms/imageoptions.h \
+ src/forms/insertoptions.h \
+ src/forms/libraryinsertoptions.h \
src/forms/layerdialog.h \
src/forms/librarywidget.h \
src/forms/lineangleoptions.h \
src/forms/circleoptions.cpp \
src/forms/commandwidget.cpp \
src/forms/coordinatewidget.cpp \
+ src/forms/dimensionlabeleditor.cpp \
src/forms/dimlinearoptions.cpp \
src/forms/dimoptions.cpp \
+ src/forms/dlgarc.cpp \
src/forms/dlgattributes.cpp \
+ src/forms/dlgcircle.cpp \
+ src/forms/dlgdimension.cpp \
+ src/forms/dlgdimlinear.cpp \
+ src/forms/dlgellipse.cpp \
+ src/forms/dlghatch.cpp \
src/forms/dlgimageoptions.cpp \
src/forms/dlginitial.cpp \
+ src/forms/dlginsert.cpp \
+ src/forms/dlgline.cpp \
+ src/forms/dlgmirror.cpp \
+ src/forms/dlgmove.cpp \
+ src/forms/dlgmoverotate.cpp \
src/forms/dlgoptionsdrawing.cpp \
src/forms/dlgoptionsgeneral.cpp \
+ src/forms/dlgpoint.cpp \
+ src/forms/dlgrotate.cpp \
+ src/forms/dlgrotate2.cpp \
+ src/forms/dlgscale.cpp \
+ src/forms/dlgspline.cpp \
src/forms/dlgtext.cpp \
src/forms/exitdialog.cpp \
src/forms/imageoptions.cpp \
+ src/forms/insertoptions.cpp \
+ src/forms/libraryinsertoptions.cpp \
src/forms/layerdialog.cpp \
src/forms/librarywidget.cpp \
src/forms/lineangleoptions.cpp \
src/widgets/qg_scrollbar.cpp \
src/widgets/qg_widthbox.cpp
-#The following line was changed from FORMS to FORMS3 by qt3to4
-#FORMS3 = \
-# ui/qg_dimensionlabeleditor.ui \
-# ui/qg_dlghatch.ui \
-# ui/qg_dlginsert.ui \
-# ui/qg_dlgarc.ui \
-# ui/qg_dlgcircle.ui \
-# ui/qg_dlgdimension.ui \
-# ui/qg_dlgdimlinear.ui \
-# ui/qg_dlgline.ui \
-# ui/qg_dlgellipse.ui \
-# ui/qg_dlgmirror.ui \
-# ui/qg_dlgmove.ui \
-# ui/qg_dlgmoverotate.ui \
-# ui/qg_dlgpoint.ui \
-# ui/qg_dlgrotate.ui \
-# ui/qg_dlgrotate2.ui \
-# ui/qg_dlgscale.ui \
-# ui/qg_dlgspline.ui \
-# ui/qg_insertoptions.ui \
-# ui/qg_libraryinsertoptions.ui \
-
-# src/forms/lineangleoptions.ui \
-# src/forms/linebisectoroptions.ui \
-# src/forms/lineparalleloptions.ui \
-# src/forms/lineparallelthroughoptions.ui \
-# src/forms/linepolygon2options.ui \
-# src/forms/linepolygonoptions.ui \
-# src/forms/linerelangleoptions.ui \
-# src/forms/moverotateoptions.ui \
-# src/forms/arcoptions.ui \
-# src/forms/arctangentialoptions.ui \
-# src/forms/dimlinearoptions.ui \
-# src/forms/dimoptions.ui \
-# src/forms/roundoptions.ui \
-# src/forms/snapdistoptions.ui \
-# src/forms/splineoptions.ui \
-# src/forms/trimamountoptions.ui
-#
FORMS = \
src/forms/blockdialog.ui \
src/forms/cadtoolbar.ui \
src/forms/cadtoolbarsplines.ui \
src/forms/commandwidget.ui \
src/forms/coordinatewidget.ui \
+ src/forms/dimensionlabeleditor.ui \
+ src/forms/dlgarc.ui \
src/forms/dlgattributes.ui \
+ src/forms/dlgcircle.ui \
+ src/forms/dlgdimension.ui \
+ src/forms/dlgdimlinear.ui \
+ src/forms/dlgellipse.ui \
+ src/forms/dlghatch.ui \
src/forms/dlgimageoptions.ui \
src/forms/dlginitial.ui \
+ src/forms/dlginsert.ui \
+ src/forms/dlgline.ui \
+ src/forms/dlgmirror.ui \
+ src/forms/dlgmove.ui \
+ src/forms/dlgmoverotate.ui \
src/forms/dlgoptionsdrawing.ui \
src/forms/dlgoptionsgeneral.ui \
+ src/forms/dlgpoint.ui \
+ src/forms/dlgrotate.ui \
+ src/forms/dlgrotate2.ui \
+ src/forms/dlgscale.ui \
+ src/forms/dlgspline.ui \
src/forms/dlgtext.ui \
src/forms/exitdialog.ui \
src/forms/imageoptions.ui \
src/forms/layerdialog.ui \
src/forms/librarywidget.ui \
- src/forms/lineoptions.ui \
src/forms/mousewidget.ui \
src/forms/printpreviewoptions.ui \
src/forms/selectionwidget.ui \
Qt::MetaButton Qt::MetaModifier
Qt::Keypad Qt::KeypadModifier
Qt::KeyButtonMask Qt::KeyboardModifierMask
-#endif
/**
* Mouse button and keyboard state for mouse events.
*/
KeyButtonMask = Qt::KeyboardModifierMask,
Keypad = Qt::KeypadModifier
};
+#endif
//get rid of unnecessary shiaut like this:
#if 0
/**
* Wrapper for Qt.
*/
- static RS2::LineType qtToRsPenStyle(Qt::PenStyle s) {
- switch (s) {
+ static RS2::LineType qtToRsPenStyle(Qt::PenStyle s)
+ {
+ switch (s)
+ {
case Qt::NoPen:
return NoPen;
case Qt::SolidLine:
return SolidLine;
break;
}
- return SolidLine;
+
+ return SolidLine;
}
/**
* \brief Struct that stores a line type pattern (e.g. dash dot dot).
*/
- struct LineTypePatternStruct {
- double* pattern;
+ struct LineTypePatternStruct
+ {
+ double * pattern;
int num;
}
LineTypePattern;
/**
* Wrapper for Qt
*/
- /*
- static int qw(RS2::LineWidth w) {
- switch (w) {
- case Width00:
- return 1; // 0 is more accurate but quite slow
- break;
- case WidthByLayer:
- case WidthByBlock:
- case WidthDefault:
- return 1;
- break;
- case Width01:
- case Width02:
- case Width03:
- case Width04:
- case Width05:
- case Width06:
- case Width07:
- case Width08:
- return 1;
- break;
- case Width09:
- case Width10:
- return 3;
- break;
- case Width11:
- return 4;
- break;
- case Width12:
- case Width13:
- return 5;
- break;
- case Width14:
- return 6;
- break;
- case Width15:
- return 7;
- break;
- case Width16:
- return 8;
- break;
- case Width17:
- return 9;
- break;
- case Width18:
- case Width19:
- return 10;
- break;
- case Width20:
- return 12;
- break;
- case Width21:
- case Width22:
- case Width23:
- //case Width24:
- return 14;
- break;
- default:
- return (int)w;
- break;
- }
- return (int)w;
- }
- */
-
- /**
- * Wrapper for Qt
- */
- static LineWidth intToLineWidth(int w) {
- if (w==-3) {
+ static LineWidth intToLineWidth(int w)
+ {
+ if (w == -3)
+ {
return WidthDefault;
- } else if (w==-2) {
+ }
+ else if (w == -2)
+ {
return WidthByBlock;
- } else if (w==-1) {
+ }
+ else if (w == -1)
+ {
return WidthByLayer;
- } else if (w<3) {
+ }
+ else if (w < 3)
+ {
return Width00;
- } else if (w<8) {
+ }
+ else if (w < 8)
+ {
return Width01;
- } else if (w<12) {
+ }
+ else if (w < 12)
+ {
return Width02;
- } else if (w<14) {
+ }
+ else if (w < 14)
+ {
return Width03;
- } else if (w<17) {
+ }
+ else if (w < 17)
+ {
return Width04;
- } else if (w<19) {
+ }
+ else if (w < 19)
+ {
return Width05;
- } else if (w<23) {
+ }
+ else if (w < 23)
+ {
return Width06;
- } else if (w<28) {
+ }
+ else if (w < 28)
+ {
return Width07;
- } else if (w<33) {
+ }
+ else if (w < 33)
+ {
return Width08;
- } else if (w<38) {
+ }
+ else if (w < 38)
+ {
return Width09;
- } else if (w<46) {
+ }
+ else if (w < 46)
+ {
return Width10;
- } else if (w<52) {
+ }
+ else if (w < 52)
+ {
return Width11;
- } else if (w<57) {
+ }
+ else if (w < 57)
+ {
return Width12;
- } else if (w<66) {
+ }
+ else if (w < 66)
+ {
return Width13;
- } else if (w<76) {
+ }
+ else if (w < 76)
+ {
return Width14;
- } else if (w<86) {
+ }
+ else if (w < 86)
+ {
return Width15;
- } else if (w<96) {
+ }
+ else if (w < 96)
+ {
return Width16;
- } else if (w<104) {
+ }
+ else if (w < 104)
+ {
return Width17;
- } else if (w<114) {
+ }
+ else if (w < 114)
+ {
return Width18;
- } else if (w<131) {
+ }
+ else if (w < 131)
+ {
return Width19;
- } else if (w<150) {
+ }
+ else if (w < 150)
+ {
return Width20;
- } else if (w<180) {
+ }
+ else if (w < 180)
+ {
return Width21;
- } else if (w<206) {
+ }
+ else if (w < 206)
+ {
return Width22;
- } else {
+ }
+ else
+ {
return Width23;
}
}
/**
* Wrapper for Qt.
*/
- static Qt::CursorShape rsToQtCursorType(RS2::CursorType t) {
- switch (t) {
+ static Qt::CursorShape rsToQtCursorType(RS2::CursorType t)
+ {
+ switch (t)
+ {
case ArrowCursor:
return Qt::ArrowCursor;
break;
return Qt::ArrowCursor;
break;
}
- return Qt::ArrowCursor;
+
+ return Qt::ArrowCursor;
}
/**
/**
* Wrapper for Qt.
*/
- static QPrinter::PageSize rsToQtPaperFormat(RS2::PaperFormat f) {
+ static QPrinter::PageSize rsToQtPaperFormat(RS2::PaperFormat f)
+ {
QPrinter::PageSize ret;
- switch (f) {
+ switch (f)
+ {
case Custom:
ret = QPrinter::Custom;
break;
#include "rs_math.h"
+#include <assert.h> // For test()
+#include <math.h>
+#include <errno.h>
+#include "fparser.h"
#include "rs_debug.h"
/**
return res;
}
-/**
- * Evaluates a mathematical expression and returns the result.
- * If an error occured, ok will be set to false (if ok isn't NULL).
- */
-//double RS_Math::eval(const QString& expr, bool* ok);
-
/**
* Evaluates a mathematical expression and returns the result.
* If an error occured, ok will be set to false (if ok isn't NULL).
*/
double RS_Math::eval(const QString & expr, bool * ok)
{
-#ifndef RS_NO_FPARSER
if (expr.isEmpty())
{
if (ok != NULL)
if (ret >= 0)
{
- if (ok != NULL)
+ if (ok)
*ok = false;
return 0.0;
}
- if (ok != NULL)
+ if (ok)
*ok = true;
return fp.Eval(NULL);
-#else
- //std::cerr << "RS_Math::eval: No FParser support compiled in.\n";
- return expr.toDouble();
-#endif
}
/**
{
// Remove zeros at the end:
while (valStr.at(valStr.length() - 1) == '0')
- {
valStr.truncate(valStr.length() - 1);
- }
if (valStr.at(valStr.length() - 1) == '.')
- {
valStr.truncate(valStr.length() - 1);
- }
}
return valStr;
//#define _MT
//#endif
-#include <math.h>
-#include <errno.h>
#include <QtCore>
-#ifndef RS_NO_FPARSER
-#include "fparser.h"
-#endif
-
-#include "rs.h"
-
#define ARAD 57.29577951308232
#define RS_TOLERANCE 1.0e-10
#define RS_TOLERANCE_ANGLE 1.0e-8
-//typedef unsigned int uint;
-
/**
* Math functions.
*/
public:
static int round(double v);
static double pow(double x, double y);
-
- //static double abs(double v);
- //static int abs(int v);
static double rad2deg(double a);
static double deg2rad(double a);
static double rad2gra(double a);
static bool isSameDirection(double dir1, double dir2, double tol);
static double eval(const QString & expr, double def = 0.0);
static bool cmpDouble(double v1, double v2, double tol = 0.001);
-
- // Keep that in the header file for dynamic inclusion/exclusion.
- // (JLH: What kind of boneheaded crappy justification is that??!!??!!?)
static double eval(const QString & expr, bool * ok);
-
static QString doubleToString(double value, double prec);
static QString doubleToString(double value, int prec);
#include "vector.h"
+#include "rs.h" // For RS_MIN/MAXDOUBLE (!)
#include "rs_debug.h"
#include "rs_math.h"
#include "vectorsolutions.h"
+#include "rs.h" // For RS_MIN/MAXDOUBLE (!)
#include "rs_math.h"
/**
--- /dev/null
+// dimensionlabeleditor.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dimensionlabeleditor.h"
+
+//#include "rs_arc.h"
+//#include "drawing.h"
+//#include "rs_math.h"
+
+DimensionLabelEditor::DimensionLabelEditor(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QWidget(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DimensionLabelEditor::~DimensionLabelEditor()
+{
+}
+
+void DimensionLabelEditor::setLabel(const QString & l)
+{
+ int i0, i1a, i1b, i2;
+ QString label, tol1, tol2;
+ bool hasDiameter = false;
+
+ label = l;
+
+ if (label.at(0) == QChar(0x2205) || label.at(0) == QChar(0xF8))
+ {
+ hasDiameter = true;
+ ui.bDiameter->setChecked(true);
+ }
+
+ i0 = l.indexOf("\\S");
+
+ if (i0 >= 0)
+ {
+ i1a = l.indexOf("^ ", i0);
+ i1b = i1a + 1;
+
+ if (i1a < 0)
+ i1a = i1b = l.indexOf('^', i0);
+
+
+ if (i1a >= 0)
+ {
+ i2 = l.indexOf(';', i1b);
+ label = l.mid(0, i0);
+ tol1 = l.mid(i0 + 2, i1a - i0 - 2);
+ tol2 = l.mid(i1b + 1, i2 - i1b - 1);
+ }
+ }
+
+ ui.leLabel->setText(label.mid(hasDiameter));
+ ui.leTol1->setText(tol1);
+ ui.leTol2->setText(tol2);
+}
+
+QString DimensionLabelEditor::getLabel()
+{
+ QString l = ui.leLabel->text();
+
+ // diameter:
+ if (ui.bDiameter->isChecked())
+ {
+ if (l.isEmpty())
+ l = QString("%1<>").arg(QChar(0x2205));
+ else
+ l = QChar(0x2205) + l;
+ }
+
+ if (ui.leTol1->text().isEmpty() && ui.leTol2->text().isEmpty())
+ return l;
+ else
+ return l + "\\S" + ui.leTol1->text() + "^ " + ui.leTol2->text() + ";";
+}
+
+void DimensionLabelEditor::insertSign(const QString & s)
+{
+ ui.leLabel->insert(s.left(1));
+}
--- /dev/null
+#ifndef __DIMENSIONLABELEDITOR_H__
+#define __DIMENSIONLABELEDITOR_H__
+
+#include "ui_dimensionlabeleditor.h"
+
+class DimensionLabelEditor: public QWidget
+{
+ Q_OBJECT
+
+ public:
+ DimensionLabelEditor(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DimensionLabelEditor();
+
+ QString getLabel();
+
+ public slots:
+ void setLabel(const QString & l);
+ void insertSign(const QString & s);
+
+ private:
+ Ui::DimensionLabelEditor ui;
+};
+
+#endif // __DIMENSIONLABELEDITOR_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DimensionLabelEditor</class>
+ <widget class="QWidget" name="DimensionLabelEditor">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>220</width>
+ <height>118</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>220</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Dimension Label Editor</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="bgLabel">
+ <property name="title">
+ <string>Dimension Label:</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="text">
+ <string>Label:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="bDiameter">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="res/architektonas.qrc">
+ <normaloff>:/res/qg_dimdia.xpm</normaloff>:/res/qg_dimdia.xpm</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="leTol1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leTol2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel1">
+ <property name="text">
+ <string>Insert:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cbSymbol">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>ø (Diameter)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>° (Degree)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>± (Plus / Minus)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>¶ (Pi)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>× (Times)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>÷ (Division)</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>cbSymbol</sender>
+ <signal>activated(QString)</signal>
+ <receiver>DimensionLabelEditor</receiver>
+ <slot>insertSign(QString)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgarc.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgarc.h"
+
+#include "rs_arc.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgArc::DlgArc(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgArc::~DlgArc()
+{
+}
+
+void DlgArc::setArc(RS_Arc & a)
+{
+ arc = &a;
+ //pen = arc->getPen();
+ ui.wPen->setPen(arc->getPen(false), true, false, "Pen");
+ Drawing * graphic = arc->getGraphic();
+
+ if (graphic != NULL)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = arc->getLayer(false);
+
+ if (lay != NULL)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(arc->getCenter().x);
+ ui.leCenterX->setText(s);
+ s.setNum(arc->getCenter().y);
+ ui.leCenterY->setText(s);
+ s.setNum(arc->getRadius());
+ ui.leRadius->setText(s);
+ s.setNum(RS_Math::rad2deg(arc->getAngle1()));
+ ui.leAngle1->setText(s);
+ s.setNum(RS_Math::rad2deg(arc->getAngle2()));
+ ui.leAngle2->setText(s);
+ ui.cbReversed->setChecked(arc->isReversed());
+}
+
+void DlgArc::updateArc()
+{
+ arc->setCenter(Vector(RS_Math::eval(ui.leCenterX->text()),
+ RS_Math::eval(ui.leCenterY->text())));
+ arc->setRadius(RS_Math::eval(ui.leRadius->text()));
+ arc->setAngle1(RS_Math::deg2rad(RS_Math::eval(ui.leAngle1->text())));
+ arc->setAngle2(RS_Math::deg2rad(RS_Math::eval(ui.leAngle2->text())));
+ arc->setReversed(ui.cbReversed->isChecked());
+ arc->setPen(ui.wPen->getPen());
+ arc->setLayer(ui.cbLayer->currentText());
+ arc->calculateEndpoints();
+ arc->calculateBorders();
+}
--- /dev/null
+#ifndef __DLGARC_H__
+#define __DLGARC_H__
+
+#include "ui_dlgarc.h"
+
+class RS_Arc;
+
+class DlgArc: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgArc(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgArc();
+
+ public slots:
+ void setArc(RS_Arc & a);
+ void updateArc();
+
+ private:
+ RS_Arc * arc;
+
+ private:
+ Ui::DlgArc ui;
+};
+
+#endif // __DLGARC_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgArc</class>
+ <widget class="QDialog" name="DlgArc">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>380</width>
+ <height>251</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Arc</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="2" column="0">
+ <widget class="QLabel" name="lEndX">
+ <property name="text">
+ <string>Radius:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leRadius">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="lCenterY">
+ <property name="text">
+ <string>Center (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="leCenterY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="lCenterX">
+ <property name="text">
+ <string>Center (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="leCenterX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lAngle1">
+ <property name="text">
+ <string>Start Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="leAngle1">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLineEdit" name="leAngle2">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="lAngle2">
+ <property name="text">
+ <string>End Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="6" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QCheckBox" name="cbReversed">
+ <property name="text">
+ <string>Reversed</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>leCenterX</tabstop>
+ <tabstop>leCenterY</tabstop>
+ <tabstop>leRadius</tabstop>
+ <tabstop>leAngle1</tabstop>
+ <tabstop>leAngle2</tabstop>
+ <tabstop>cbReversed</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgArc</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgArc</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgcircle.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgcircle.h"
+
+#include "rs_circle.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgCircle::DlgCircle(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgCircle::~DlgCircle()
+{
+}
+
+void DlgCircle::setCircle(RS_Circle & c)
+{
+ circle = &c;
+ //pen = circle->getPen();
+ ui.wPen->setPen(circle->getPen(false), true, false, "Pen");
+ Drawing * graphic = circle->getGraphic();
+
+ if (graphic != NULL)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = circle->getLayer(false);
+
+ if (lay != NULL)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(circle->getCenter().x);
+ ui.leCenterX->setText(s);
+ s.setNum(circle->getCenter().y);
+ ui.leCenterY->setText(s);
+ s.setNum(circle->getRadius());
+ ui.leRadius->setText(s);
+}
+
+void DlgCircle::updateCircle()
+{
+ circle->setCenter(Vector(RS_Math::eval(ui.leCenterX->text()),
+ RS_Math::eval(ui.leCenterY->text())));
+ circle->setRadius(RS_Math::eval(ui.leRadius->text()));
+ circle->setPen(ui.wPen->getPen());
+ circle->setLayer(ui.cbLayer->currentText());
+ circle->calculateBorders();
+}
--- /dev/null
+#ifndef __DLGCIRCLE_H__
+#define __DLGCIRCLE_H__
+
+#include "ui_dlgcircle.h"
+
+class RS_Circle;
+
+class DlgCircle: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgCircle(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgCircle();
+
+ public slots:
+ void setCircle(RS_Circle & c);
+ void updateCircle();
+
+ private:
+ RS_Circle * circle;
+
+ private:
+ Ui::DlgCircle ui;
+};
+
+#endif // __DLGCIRCLE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgCircle</class>
+ <widget class="QDialog" name="DlgCircle">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>380</width>
+ <height>192</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Circle</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="2" column="0">
+ <widget class="QLabel" name="lEndX">
+ <property name="text">
+ <string>Radius:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leRadius">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="lCenterY">
+ <property name="text">
+ <string>Center (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="leCenterY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="lCenterX">
+ <property name="text">
+ <string>Center (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="leCenterX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="3" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>leCenterX</tabstop>
+ <tabstop>leCenterY</tabstop>
+ <tabstop>leRadius</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgCircle</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgCircle</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgdimension.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgdimension.h"
+
+#include "rs_dimension.h"
+#include "drawing.h"
+
+DlgDimension::DlgDimension(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgDimension::~DlgDimension()
+{
+}
+
+void DlgDimension::setDim(RS_Dimension & d)
+{
+ dim = &d;
+ ui.wPen->setPen(dim->getPen(false), true, false, "Pen");
+ Drawing * graphic = dim->getGraphic();
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = dim->getLayer(false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ ui.wLabel->setLabel(dim->getLabel(false));
+}
+
+void DlgDimension::updateDim()
+{
+ dim->setLabel(ui.wLabel->getLabel());
+}
--- /dev/null
+#ifndef __DLGDIMENSION_H__
+#define __DLGDIMENSION_H__
+
+#include "ui_dlgdimension.h"
+
+class RS_Dimension;
+
+class DlgDimension: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgDimension(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgDimension();
+
+ public slots:
+ void setDim(RS_Dimension & d);
+ void updateDim();
+
+ private:
+ RS_Dimension * dim;
+
+ private:
+ Ui::DlgDimension ui;
+};
+
+#endif // __DLGDIMENSION_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgDimension</class>
+ <widget class="QDialog" name="DlgDimension">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>424</width>
+ <height>218</height>
+ </rect>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Dimension</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="DimensionLabelEditor" name="wLabel" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer1">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>79</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ <customwidget>
+ <class>DimensionLabelEditor</class>
+ <extends>QWidget</extends>
+ <header>dimensionlabeleditor.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgDimension</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgDimension</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgdimlinear.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgdimlinear.h"
+
+#include "rs_dimlinear.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgDimLinear::DlgDimLinear(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgDimLinear::~DlgDimLinear()
+{
+}
+
+void DlgDimLinear::setDim(RS_DimLinear & d)
+{
+ dim = &d;
+ ui.wPen->setPen(dim->getPen(false), true, false, "Pen");
+ Drawing * graphic = dim->getGraphic();
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = dim->getLayer(false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ ui.wLabel->setLabel(dim->getLabel(false));
+ ui.leAngle->setText(QString("%1").arg(RS_Math::rad2deg(dim->getAngle())));
+}
+
+void DlgDimLinear::updateDim()
+{
+ dim->setLabel(ui.wLabel->getLabel());
+ dim->setAngle(RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text(), 0.0)));
+}
--- /dev/null
+#ifndef __DLGDIMLINEAR_H__
+#define __DLGDIMLINEAR_H__
+
+#include "ui_dlgdimlinear.h"
+
+class RS_DimLinear;
+
+class DlgDimLinear: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgDimLinear(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgDimLinear();
+
+ public slots:
+ void setDim(RS_DimLinear & d);
+ void updateDim();
+
+ private:
+ RS_DimLinear * dim;
+
+ private:
+ Ui::DlgDimLinear ui;
+};
+
+#endif // __DLGDIMLINEAR_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgDimLinear</class>
+ <widget class="QDialog" name="DlgDimLinear">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>424</width>
+ <height>218</height>
+ </rect>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Linear Dimension</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="DimensionLabelEditor" name="wLabel" native="true"/>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="bgGeometry">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lAngle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>19</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Plain</enum>
+ </property>
+ <property name="text">
+ <string>Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leAngle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>19</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer1">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>79</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ <customwidget>
+ <class>DimensionLabelEditor</class>
+ <extends>QWidget</extends>
+ <header>dimensionlabeleditor.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgDimLinear</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgDimLinear</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgellipse.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgellipse.h"
+
+#include "rs_ellipse.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgEllipse::DlgEllipse(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgEllipse::~DlgEllipse()
+{
+}
+
+void DlgEllipse::setEllipse(RS_Ellipse & e)
+{
+ ellipse = &e;
+ //pen = ellipse->getPen();
+ ui.wPen->setPen(ellipse->getPen(false), true, false, "Pen");
+ Drawing * graphic = ellipse->getGraphic();
+
+ if (graphic != NULL)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = ellipse->getLayer(false);
+
+ if (lay != NULL)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(ellipse->getCenter().x);
+ ui.leCenterX->setText(s);
+ s.setNum(ellipse->getCenter().y);
+ ui.leCenterY->setText(s);
+ s.setNum(ellipse->getMajorP().magnitude());
+ ui.leMajor->setText(s);
+ s.setNum(ellipse->getMajorP().magnitude() * ellipse->getRatio());
+ ui.leMinor->setText(s);
+ s.setNum(RS_Math::rad2deg(ellipse->getMajorP().angle()));
+ ui.leRotation->setText(s);
+ s.setNum(RS_Math::rad2deg(ellipse->getAngle1()));
+ ui.leAngle1->setText(s);
+ s.setNum(RS_Math::rad2deg(ellipse->getAngle2()));
+ ui.leAngle2->setText(s);
+ ui.cbReversed->setChecked(ellipse->isReversed());
+}
+
+void DlgEllipse::updateEllipse()
+{
+ ellipse->setCenter(Vector(RS_Math::eval(ui.leCenterX->text()),
+ RS_Math::eval(ui.leCenterY->text())));
+ Vector v;
+ v.setPolar(RS_Math::eval(ui.leMajor->text()),
+ RS_Math::deg2rad(RS_Math::eval(ui.leRotation->text())));
+ ellipse->setMajorP(v);
+
+ if (RS_Math::eval(ui.leMajor->text()) > 1.0e-6)
+ ellipse->setRatio(RS_Math::eval(ui.leMinor->text()) / RS_Math::eval(ui.leMajor->text()));
+ else
+ ellipse->setRatio(1.0);
+
+ ellipse->setAngle1(RS_Math::deg2rad(RS_Math::eval(ui.leAngle1->text())));
+ ellipse->setAngle2(RS_Math::deg2rad(RS_Math::eval(ui.leAngle2->text())));
+ ellipse->setReversed(ui.cbReversed->isChecked());
+ ellipse->setPen(ui.wPen->getPen());
+ ellipse->setLayer(ui.cbLayer->currentText());
+}
--- /dev/null
+#ifndef __DLGELLIPSE_H__
+#define __DLGELLIPSE_H__
+
+#include "ui_dlgellipse.h"
+
+class RS_Ellipse;
+
+class DlgEllipse: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgEllipse(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgEllipse();
+
+ public slots:
+ void setEllipse(RS_Ellipse & e);
+ void updateEllipse();
+
+ private:
+ RS_Ellipse * ellipse;
+
+ private:
+ Ui::DlgEllipse ui;
+};
+
+#endif // __DLGELLIPSE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgEllipse</class>
+ <widget class="QDialog" name="DlgEllipse">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>394</width>
+ <height>307</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Ellipse</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="1" column="0">
+ <widget class="QLabel" name="lCenterY">
+ <property name="text">
+ <string>Center (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="leCenterY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="lCenterX">
+ <property name="text">
+ <string>Center (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="leCenterX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="8" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="lAngle2">
+ <property name="text">
+ <string>End Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QLineEdit" name="leAngle2">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QLineEdit" name="leAngle1">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="lAngle1">
+ <property name="text">
+ <string>Start Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="lRotation">
+ <property name="text">
+ <string>Rotation:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLineEdit" name="leRotation">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="leMinor">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lMinor">
+ <property name="text">
+ <string>Minor:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="lMajor">
+ <property name="text">
+ <string>Major:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leMajor">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" colspan="2">
+ <widget class="QCheckBox" name="cbReversed">
+ <property name="text">
+ <string>Reversed</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>leCenterX</tabstop>
+ <tabstop>leCenterY</tabstop>
+ <tabstop>leMajor</tabstop>
+ <tabstop>leMinor</tabstop>
+ <tabstop>leRotation</tabstop>
+ <tabstop>leAngle1</tabstop>
+ <tabstop>leAngle2</tabstop>
+ <tabstop>cbReversed</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgEllipse</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgEllipse</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlghatch.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlghatch.h"
+
+//#include "rs_ellipse.h"
+//#include "drawing.h"
+//#include "rs_math.h"
+#include "rs_entitycontainer.h"
+#include "rs_hatch.h"
+#include "rs_pattern.h"
+#include "rs_patternlist.h"
+#include "settings.h"
+
+DlgHatch::DlgHatch(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ pattern = NULL;
+ hatch = NULL;
+ isNew = false;
+
+ preview = new RS_EntityContainer();
+ ui.gvPreview->setContainer(preview);
+ ui.gvPreview->setBorders(15, 15, 15, 15);
+
+ ui.cbPattern->init();
+}
+
+DlgHatch::~DlgHatch()
+{
+ if (isNew)
+ {
+ settings.beginGroup("Draw");
+ settings.setValue("HatchSolid", ui.cbSolid->isChecked());
+ settings.setValue("HatchPattern", ui.cbPattern->currentText());
+ settings.setValue("HatchScale", ui.leScale->text());
+ settings.setValue("HatchAngle", ui.leAngle->text());
+ settings.setValue("HatchPreview", ui.cbEnablePreview->isChecked());
+ settings.endGroup();
+ }
+
+ delete preview;
+}
+
+void DlgHatch::polish()
+{
+//WTF is this supposed to be for???
+// QDialog::polish();
+ ui.gvPreview->zoomAuto();
+}
+
+void DlgHatch::showEvent(QShowEvent * e)
+{
+ QDialog::showEvent(e);
+ ui.gvPreview->zoomAuto();
+}
+
+void DlgHatch::setHatch(RS_Hatch & h, bool isNew)
+{
+ hatch = &h;
+ this->isNew = isNew;
+
+ settings.beginGroup("Draw");
+ bool enablePrev = settings.value("HatchPreview", false).toBool();
+ settings.endGroup();
+
+ ui.cbEnablePreview->setChecked(enablePrev);
+
+ // read defaults from config file:
+ if (isNew)
+ {
+ settings.beginGroup("Draw");
+ bool solid = settings.value("HatchSolid", false).toBool();
+ QString pat = settings.value("HatchPattern", "ANSI31").toString();
+ QString scale = settings.value("HatchScale", "1.0").toString();
+ QString angle = settings.value("HatchAngle", "0.0").toString();
+ settings.endGroup();
+
+ ui.cbSolid->setChecked(solid);
+ setPattern(pat);
+ ui.leScale->setText(scale);
+ ui.leAngle->setText(angle);
+ }
+ // initialize dialog based on given hatch:
+ else
+ {
+ ui.cbSolid->setChecked(hatch->isSolid());
+ setPattern(hatch->getPattern());
+ QString s;
+ s.setNum(hatch->getScale());
+ ui.leScale->setText(s);
+ s.setNum(RS_Math::rad2deg(hatch->getAngle()));
+ ui.leAngle->setText(s);
+ }
+}
+
+void DlgHatch::updateHatch()
+{
+ if (!hatch)
+ return;
+
+ hatch->setSolid(ui.cbSolid->isChecked());
+ hatch->setPattern(ui.cbPattern->currentText());
+ hatch->setScale(RS_Math::eval(ui.leScale->text()));
+ hatch->setAngle(RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text())));
+}
+
+void DlgHatch::setPattern(const QString & p)
+{
+ if (!RS_PATTERNLIST->contains(p))
+// ui.cbPattern->insertItem(p);
+ ui.cbPattern->addItem(p);
+
+// ui.cbPattern->setCurrentText(p);
+ ui.cbPattern->setCurrentIndex(ui.cbPattern->findText(p));
+ pattern = ui.cbPattern->getPattern();
+}
+
+void DlgHatch::resizeEvent(QResizeEvent *)
+{
+ updatePreview(NULL);
+}
+
+void DlgHatch::updatePreview()
+{
+ updatePreview(NULL);
+}
+
+void DlgHatch::updatePreview(RS_Pattern *)
+{
+ if (!preview)
+ return;
+
+ if (!hatch || !ui.cbEnablePreview->isChecked())
+ {
+ preview->clear();
+ ui.gvPreview->zoomAuto();
+ return;
+ }
+
+ QString patName = ui.cbPattern->currentText();
+ bool isSolid = ui.cbSolid->isChecked();
+ double prevSize;
+ //double scale = RS_Math::eval(leScale->text(), 1.0);
+ double angle = RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text(), 0.0));
+
+ if (pattern != NULL)
+ prevSize = pattern->getSize().x * 10;
+ else
+ prevSize = 10.0;
+
+ preview->clear();
+
+ RS_Hatch * prevHatch = new RS_Hatch(preview, RS_HatchData(isSolid, 0.2, angle, patName));
+ prevHatch->setPen(hatch->getPen());
+
+ RS_EntityContainer * loop = new RS_EntityContainer(prevHatch);
+ loop->setPen(RS_Pen(RS2::FlagInvalid));
+ loop->addEntity(new RS_Line(loop, RS_LineData(Vector(0.0, 0.0), Vector(10.0, 0.0))));
+ loop->addEntity(new RS_Line(loop, RS_LineData(Vector(10.0, 0.0), Vector(10.0, 10.0))));
+ loop->addEntity(new RS_Line(loop, RS_LineData(Vector(10.0, 10.0), Vector(0.0, 10.0))));
+ loop->addEntity(new RS_Line(loop, RS_LineData(Vector(0.0, 10.0), Vector(0.0, 0.0))));
+ prevHatch->addEntity(loop);
+ preview->addEntity(prevHatch);
+
+ if (!isSolid)
+ prevHatch->update();
+
+ ui.gvPreview->zoomAuto();
+}
--- /dev/null
+#ifndef __DLGHATCH_H__
+#define __DLGHATCH_H__
+
+#include "ui_dlghatch.h"
+
+class RS_EntityContainer;
+class RS_Pattern;
+class RS_Hatch;
+
+class DlgHatch: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgHatch(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgHatch();
+
+ public slots:
+ void polish();
+ void showEvent(QShowEvent * e);
+ void setHatch(RS_Hatch & h, bool isNew);
+ void updateHatch();
+ void setPattern(const QString & p);
+ void resizeEvent(QResizeEvent *);
+ void updatePreview();
+ void updatePreview(RS_Pattern *);
+
+ private:
+ RS_EntityContainer * preview;
+ bool isNew;
+ RS_Pattern * pattern;
+ RS_Hatch * hatch;
+
+ private:
+ Ui::DlgHatch ui;
+};
+
+#endif // __DLGHATCH_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgHatch</class>
+ <widget class="QDialog" name="DlgHatch">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>438</width>
+ <height>294</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Choose Hatch Attributes</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="bgParameter">
+ <property name="title">
+ <string>Pattern</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leScale"/>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="leAngle"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lAngle">
+ <property name="text">
+ <string>Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="lScale">
+ <property name="text">
+ <string>Scale:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QG_PatternBox" name="cbPattern" native="true"/>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QCheckBox" name="cbSolid">
+ <property name="text">
+ <string>Solid Fill</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="bgPreview">
+ <property name="title">
+ <string>Preview</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="cbEnablePreview">
+ <property name="text">
+ <string>Enable Preview</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_GraphicView" name="gvPreview" native="true"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <spacer name="Horizontal Spacing2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_PatternBox</class>
+ <extends>QWidget</extends>
+ <header>qg_patternbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>QG_GraphicView</class>
+ <extends>QWidget</extends>
+ <header>qg_graphicview.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>cbSolid</tabstop>
+ <tabstop>leScale</tabstop>
+ <tabstop>leAngle</tabstop>
+ <tabstop>cbEnablePreview</tabstop>
+ <tabstop>buttonOk</tabstop>
+ <tabstop>buttonCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>cbPattern</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leScale</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>lScale</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leAngle</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>lAngle</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbPattern</sender>
+ <signal>patternChanged(RS_Pattern*)</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>updatePreview(RS_Pattern*)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbSolid</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>updatePreview()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>leAngle</sender>
+ <signal>textChanged(QString)</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>updatePreview()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>cbEnablePreview</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>DlgHatch</receiver>
+ <slot>updatePreview()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlginsert.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlginsert.h"
+
+#include "rs_insert.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgInsert::DlgInsert(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgInsert::~DlgInsert()
+{
+}
+
+void DlgInsert::setInsert(RS_Insert & i)
+{
+ insert = &i;
+ //pen = insert->getPen();
+ ui.wPen->setPen(insert->getPen(false), true, false, "Pen");
+ Drawing * graphic = insert->getGraphic();
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = insert->getLayer(false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(insert->getInsertionPoint().x);
+ ui.leInsertionPointX->setText(s);
+ s.setNum(insert->getInsertionPoint().y);
+ ui.leInsertionPointY->setText(s);
+ s.setNum(insert->getScale().x);
+ ui.leScale->setText(s);
+ s.setNum(RS_Math::rad2deg(insert->getAngle()));
+ ui.leAngle->setText(s);
+ s.setNum(insert->getRows());
+ ui.leRows->setText(s);
+ s.setNum(insert->getCols());
+ ui.leCols->setText(s);
+ s.setNum(insert->getSpacing().x);
+ ui.leRowSpacing->setText(s);
+ s.setNum(insert->getSpacing().y);
+ ui.leColSpacing->setText(s);
+}
+
+void DlgInsert::updateInsert()
+{
+ insert->setInsertionPoint(Vector(RS_Math::eval(ui.leInsertionPointX->text()),
+ RS_Math::eval(ui.leInsertionPointY->text())));
+ insert->setScale(Vector(RS_Math::eval(ui.leScale->text()),
+ RS_Math::eval(ui.leScale->text())));
+ insert->setAngle(RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text())));
+ insert->setRows(RS_Math::round(RS_Math::eval(ui.leRows->text())));
+ insert->setCols(RS_Math::round(RS_Math::eval(ui.leCols->text())));
+ insert->setSpacing(Vector(RS_Math::eval(ui.leRowSpacing->text()),
+ RS_Math::eval(ui.leColSpacing->text())));
+ insert->setPen(ui.wPen->getPen());
+ insert->setLayer(ui.cbLayer->currentText());
+}
--- /dev/null
+#ifndef __DLGINSERT_H__
+#define __DLGINSERT_H__
+
+#include "ui_dlginsert.h"
+
+class RS_Insert;
+
+class DlgInsert: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgInsert(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgInsert();
+
+ public slots:
+ void setInsert(RS_Insert & i);
+ void updateInsert();
+
+ private:
+ RS_Insert * insert;
+
+ private:
+ Ui::DlgInsert ui;
+};
+
+#endif // __DLGINSERT_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgInsert</class>
+ <widget class="QDialog" name="DlgInsert">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>457</width>
+ <height>310</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Insert</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="8" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="8" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="leInsertionPointY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="leInsertionPointX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="lInsertionPointX">
+ <property name="text">
+ <string>Insertion point (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="lInsertionPointY">
+ <property name="text">
+ <string>Insertion point (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="leScale">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="lFactor">
+ <property name="text">
+ <string>Scale:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lAngle">
+ <property name="text">
+ <string>Angle:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="leAngle">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="lRows">
+ <property name="text">
+ <string>Rows:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLineEdit" name="leRows">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QLineEdit" name="leCols">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="lCols">
+ <property name="text">
+ <string>Columns:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="lRowSpacing">
+ <property name="text">
+ <string>Row Spacing:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QLineEdit" name="leRowSpacing">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1">
+ <widget class="QLineEdit" name="leColSpacing">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0">
+ <widget class="QLabel" name="lColSpacing">
+ <property name="text">
+ <string>Column Spacing:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>leInsertionPointX</tabstop>
+ <tabstop>leInsertionPointY</tabstop>
+ <tabstop>leScale</tabstop>
+ <tabstop>leAngle</tabstop>
+ <tabstop>leRows</tabstop>
+ <tabstop>leCols</tabstop>
+ <tabstop>leRowSpacing</tabstop>
+ <tabstop>leColSpacing</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgInsert</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgInsert</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgline.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgline.h"
+
+#include "rs_insert.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgLine::DlgLine(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgLine::~DlgLine()
+{
+}
+
+void DlgLine::setLine(RS_Line & l)
+{
+ line = &l;
+ //pen = line->getPen();
+ ui.wPen->setPen(line->getPen(false), true, false, "Pen");
+ Drawing * graphic = line->getGraphic();
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = line->getLayer(false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(line->getStartpoint().x);
+ ui.leStartX->setText(s);
+ s.setNum(line->getStartpoint().y);
+ ui.leStartY->setText(s);
+ s.setNum(line->getEndpoint().x);
+ ui.leEndX->setText(s);
+ s.setNum(line->getEndpoint().y);
+ ui.leEndY->setText(s);
+}
+
+void DlgLine::updateLine()
+{
+ line->setStartpoint(Vector(RS_Math::eval(ui.leStartX->text()),
+ RS_Math::eval(ui.leStartY->text())));
+ line->setEndpoint(Vector(RS_Math::eval(ui.leEndX->text()),
+ RS_Math::eval(ui.leEndY->text())));
+ line->setPen(ui.wPen->getPen());
+ line->setLayer(ui.cbLayer->currentText());
+}
--- /dev/null
+#ifndef __DLGLINE_H__
+#define __DLGLINE_H__
+
+#include "ui_dlgline.h"
+
+class RS_Line;
+
+class DlgLine: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgLine(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgLine();
+
+ public slots:
+ void setLine(RS_Line & l);
+ void updateLine();
+
+ private:
+ RS_Line * line;
+
+ private:
+ Ui::DlgLine ui;
+};
+
+#endif // __DLGLINE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgLine</class>
+ <widget class="QDialog" name="DlgLine">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>457</width>
+ <height>195</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Line</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="5" column="0">
+ <widget class="QLabel" name="lEndX">
+ <property name="text">
+ <string>End point (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QLineEdit" name="leEndX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1">
+ <widget class="QLineEdit" name="leEndY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0">
+ <widget class="QLabel" name="lEndY">
+ <property name="text">
+ <string>End point (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="lStartY">
+ <property name="text">
+ <string>Start point (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="leStartY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="lStartX">
+ <property name="text">
+ <string>Start point (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="leStartX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="8" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>leStartX</tabstop>
+ <tabstop>leStartY</tabstop>
+ <tabstop>leEndX</tabstop>
+ <tabstop>leEndY</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgLine</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgLine</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgmirror.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgmirror.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgMirror::DlgMirror(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ numberMode = settings.value("MirrorMode", 0).toInt();
+ useCurrentLayer = settings.value("MirrorUseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("MirrorUseCurrentAttributes", false).toBool();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgMirror::~DlgMirror()
+{
+ settings.beginGroup("Modify");
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("MirrorMode", numberMode);
+ settings.setValue("MirrorUseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("MirrorUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgMirror::setData(RS_MirrorData * d)
+{
+ data = d;
+}
+
+void DlgMirror::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->copy = false;
+ else if (ui.rbCopy->isChecked())
+ data->copy = true;
+
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGMIRROR_H__
+#define __DLGMIRROR_H__
+
+#include "ui_dlgmirror.h"
+
+class RS_MirrorData;
+
+class DlgMirror: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgMirror(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgMirror();
+
+ public slots:
+ void setData(RS_MirrorData * d);
+ void updateData();
+
+ private:
+ RS_MirrorData * data;
+ QString copies;
+ int numberMode;
+ bool useCurrentLayer;
+ bool useCurrentAttributes;
+
+ private:
+ Ui::DlgMirror ui;
+// void init();
+// void destroy();
+};
+
+#endif // __DLGMIRROR_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgMirror</class>
+ <widget class="QDialog" name="DlgMirror">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>342</width>
+ <height>192</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Mirroring Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="1">
+ <widget class="QLabel" name="lHelp">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifymirror.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" rowspan="3">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMirror</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMirror</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgmove.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgmove.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgMove::DlgMove(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ copies = settings.value("MoveCopies", "10").toString();
+ numberMode = settings.value("MoveMode", 0).toInt();
+ useCurrentLayer = settings.value("MoveUseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("MoveUseCurrentAttributes", false).toBool();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ case 2:
+ ui.rbMultiCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.leNumber->setText(copies);
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgMove::~DlgMove()
+{
+ settings.beginGroup("Modify");
+ settings.setValue("MoveCopies", ui.leNumber->text());
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("MoveMode", numberMode);
+ settings.setValue("MoveUseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("MoveUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgMove::setData(RS_MoveData * d)
+{
+ data = d;
+}
+
+void DlgMove::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->number = 0;
+ else if (ui.rbCopy->isChecked())
+ data->number = 1;
+ else
+ data->number = ui.leNumber->text().toInt();
+
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGMOVE_H__
+#define __DLGMOVE_H__
+
+#include "ui_dlgmove.h"
+
+class RS_MoveData;
+
+class DlgMove: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgMove(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgMove();
+
+ public slots:
+ void setData(RS_MoveData * d);
+ void updateData();
+
+ private:
+ bool useCurrentAttributes;
+ bool useCurrentLayer;
+ int numberMode;
+ QString copies;
+ RS_MoveData * data;
+
+ private:
+ Ui::DlgMove ui;
+};
+
+#endif // __DLGMOVE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgMove</class>
+ <widget class="QDialog" name="DlgMove">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>326</width>
+ <height>192</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Moving Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="1">
+ <widget class="QLabel" name="lHelp">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifymove.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" rowspan="3">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbMultiCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Multiple Copies</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leNumber"/>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>130</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+O</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>rbMove</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbMultiCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMove</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMove</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgmoverotate.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/11/2010 Created this file. :-)
+//
+
+#include "dlgmoverotate.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgMoveRotate::DlgMoveRotate(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ copies = settings.value("MoveRotateCopies", "10").toString();
+ numberMode = settings.value("MoveRotateMode", 0).toInt();
+ useCurrentLayer = settings.value("MoveRotateUseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("MoveRotateUseCurrentAttributes", false).toBool();
+ angle = settings.value("MoveRotateAngle", "0.0").toString();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ case 2:
+ ui.rbMultiCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.leNumber->setText(copies);
+ ui.leAngle->setText(angle);
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgMoveRotate::~DlgMoveRotate()
+{
+ settings.beginGroup("Modify");
+ settings.setValue("MoveRotateCopies", ui.leNumber->text());
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("MoveRotateMode", numberMode);
+ settings.setValue("MoveRotateAngle", ui.leAngle->text());
+ settings.setValue("MoveRotateUseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("MoveRotateUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgMoveRotate::setData(RS_MoveRotateData * d)
+{
+ data = d;
+ ui.leAngle->setText(QString("%1").arg(RS_Math::rad2deg(data->angle)));
+}
+
+void DlgMoveRotate::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->number = 0;
+ else if (ui.rbCopy->isChecked())
+ data->number = 1;
+ else
+ data->number = ui.leNumber->text().toInt();
+
+ data->angle = RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text()));
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGMOVEROTATE_H__
+#define __DLGMOVEROTATE_H__
+
+#include "ui_dlgmoverotate.h"
+
+class RS_MoveRotateData;
+
+class DlgMoveRotate: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgMoveRotate(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgMoveRotate();
+
+ public slots:
+ void setData(RS_MoveRotateData * d);
+ void updateData();
+
+ private:
+ bool useCurrentAttributes;
+ bool useCurrentLayer;
+ int numberMode;
+ QString copies;
+ RS_MoveRotateData * data;
+ QString angle;
+
+ private:
+ Ui::DlgMoveRotate ui;
+};
+
+#endif // __DLGMOVEROTATE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgMoveRotate</class>
+ <widget class="QDialog" name="DlgMoveRotate">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>338</width>
+ <height>219</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Move/Rotate Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="1" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="lHelp">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifymoverotate.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lAngle">
+ <property name="text">
+ <string>&Angle (a):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leAngle</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer13">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>41</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leAngle"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbMultiCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Multiple Copies</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leNumber"/>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <tabstops>
+ <tabstop>rbMove</tabstop>
+ <tabstop>rbCopy</tabstop>
+ <tabstop>rbMultiCopy</tabstop>
+ <tabstop>leNumber</tabstop>
+ <tabstop>leAngle</tabstop>
+ <tabstop>cbCurrentAttributes</tabstop>
+ <tabstop>cbCurrentLayer</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>rbMove</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbMultiCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMoveRotate</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgMoveRotate</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgpoint.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/12/2010 Created this file. :-)
+//
+
+#include "dlgpoint.h"
+
+#include "rs_point.h"
+#include "drawing.h"
+#include "rs_math.h"
+
+DlgPoint::DlgPoint(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgPoint::~DlgPoint()
+{
+}
+
+void DlgPoint::setPoint(RS_Point & p)
+{
+ point = &p;
+
+ ui.wPen->setPen(point->getPen(false), true, false, "Pen");
+ Drawing * graphic = point->getGraphic();
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ RS_Layer * lay = point->getLayer(false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(point->getPos().x);
+ ui.lePosX->setText(s);
+ s.setNum(point->getPos().y);
+ ui.lePosY->setText(s);
+}
+
+void DlgPoint::updatePoint()
+{
+ point->setPos(Vector(RS_Math::eval(ui.lePosX->text()),
+ RS_Math::eval(ui.lePosY->text())));
+ point->setPen(ui.wPen->getPen());
+ point->setLayer(ui.cbLayer->currentText());
+}
--- /dev/null
+#ifndef __DLGPOINT_H__
+#define __DLGPOINT_H__
+
+#include "ui_dlgpoint.h"
+#include "rs_pen.h"
+
+class RS_Point;
+
+class DlgPoint: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgPoint(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgPoint();
+
+ public slots:
+ void setPoint(RS_Point & p);
+ void updatePoint();
+
+ private:
+ RS_Pen pen;
+ RS_Point * point;
+
+ private:
+ Ui::DlgPoint ui;
+};
+
+#endif // __DLGPOINT_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgPoint</class>
+ <widget class="QDialog" name="DlgPoint">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>457</width>
+ <height>192</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Point</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lLayer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Layer:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QG_LayerBox" name="cbLayer" native="true"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="WidgetPen" name="wPen" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="buttonGroup8">
+ <property name="title">
+ <string>Geometry</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="3" column="0">
+ <widget class="QLabel" name="lPosY">
+ <property name="text">
+ <string>Position (y):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="lePosY">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="lPosX">
+ <property name="text">
+ <string>Position (x):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="lePosX">
+ <property name="minimumSize">
+ <size>
+ <width>64</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="1">
+ <spacer name="spacer61">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="8" column="0">
+ <spacer name="spacer58">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QG_LayerBox</class>
+ <extends>QWidget</extends>
+ <header>qg_layerbox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>WidgetPen</class>
+ <extends>QWidget</extends>
+ <header>widgetpen.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>lePosX</tabstop>
+ <tabstop>lePosY</tabstop>
+ <tabstop>bOk</tabstop>
+ <tabstop>bCancel</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgPoint</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgPoint</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgrotate.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/12/2010 Created this file. :-)
+//
+
+#include "dlgrotate.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgRotate::DlgRotate(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ copies = settings.value("RotateCopies", "10").toString();
+ numberMode = settings.value("RotateMode", 0).toInt();
+ angle = settings.value("RotateAngle", "90.0").toString();
+ useCurrentLayer = settings.value("RotateUseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("RotateUseCurrentAttributes", false).toBool();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ case 2:
+ ui.rbMultiCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.leNumber->setText(copies);
+ ui.leAngle->setText(angle);
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgRotate::~DlgRotate()
+{
+ settings.beginGroup("Modify");
+ settings.setValue("RotateCopies", ui.leNumber->text());
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("RotateMode", numberMode);
+ settings.setValue("RotateAngle", ui.leAngle->text());
+ settings.setValue("RotateUseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("RotateUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgRotate::setData(RS_RotateData * d)
+{
+ data = d;
+}
+
+void DlgRotate::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->number = 0;
+ else if (ui.rbCopy->isChecked())
+ data->number = 1;
+ else
+ data->number = ui.leNumber->text().toInt();
+
+ data->angle = RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text()));
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGROTATE_H__
+#define __DLGROTATE_H__
+
+#include "ui_dlgrotate.h"
+
+class RS_RotateData;
+
+class DlgRotate: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgRotate(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgRotate();
+
+ public slots:
+ void setData(RS_RotateData * d);
+ void updateData();
+
+ private:
+ bool useCurrentAttributes;
+ bool useCurrentLayer;
+ int numberMode;
+ QString copies;
+ RS_RotateData * data;
+ QString angle;
+
+ private:
+ Ui::DlgRotate ui;
+};
+
+#endif // __DLGROTATE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgRotate</class>
+ <widget class="QDialog" name="DlgRotate">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>338</width>
+ <height>192</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Rotation Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="1" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>&Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbMultiCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Multiple Copies:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leNumber"/>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>146</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="lHelp">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifyrotate.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lAngle">
+ <property name="text">
+ <string>&Angle (a):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leAngle</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer12">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>31</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leAngle">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>rbMove</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbMultiCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgRotate</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgRotate</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgrotate2.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/12/2010 Created this file. :-)
+//
+
+#include "dlgrotate2.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgRotate2::DlgRotate2(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ copies = settings.value("Rotate2Copies", "10").toString();
+ numberMode = settings.value("Rotate2Mode", 0).toInt();
+ useCurrentLayer = settings.value("Rotate2UseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("MoveRotate2UseCurrentAttributes", false).toBool();
+ angle1 = settings.value("Rotate2Angle1", "30.0").toString();
+ angle2 = settings.value("Rotate2Angle2", "-30.0").toString();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ case 2:
+ ui.rbMultiCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.leNumber->setText(copies);
+ ui.leAngle1->setText(angle1);
+ ui.leAngle2->setText(angle2);
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgRotate2::~DlgRotate2()
+{
+ settings.beginGroup("Modify");
+ settings.setValue("Rotate2Copies", ui.leNumber->text());
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("Rotate2Mode", numberMode);
+ settings.setValue("Rotate2Angle1", ui.leAngle1->text());
+ settings.setValue("Rotate2Angle2", ui.leAngle2->text());
+ settings.setValue("Rotate2UseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("Rotate2UseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgRotate2::setData(RS_Rotate2Data * d)
+{
+ data = d;
+
+ //leAngle1->setText(QString("%1").arg(RS_Math::rad2deg(data->angle1)));
+ //leAngle2->setText(QString("%1").arg(RS_Math::rad2deg(data->angle2)));
+}
+
+void DlgRotate2::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->number = 0;
+ else if (ui.rbCopy->isChecked())
+ data->number = 1;
+ else
+ data->number = ui.leNumber->text().toInt();
+
+ data->angle1 = RS_Math::deg2rad(RS_Math::eval(ui.leAngle1->text()));
+ data->angle2 = RS_Math::deg2rad(RS_Math::eval(ui.leAngle2->text()));
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGROTATE2_H__
+#define __DLGROTATE2_H__
+
+#include "ui_dlgrotate2.h"
+
+class RS_Rotate2Data;
+
+class DlgRotate2: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgRotate2(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgRotate2();
+
+ public slots:
+ void setData(RS_Rotate2Data * d);
+ void updateData();
+
+ protected:
+ int newVariable;
+
+ private:
+ QString angle2;
+ bool useCurrentAttributes;
+ bool useCurrentLayer;
+ int numberMode;
+ QString copies;
+ RS_Rotate2Data * data;
+ QString angle1;
+
+ private:
+ Ui::DlgRotate2 ui;
+};
+
+#endif // __DLGROTATE2_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgRotate2</class>
+ <widget class="QDialog" name="DlgRotate2">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>364</width>
+ <height>222</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Rotate Two Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="1" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbMultiCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Multiple Copies</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leNumber"/>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="lHelp">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifyrotate2.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lAngle1">
+ <property name="text">
+ <string>Angle (&a):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leAngle1</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer13_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>41</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leAngle1"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lAngle2">
+ <property name="text">
+ <string>Angle (&b):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leAngle2</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer13">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>41</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leAngle2"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>rbMove</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbMultiCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgRotate2</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgRotate2</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgscale.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/12/2010 Created this file. :-)
+//
+
+#include "dlgscale.h"
+
+#include "rs_modification.h"
+#include "settings.h"
+
+DlgScale::DlgScale(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+
+ settings.beginGroup("Modify");
+ copies = settings.value("ScaleCopies", "10").toString();
+ numberMode = settings.value("ScaleMode", 0).toInt();
+ factor = settings.value("ScaleFactor", "0.5").toString();
+ useCurrentLayer = settings.value("ScaleUseCurrentLayer", false).toBool();
+ useCurrentAttributes = settings.value("ScaleUseCurrentAttributes", false).toBool();
+ settings.endGroup();
+
+ switch (numberMode)
+ {
+ case 0:
+ ui.rbMove->setChecked(true);
+ break;
+
+ case 1:
+ ui.rbCopy->setChecked(true);
+ break;
+
+ case 2:
+ ui.rbMultiCopy->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ ui.leNumber->setText(copies);
+ ui.leFactor->setText(factor);
+ ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
+ ui.cbCurrentLayer->setChecked(useCurrentLayer);
+}
+
+DlgScale::~DlgScale()
+{
+ settings.beginGroup("Modify");
+ settings.setValue("ScaleCopies", ui.leNumber->text());
+ settings.setValue("ScaleFactor", ui.leFactor->text());
+
+ if (ui.rbMove->isChecked())
+ numberMode = 0;
+ else if (ui.rbCopy->isChecked())
+ numberMode = 1;
+ else
+ numberMode = 2;
+
+ settings.setValue("ScaleMode", numberMode);
+ settings.setValue("ScaleUseCurrentLayer", ui.cbCurrentLayer->isChecked());
+ settings.setValue("ScaleUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
+ settings.endGroup();
+}
+
+void DlgScale::setData(RS_ScaleData * d)
+{
+ data = d;
+}
+
+void DlgScale::updateData()
+{
+ if (ui.rbMove->isChecked())
+ data->number = 0;
+ else if (ui.rbCopy->isChecked())
+ data->number = 1;
+ else
+ data->number = ui.leNumber->text().toInt();
+
+ data->factor = RS_Math::eval(ui.leFactor->text());
+ data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
+ data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
+}
--- /dev/null
+#ifndef __DLGSCALE_H__
+#define __DLGSCALE_H__
+
+#include "ui_dlgscale.h"
+
+class RS_ScaleData;
+
+class DlgScale: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgScale(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgScale();
+
+ public slots:
+ void setData(RS_ScaleData * d);
+ void updateData();
+
+ private:
+ QString factor;
+ RS_ScaleData * data;
+ QString copies;
+ int numberMode;
+ bool useCurrentLayer;
+ bool useCurrentAttributes;
+
+ private:
+ Ui::DlgScale ui;
+};
+
+#endif // __DLGSCALE_H__
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DlgScale</class>
+ <widget class="QDialog" name="DlgScale">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>339</width>
+ <height>196</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>190</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Scaling Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="1" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bOk">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bCancel">
+ <property name="text">
+ <string>&Cancel</string>
+ </property>
+ <property name="shortcut">
+ <string>Esc</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="lHelp">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="res/architektonas.qrc">:/res/qg_dlgmodifyscale.xpm</pixmap>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="lFactor">
+ <property name="text">
+ <string>&Factor (f):</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leFactor</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer12">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>31</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leFactor">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentAttributes">
+ <property name="text">
+ <string>Use current &attributes</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbCurrentLayer">
+ <property name="text">
+ <string>Use current &layer</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="bgNumber">
+ <property name="title">
+ <string>Number of copies</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="rbMove">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Delete Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Keep Original</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="rbMultiCopy">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Multiple Copies</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="leNumber"/>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="res/architektonas.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>rbMove</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>rbMultiCopy</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leNumber</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bOk</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgScale</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>bCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>DlgScale</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+// dlgspline.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/10/2010 Added this file. :-)
+//
+
+#include "dlgspline.h"
+
+#include "drawing.h"
+#include "rs_spline.h"
+
+DlgSpline::DlgSpline(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
+ QDialog(parent, flags)
+{
+ ui.setupUi(this);
+}
+
+DlgSpline::~DlgSpline()
+{
+}
+
+void DlgSpline::setSpline(RS_Spline & e)
+{
+ spline = &e;
+ //pen = spline->getPen();
+ ui.wPen->setPen(spline->getPen(false), true, false, "Pen");
+ Drawing * graphic = spline->getGraphic();
+ RS_Layer * lay = spline->getLayer(false);
+
+ if (graphic)
+ ui.cbLayer->init(*(graphic->getLayerList()), false, false);
+
+ if (lay)
+ ui.cbLayer->setLayer(*lay);
+
+ QString s;
+ s.setNum(spline->getDegree());
+ ui.cbDegree->setCurrentIndex(ui.cbDegree->findText(s));
+// cbDegree->setCurrentIndex(cbDegree->findText(QString("%1").arg(degree)));
+
+ ui.cbClosed->setChecked(spline->isClosed());
+}
+
+void DlgSpline::updateSpline()
+{
+ spline->setDegree(RS_Math::round(RS_Math::eval(ui.cbDegree->currentText())));
+ spline->setClosed(ui.cbClosed->isChecked());
+ spline->setPen(ui.wPen->getPen());
+ spline->setLayer(ui.cbLayer->currentText());
+ spline->update();
+}
--- /dev/null
+#ifndef __DLGSPLINE_H__
+#define __DLGSPLINE_H__
+
+#include "ui_dlgspline.h"
+
+class RS_Spline;
+
+class DlgSpline: public QDialog
+{
+ Q_OBJECT
+
+ public:
+ DlgSpline(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+ ~DlgSpline();
+
+ public slots:
+ void setSpline(RS_Spline & e);
+ void updateSpline();
+
+ private:
+ RS_Spline * spline;
+
+ private:
+ Ui::DlgSpline ui;
+};
+
+#endif // __DLGSPLINE_H__
--- /dev/null
+// insertoptions.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/10/2010 Created this file. :-)
+//
+
+#include "insertoptions.h"
+
+#include "rs_actionblocksinsert.h"
+#include "settings.h"
+
+InsertOptions::InsertOptions(QToolBar * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
+ QWidget(parent, flags),
+ lAngle(new QLabel(tr("Angle:"))),
+ leAngle(new QLineEdit(this)),
+ lFactor(new QLabel(tr("Factor:"))),
+ leFactor(new QLineEdit(this)),
+ sep1(new QFrame(this)),
+ lArray(new QLabel(tr("Array:"))),
+ sbColumns(new QSpinBox(this)),
+ sbRows(new QSpinBox(this)),
+ lSpacing(new QLabel(tr("Spacing:"))),
+ leColumnSpacing(new QLineEdit(this)),
+ leRowSpacing(new QLineEdit(this))
+{
+ QHBoxLayout * layout = new QHBoxLayout(this);
+ layout->setContentsMargins(0, 0, 0, 0);
+
+ leAngle->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+ leFactor->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+ leColumnSpacing->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+ leRowSpacing->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+ sep1->setFrameShape(QFrame::VLine);
+ sep1->setFrameShadow(QFrame::Sunken);
+
+ layout->addWidget(lAngle);
+ layout->addWidget(leAngle);
+ layout->addWidget(lFactor);
+ layout->addWidget(leFactor);
+ layout->addWidget(sep1);
+ layout->addWidget(lArray);
+ layout->addWidget(sbColumns);
+ layout->addWidget(sbRows);
+ layout->addWidget(lSpacing);
+ layout->addWidget(leColumnSpacing);
+ layout->addWidget(leRowSpacing);
+
+ connect(leAngle, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+ connect(leFactor, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+ connect(sbColumns, SIGNAL(valueChanged(int)), this, SLOT(updateData()));
+ connect(sbRows, SIGNAL(valueChanged(int)), this, SLOT(updateData()));
+ connect(leColumnSpacing, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+ connect(leRowSpacing, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+
+ // We need to add the widget (this thing) to the toolbar passed in. Otherwise,
+ // nothing will show up on the screen. :-)
+ if (parent)
+ parent->addWidget(this);
+}
+
+InsertOptions::~InsertOptions()
+{
+ settings.beginGroup("Insert");
+ settings.setValue("InsertAngle", leAngle->text());
+ settings.setValue("InsertFactor", leFactor->text());
+ settings.setValue("InsertColumns", sbColumns->text());
+ settings.setValue("InsertRows", sbRows->text());
+ settings.setValue("InsertColumnSpacing", leColumnSpacing->text());
+ settings.setValue("InsertRowSpacing", leRowSpacing->text());
+ settings.endGroup();
+}
+
+void InsertOptions::setAction(RS_ActionInterface * a, bool update)
+{
+ if (a != NULL && a->rtti() == RS2::ActionBlocksInsert)
+ {
+ action = (RS_ActionBlocksInsert *)a;
+
+ QString sAngle;
+ QString sFactor;
+ QString sColumns;
+ QString sRows;
+ QString sColumnSpacing;
+ QString sRowSpacing;
+
+ if (update)
+ {
+ sAngle = QString("%1").arg(RS_Math::rad2deg(action->getAngle()));
+ sFactor = QString("%1").arg(action->getFactor());
+ sColumns = QString("%1").arg(action->getColumns());
+ sRows = QString("%1").arg(action->getRows());
+ sColumnSpacing = QString("%1").arg(action->getColumnSpacing());
+ sRowSpacing = QString("%1").arg(action->getRowSpacing());
+ }
+ else
+ {
+ settings.beginGroup("Insert");
+ sAngle = settings.value("InsertAngle", "0.0").toString();
+ sFactor = settings.value("InsertFactor", "1.0").toString();
+ sColumns = settings.value("InsertColumns", "1").toString();
+ sRows = settings.value("InsertRows", "1").toString();
+ sColumnSpacing = settings.value("InsertColumnSpacing", "1.0").toString();
+ sRowSpacing = settings.value("InsertRowSpacing", "1.0").toString();
+ settings.endGroup();
+ }
+
+ leAngle->setText(sAngle);
+ leFactor->setText(sFactor);
+ sbColumns->setValue(sColumns.toInt());
+ sbRows->setValue(sRows.toInt());
+ leColumnSpacing->setText(sColumnSpacing);
+ leRowSpacing->setText(sRowSpacing);
+ }
+ else
+ {
+ RS_DEBUG->print(RS_Debug::D_ERROR, "InsertOptions::setAction: wrong action type");
+ action = NULL;
+ }
+}
+
+void InsertOptions::updateData()
+{
+ if (action != NULL)
+ {
+ action->setAngle(RS_Math::deg2rad(RS_Math::eval(leAngle->text())));
+ action->setFactor(RS_Math::eval(leFactor->text()));
+ action->setColumns(sbColumns->value());
+ action->setRows(sbRows->value());
+ action->setColumnSpacing(RS_Math::eval(leColumnSpacing->text()));
+ action->setRowSpacing(RS_Math::eval(leRowSpacing->text()));
+ }
+}
--- /dev/null
+#ifndef __INSERTOPTIONS_H__
+#define __INSERTOPTIONS_H__
+
+#include <QtGui>
+
+class RS_ActionBlocksInsert;
+class RS_ActionInterface;
+
+class InsertOptions: public QWidget
+{
+ Q_OBJECT
+
+ public:
+ InsertOptions(QToolBar * parent = 0, Qt::WindowFlags flags = 0);
+ ~InsertOptions();
+
+ public slots:
+ void setAction(RS_ActionInterface * a, bool update);
+ void updateData();
+
+ protected:
+ RS_ActionBlocksInsert * action;
+
+ private:
+ QLabel * lAngle;
+ QLineEdit * leAngle;
+ QLabel * lFactor;
+ QLineEdit * leFactor;
+ QFrame * sep1;
+ QLabel * lArray;
+ QSpinBox * sbColumns;
+ QSpinBox * sbRows;
+ QLabel * lSpacing;
+ QLineEdit * leColumnSpacing;
+ QLineEdit * leRowSpacing;
+};
+
+#endif // __INSERTOPTIONS_H__
--- /dev/null
+// libraryinsertoptions.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// (C) 2010 Underground Software
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JLH 06/10/2010 Created this file. :-)
+//
+
+#include "libraryinsertoptions.h"
+
+#include "rs_actionlibraryinsert.h"
+#include "settings.h"
+
+LibraryInsertOptions::LibraryInsertOptions(QToolBar * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
+ QWidget(parent, flags),
+ lAngle(new QLabel(tr("Angle:"))),
+ leAngle(new QLineEdit(this)),
+ lFactor(new QLabel(tr("Factor:"))),
+ leFactor(new QLineEdit(this))
+{
+ QHBoxLayout * layout = new QHBoxLayout(this);
+ layout->setContentsMargins(0, 0, 0, 0);
+
+ leAngle->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+ leFactor->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Ignored));
+
+ layout->addWidget(lAngle);
+ layout->addWidget(leAngle);
+ layout->addWidget(lFactor);
+ layout->addWidget(leFactor);
+
+ connect(leAngle, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+ connect(leFactor, SIGNAL(textChanged(QString)), this, SLOT(updateData()));
+
+ // We need to add the widget (this thing) to the toolbar passed in. Otherwise,
+ // nothing will show up on the screen. :-)
+ if (parent)
+ parent->addWidget(this);
+}
+
+LibraryInsertOptions::~LibraryInsertOptions()
+{
+ settings.beginGroup("LibraryInsert");
+ settings.setValue("LibraryInsertAngle", leAngle->text());
+ settings.setValue("LibraryInsertFactor", leFactor->text());
+ settings.endGroup();
+}
+
+void LibraryInsertOptions::setAction(RS_ActionInterface * a, bool update)
+{
+ if (a != NULL && a->rtti() == RS2::ActionLibraryInsert)
+ {
+ action = (RS_ActionLibraryInsert *)a;
+
+ QString sAngle;
+ QString sFactor;
+
+ if (update)
+ {
+ sAngle = QString("%1").arg(RS_Math::rad2deg(action->getAngle()));
+ sFactor = QString("%1").arg(action->getFactor());
+ }
+ else
+ {
+ settings.beginGroup("LibraryInsert");
+ sAngle = settings.value("LibraryInsertAngle", "0.0").toString();
+ sFactor = settings.value("LibraryInsertFactor", "1.0").toString();
+ settings.endGroup();
+ }
+
+ leAngle->setText(sAngle);
+ leFactor->setText(sFactor);
+ }
+ else
+ {
+ RS_DEBUG->print(RS_Debug::D_ERROR, "LibraryInsertOptions::setAction: wrong action type");
+ action = NULL;
+ }
+}
+
+void LibraryInsertOptions::updateData()
+{
+ if (action != NULL)
+ {
+ action->setAngle(RS_Math::deg2rad(RS_Math::eval(leAngle->text())));
+ action->setFactor(RS_Math::eval(leFactor->text()));
+ }
+}
+
--- /dev/null
+#ifndef __LIBRARYINSERTOPTIONS_H__
+#define __LIBRARYINSERTOPTIONS_H__
+
+#include <QtGui>
+
+class RS_ActionInterface;
+class RS_ActionLibraryInsert;
+
+class LibraryInsertOptions: public QWidget
+{
+ Q_OBJECT
+
+ public:
+ LibraryInsertOptions(QToolBar * parent = 0, Qt::WindowFlags flags = 0);
+ ~LibraryInsertOptions();
+
+ public slots:
+ void setAction(RS_ActionInterface * a, bool update);
+ void updateData();
+
+ protected:
+ RS_ActionLibraryInsert * action;
+
+ private:
+ QLabel * lAngle;
+ QLineEdit * leAngle;
+ QLabel * lFactor;
+ QLineEdit * leFactor;
+};
+
+#endif // __LIBRARYINSERTOPTIONS_H__
#include "rs_actioninterface.h"
LineOptions::LineOptions(QToolBar * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
- QWidget(parent, flags), action(NULL)
+ QWidget(parent, flags), action(NULL),
+ bClose(new QToolButton(this)),
+ bUndo(new QToolButton(this))
{
- ui.setupUi(this);
+ QHBoxLayout * layout = new QHBoxLayout(this);
+ layout->setContentsMargins(0, 0, 0, 0);
+
+ bClose->setText(tr("Close"));
+ bUndo->setText(tr("Undo"));
+
+ layout->addWidget(bClose);
+ layout->addWidget(bUndo);
+
+ connect(bClose, SIGNAL(clicked()), this, SLOT(close()));
+ connect(bUndo, SIGNAL(clicked()), this, SLOT(undo()));
// We need to add the widget (this thing) to the toolbar passed in. Otherwise,
// nothing will show up on the screen. :-)
#ifndef __LINEOPTIONS_H__
#define __LINEOPTIONS_H__
-#include "ui_lineoptions.h"
+#include <QtGui>
class RS_ActionDrawLine;
class RS_ActionInterface;
-class QToolBar;
class LineOptions: public QWidget
{
~LineOptions();
public slots:
- virtual void setAction(RS_ActionInterface * a);
- virtual void close();
- virtual void undo();
+ void setAction(RS_ActionInterface * a);
+ void close();
+ void undo();
protected:
RS_ActionDrawLine * action;
private:
- Ui::LineOptions ui;
+ QToolButton * bClose;
+ QToolButton * bUndo;
};
#endif // __LINEOPTIONS_H__
#include "rs_actiondimlinear.h"
#include "rs_actioninterface.h"
#include "rs_document.h"
+#include "rs_hatch.h"
#include "rs_patternlist.h"
#include "settings.h"
#include "rs_system.h"
#include "rs_text.h"
-#if 0
- #include "ui/qg_arcoptions.h"
- #include "ui/qg_arctangentialoptions.h"
- #include "ui/qg_beveloptions.h"
- #include "ui/qg_blockdialog.h"
- #include "ui/qg_cadtoolbar.h"
- #include "ui/qg_circleoptions.h"
- #include "ui/qg_commandwidget.h"
- #include "ui/qg_coordinatewidget.h"
- #include "ui/qg_dimlinearoptions.h"
- #include "ui/qg_dimoptions.h"
-#include "ui/qg_dlgarc.h"
- #include "ui/qg_dlgattributes.h"
-#include "ui/qg_dlgcircle.h"
-#include "ui/qg_dlgdimension.h"
-#include "ui/qg_dlgdimlinear.h"
-#include "ui/qg_dlgellipse.h"
-#include "ui/qg_dlghatch.h"
-#include "ui/qg_dlginsert.h"
-#include "ui/qg_dlgline.h"
-#include "ui/qg_dlgmirror.h"
-#include "ui/qg_dlgmove.h"
-#include "ui/qg_dlgmoverotate.h"
- #include "ui/qg_dlgoptionsdrawing.h"
- #include "ui/qg_dlgoptionsgeneral.h"
-#include "ui/qg_dlgpoint.h"
-#include "ui/qg_dlgrotate.h"
-#include "ui/qg_dlgrotate2.h"
-#include "ui/qg_dlgscale.h"
-#include "ui/qg_dlgspline.h"
- #include "ui/qg_dlgtext.h"
- #include "ui/qg_imageoptions.h"
-#include "ui/qg_insertoptions.h"
- #include "ui/qg_layerdialog.h"
-#include "ui/qg_libraryinsertoptions.h"
- #include "ui/qg_lineangleoptions.h"
- #include "ui/qg_linebisectoroptions.h"
- #include "ui/qg_lineoptions.h"
- #include "ui/qg_lineparalleloptions.h"
- #include "ui/qg_lineparallelthroughoptions.h"
- #include "ui/qg_linepolygon2options.h"
- #include "ui/qg_linepolygonoptions.h"
- #include "ui/qg_linerelangleoptions.h"
- #include "ui/qg_mousewidget.h"
- #include "ui/qg_moverotateoptions.h"
- #include "ui/qg_printpreviewoptions.h"
- #include "ui/qg_roundoptions.h"
- #include "ui/qg_selectionwidget.h"
- #include "ui/qg_snapdistoptions.h"
- #include "ui/qg_splineoptions.h"
- #include "ui/qg_textoptions.h"
- #include "ui/qg_trimamountoptions.h"
-#endif
#include "arcoptions.h"
#include "arctangentialoptions.h"
#include "beveloptions.h"
#include "coordinatewidget.h"
#include "dimlinearoptions.h"
#include "dimoptions.h"
+#include "dlgarc.h"
#include "dlgattributes.h"
+#include "dlgcircle.h"
+#include "dlgdimension.h"
+#include "dlgdimlinear.h"
+#include "dlgellipse.h"
+#include "dlghatch.h"
+#include "dlginsert.h"
+#include "dlgline.h"
+#include "dlgmirror.h"
+#include "dlgmove.h"
+#include "dlgmoverotate.h"
#include "dlgoptionsdrawing.h"
#include "dlgoptionsgeneral.h"
+#include "dlgpoint.h"
+#include "dlgrotate.h"
+#include "dlgrotate2.h"
+#include "dlgscale.h"
+#include "dlgspline.h"
#include "dlgtext.h"
+#include "libraryinsertoptions.h"
#include "imageoptions.h"
+#include "insertoptions.h"
#include "layerdialog.h"
#include "lineangleoptions.h"
#include "linebisectoroptions.h"
#ifdef RS_PROF
static PolylineOptions * toolWidget = NULL;
- if (optionWidget != NULL)
+ if (!optionWidget)
+ return;
+
+ if (toolWidget)
{
- if (toolWidget != NULL)
- {
- delete toolWidget;
- toolWidget = NULL;
- }
- if (on && toolWidget == NULL)
- {
- toolWidget = new PolylineOptions(optionWidget);
- toolWidget->setAction(action, update);
- }
+ delete toolWidget;
+ toolWidget = NULL;
}
-#endif
-}
-
-#if 0
-/**
- * Shows a widget for insert options.
- */
-void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action,
- bool on, bool update)
-{
- static QG_InsertOptions* toolWidget = NULL;
- if (optionWidget!=NULL) {
- if (toolWidget!=NULL) {
- delete toolWidget;
- toolWidget = NULL;
- }
- if (on==true && toolWidget==NULL) {
- toolWidget = new QG_InsertOptions(optionWidget);
- toolWidget->setAction(action, update);
- }
- }
-}
-
-/**
- * Shows a widget for image options.
- */
-void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action,
- bool on, bool update)
-{
- static QG_ImageOptions* toolWidget = NULL;
-
- if (optionWidget!=NULL) {
- if (toolWidget!=NULL) {
- delete toolWidget;
- toolWidget = NULL;
- }
- if (on==true && toolWidget==NULL) {
- toolWidget = new QG_ImageOptions(optionWidget);
- toolWidget->setAction(action, update);
- }
- }
+ if (on)
+ {
+ toolWidget = new PolylineOptions(optionWidget);
+ toolWidget->setAction(action, update);
+ }
+#endif
}
-/**
- * Shows a widget for library insert options.
- */
-void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action,
- bool on, bool update)
-{
- static QG_LibraryInsertOptions* toolWidget = NULL;
-
- if (optionWidget!=NULL) {
- if (toolWidget!=NULL) {
- delete toolWidget;
- toolWidget = NULL;
- }
- if (on==true && toolWidget==NULL) {
- toolWidget = new QG_LibraryInsertOptions(optionWidget);
- toolWidget->setAction(action, update);
- }
- }
-}
-#else
/**
* Shows a widget for options for the action: "draw line parallel"
*/
}
}
-void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, bool on, bool update)
+/**
+ * Shows a widget for insert options.
+ */
+void QG_DialogFactory::requestInsertOptions(RS_ActionInterface * action, bool on, bool update)
{
+ static InsertOptions * toolWidget = NULL;
+
+ if (optionWidget!=NULL) {
+ if (toolWidget!=NULL) {
+ delete toolWidget;
+ toolWidget = NULL;
+ }
+ if (on==true && toolWidget==NULL) {
+ toolWidget = new InsertOptions(optionWidget);
+ toolWidget->setAction(action, update);
+ }
+ }
}
-void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, bool on, bool update)
+/**
+ * Shows a widget for image options.
+ */
+void QG_DialogFactory::requestImageOptions(RS_ActionInterface * action, bool on, bool update)
{
+ static ImageOptions * toolWidget = NULL;
+
+ if (optionWidget!=NULL) {
+ if (toolWidget!=NULL) {
+ delete toolWidget;
+ toolWidget = NULL;
+ }
+ if (on==true && toolWidget==NULL) {
+ toolWidget = new ImageOptions(optionWidget);
+ toolWidget->setAction(action, update);
+ }
+ }
}
/**
}
}
-void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, bool on, bool update)
+/**
+ * Shows a widget for library insert options.
+ */
+void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface * action, bool on, bool update)
{
+ static LibraryInsertOptions * toolWidget = NULL;
+
+ if (!optionWidget)
+ return;
+
+ if (toolWidget)
+ {
+ delete toolWidget;
+ toolWidget = NULL;
+ }
+
+ if (on)
+ {
+ toolWidget = new LibraryInsertOptions(optionWidget);
+ toolWidget->setAction(action, update);
+ }
}
-#endif
/**
* Shows the given toolbar.
cadToolBar->showToolBarSelect(selectAction, nextAction);
}
-#if 0
+/**
+ * Shows a dialog to edit the attributes of the given dimension entity.
+ */
+ /*
+bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) {
+ if (dim==NULL) {
+ return false;
+ }
+
+ QG_DlgDimAligned dlg(parent);
+ dlg.setDim(*dim, true);
+ if (dlg.exec()) {
+ dlg.updateDim();
+ return true;
+ }
+
+ return false;
+}
+*/
+
+/**
+ * Shows attributes options dialog presenting the given data.
+ */
+bool QG_DialogFactory::requestAttributesDialog(RS_AttributesData & data, RS_LayerList & layerList)
+{
+ DlgAttributes dlg(parent);
+ dlg.setData(&data, layerList);
+
+ if (dlg.exec())
+ {
+ dlg.updateData();
+ return true;
+ }
+
+ return false;
+}
+
/**
* Shows move options dialog presenting the given data.
*/
bool QG_DialogFactory::requestMoveDialog(RS_MoveData & data)
{
- QG_DlgMove dlg(parent);
+ DlgMove dlg(parent);
dlg.setData(&data);
if (dlg.exec())
*/
bool QG_DialogFactory::requestRotateDialog(RS_RotateData & data)
{
- QG_DlgRotate dlg(parent);
+ DlgRotate dlg(parent);
dlg.setData(&data);
if (dlg.exec())
*/
bool QG_DialogFactory::requestScaleDialog(RS_ScaleData & data)
{
- QG_DlgScale dlg(parent);
+ DlgScale dlg(parent);
dlg.setData(&data);
if (dlg.exec())
*/
bool QG_DialogFactory::requestMirrorDialog(RS_MirrorData & data)
{
- QG_DlgMirror dlg(parent);
+ DlgMirror dlg(parent);
dlg.setData(&data);
if (dlg.exec())
*/
bool QG_DialogFactory::requestMoveRotateDialog(RS_MoveRotateData & data)
{
- QG_DlgMoveRotate dlg(parent);
+ DlgMoveRotate dlg(parent);
dlg.setData(&data);
if (dlg.exec())
*/
bool QG_DialogFactory::requestRotate2Dialog(RS_Rotate2Data & data)
{
- QG_DlgRotate2 dlg(parent);
+ DlgRotate2 dlg(parent);
dlg.setData(&data);
if (dlg.exec())
{
case RS2::EntityPoint:
{
- QG_DlgPoint dlg(parent);
+ DlgPoint dlg(parent);
dlg.setPoint(*((RS_Point *)entity));
if (dlg.exec())
case RS2::EntityLine:
{
- QG_DlgLine dlg(parent);
+ DlgLine dlg(parent);
dlg.setLine(*((RS_Line *)entity));
if (dlg.exec())
case RS2::EntityArc:
{
- QG_DlgArc dlg(parent);
+ DlgArc dlg(parent);
dlg.setArc(*((RS_Arc *)entity));
if (dlg.exec())
case RS2::EntityCircle:
{
- QG_DlgCircle dlg(parent);
+ DlgCircle dlg(parent);
dlg.setCircle(*((RS_Circle *)entity));
if (dlg.exec())
case RS2::EntityEllipse:
{
- QG_DlgEllipse dlg(parent);
+ DlgEllipse dlg(parent);
dlg.setEllipse(*((RS_Ellipse *)entity));
if (dlg.exec())
case RS2::EntitySpline:
{
- QG_DlgSpline dlg(parent);
+ DlgSpline dlg(parent);
dlg.setSpline(*((RS_Spline *)entity));
if (dlg.exec())
case RS2::EntityInsert:
{
- QG_DlgInsert dlg(parent);
+ DlgInsert dlg(parent);
dlg.setInsert(*((RS_Insert *)entity));
if (dlg.exec())
case RS2::EntityDimDiametric:
case RS2::EntityDimRadial:
{
- QG_DlgDimension dlg(parent);
+ DlgDimension dlg(parent);
dlg.setDim(*((RS_Dimension *)entity));
if (dlg.exec())
case RS2::EntityDimLinear:
{
- QG_DlgDimLinear dlg(parent);
+ DlgDimLinear dlg(parent);
dlg.setDim(*((RS_DimLinear *)entity));
if (dlg.exec())
case RS2::EntityText:
{
- QG_DlgText dlg(parent);
+ DlgText dlg(parent);
dlg.setText(*((RS_Text *)entity), false);
if (dlg.exec())
case RS2::EntityHatch:
{
- QG_DlgHatch dlg(parent);
+ DlgHatch dlg(parent);
dlg.setHatch(*((RS_Hatch *)entity), false);
if (dlg.exec())
return ret;
}
-/**
- * Shows a dialog to edit the attributes of the given dimension entity.
- */
/*
bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) {
- if (dim==NULL) {
- return false;
- }
-
- QG_DlgDimAligned dlg(parent);
- dlg.setDim(*dim, true);
- if (dlg.exec()) {
- dlg.updateDim();
- return true;
- }
-
return false;
}
*/
if (text == NULL)
return false;
- QG_DlgText dlg(parent);
+ DlgText dlg(parent);
dlg.setText(*text, true);
if (dlg.exec())
RS_PATTERNLIST->init();
- QG_DlgHatch dlg(parent);
+ DlgHatch dlg(parent);
dlg.setHatch(*hatch, true);
if (dlg.exec())
return false;
}
-#else
-/**
- * Shows attributes options dialog presenting the given data.
- */
-bool QG_DialogFactory::requestAttributesDialog(RS_AttributesData & data, RS_LayerList & layerList)
-{
- DlgAttributes dlg(parent);
- dlg.setData(&data, layerList);
-
- if (dlg.exec())
- {
- dlg.updateData();
- return true;
- }
-
- return false;
-}
-
-bool QG_DialogFactory::requestMoveDialog(RS_MoveData & data)
-{
- return false;
-}
-
-bool QG_DialogFactory::requestRotateDialog(RS_RotateData & data)
-{
- return false;
-}
-
-bool QG_DialogFactory::requestScaleDialog(RS_ScaleData & data)
-{
- return false;
-}
-
-bool QG_DialogFactory::requestMirrorDialog(RS_MirrorData & data)
-{
- return false;
-}
-
-bool QG_DialogFactory::requestMoveRotateDialog(RS_MoveRotateData & data)
-{
- return false;
-}
-
-bool QG_DialogFactory::requestRotate2Dialog(RS_Rotate2Data & data)
-{
- return false;
-}
-
-/**
- * Shows a dialog to edit the given entity.
- */
-bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity)
-{
- if (entity == NULL)
- return false;
-
- bool ret = false;
-
- switch (entity->rtti())
- {
-//NOTE: These #if 0's are put here until these missing dialogs can be ported to Qt4.
-#if 0
- case RS2::EntityPoint:
- {
- QG_DlgPoint dlg(parent);
- dlg.setPoint(*((RS_Point *)entity));
-
- if (dlg.exec())
- {
- dlg.updatePoint();
- ret = true;
- }
- }
- break;
-
- case RS2::EntityLine:
- {
- QG_DlgLine dlg(parent);
- dlg.setLine(*((RS_Line *)entity));
-
- if (dlg.exec())
- {
- dlg.updateLine();
- ret = true;
- }
- }
- break;
-
- case RS2::EntityArc:
- {
- QG_DlgArc dlg(parent);
- dlg.setArc(*((RS_Arc *)entity));
-
- if (dlg.exec())
- {
- dlg.updateArc();
- ret = true;
- }
- }
- break;
-
- case RS2::EntityCircle:
- {
- QG_DlgCircle dlg(parent);
- dlg.setCircle(*((RS_Circle *)entity));
-
- if (dlg.exec())
- {
- dlg.updateCircle();
- ret = true;
- }
- }
- break;
-
- case RS2::EntityEllipse:
- {
- QG_DlgEllipse dlg(parent);
- dlg.setEllipse(*((RS_Ellipse *)entity));
-
- if (dlg.exec())
- {
- dlg.updateEllipse();
- ret = true;
- }
- }
- break;
-
- case RS2::EntitySpline:
- {
- QG_DlgSpline dlg(parent);
- dlg.setSpline(*((RS_Spline *)entity));
-
- if (dlg.exec())
- {
- dlg.updateSpline();
- ret = true;
- }
- }
- break;
-
- case RS2::EntityInsert:
- {
- QG_DlgInsert dlg(parent);
- dlg.setInsert(*((RS_Insert *)entity));
-
- if (dlg.exec())
- {
- dlg.updateInsert();
- ret = true;
- entity->update();
- }
- }
- break;
-
- case RS2::EntityDimAligned:
- case RS2::EntityDimAngular:
- case RS2::EntityDimDiametric:
- case RS2::EntityDimRadial:
- {
- QG_DlgDimension dlg(parent);
- dlg.setDim(*((RS_Dimension *)entity));
-
- if (dlg.exec())
- {
- dlg.updateDim();
- ret = true;
- ((RS_Dimension *)entity)->update(true);
- }
- }
- break;
-
- case RS2::EntityDimLinear:
- {
- QG_DlgDimLinear dlg(parent);
- dlg.setDim(*((RS_DimLinear *)entity));
-
- if (dlg.exec())
- {
- dlg.updateDim();
- ret = true;
- ((RS_DimLinear *)entity)->update(true);
- }
- }
- break;
-#endif
-
- case RS2::EntityText:
- {
- DlgText dlg(parent);
- dlg.setText(*((RS_Text *)entity), false);
-
- if (dlg.exec())
- {
- dlg.updateText();
- ret = true;
- ((RS_Text *)entity)->update();
- }
- }
- break;
-
-#if 0
- case RS2::EntityHatch:
- {
- QG_DlgHatch dlg(parent);
- dlg.setHatch(*((RS_Hatch *)entity), false);
-
- if (dlg.exec())
- {
- dlg.updateHatch();
- ret = true;
- ((RS_Hatch *)entity)->update();
- }
- }
- break;
-#endif
-
- default:
- break;
- }
-
- return ret;
-}
-
- /*
-bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) {
- return false;
-}
-*/
-
-/**
- * Shows a dialog to edit the attributes of the given text entity.
- */
-bool QG_DialogFactory::requestTextDialog(RS_Text * text)
-{
- if (text == NULL)
- return false;
-
- DlgText dlg(parent);
- dlg.setText(*text, true);
-
- if (dlg.exec())
- {
- dlg.updateText();
- return true;
- }
-
- return false;
-}
-
-bool QG_DialogFactory::requestHatchDialog(RS_Hatch * hatch)
-{
- return false;
-}
-#endif
#ifdef RS_CAM
/**