LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
linepatternpathpart.cpp
Go to the documentation of this file.
1 #include "linepatternpathpart.h"
2 #include "ui_linepatternpathpart.h"
3 
4 #include <iostream>
5 
7  LinePatternPathPart(1, parent) {
8 }
9 
10 LinePatternPathPart::LinePatternPathPart(double value, QWidget* parent) :
11  QWidget(parent),
12  ui(new Ui::LinePatternPathPart) {
13 
14  ui->setupUi(this);
15 
16  ui->type->addItem(PATH_PLAIN_NAME);
17  ui->type->addItem(PATH_DOT_NAME);
18  ui->type->addItem(PATH_SPACE_NAME);
19 
20  ui->value->setValue(std::fabs(value));
21 
22  int typeIndex;
23  if(value == 0) {
24  typeIndex = ui->type->findText(PATH_DOT_NAME);
25  ui->value->setDisabled(true);
26  }
27  else if(value > 0) {
28  typeIndex = ui->type->findText(PATH_PLAIN_NAME);
29  }
30  else {
31  typeIndex = ui->type->findText(PATH_SPACE_NAME);
32  }
33 
34 
35  if (typeIndex != -1) {
36  ui->type->setCurrentIndex(typeIndex);
37  }
38 
39  connect(ui->type, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(onTypeChanged(const QString&)));
40  connect(ui->value, SIGNAL(valueChanged(double)), this, SLOT(onValueChanged(double)));
41 }
42 
44  if(ui->type->currentText() == PATH_PLAIN_NAME) {
45  return PATH_PLAIN;
46  }
47  else if(ui->type->currentText() == PATH_DOT_NAME) {
48  return PATH_DOT;
49  }
50  else if(ui->type->currentText() == PATH_SPACE_NAME) {
51  return PATH_SPACE;
52  }
53 
54  return PATH_PLAIN;
55 }
56 
58  return ui->value->value();
59 }
60 
61 void LinePatternPathPart::onTypeChanged(const QString &value) {
62  if(ui->type->currentText() == PATH_DOT_NAME) {
63  ui->value->setValue(0);
64  ui->value->setDisabled(true);
65  }
66  else {
67  ui->value->setValue(1);
68  ui->value->setDisabled(false);
69  }
70 
71  emit update();
72 }
73 
75  emit update();
76 }
Model used to construct line pattern path.
#define PATH_DOT_NAME
double value()
Return length.
Ui::LinePatternPathPart * ui
PathType type()
Return type (plain, space or dot)
LinePatternPathPart(QWidget *parent=0)
Create empty model.
void onTypeChanged(const QString &value)
void onValueChanged(double value)
#define PATH_SPACE_NAME
#define PATH_PLAIN_NAME