DiagramDialog::DiagramDialog(Diagram *d, const QString& _DataSet, QWidget *parent, Graph *currentGraph) : QDialog(parent, 0, TRUE, Qt::WDestructiveClose) { Diag = d; Graphs.setAutoDelete(true); copyDiagramGraphs(); // make a copy of all graphs defaultDataSet = _DataSet; setCaption(tr("Edit Diagram Properties")); changed = false; transfer = false; // have changes be applied ? (used by "Cancel") toTake = false; // double-clicked variable be inserted into graph list ? Expr.setPattern("[^\"]+"); Validator = new QRegExpValidator(Expr, this); ValInteger = new QIntValidator(0, 360, this); ValDouble = new QDoubleValidator(-1e200, 1e200, 6, this); QString NameY, NameZ; if((Diag->Name == "Rect") || (Diag->Name == "Curve")) { NameY = tr("left Axis"); NameZ = tr("right Axis"); } else if(Diag->Name == "Polar") { NameY = tr("y-Axis"); } else if((Diag->Name == "Smith") || (Diag->Name == "ySmith")) { NameY = tr("y-Axis"); } else if(Diag->Name == "PS") { NameY = tr("smith Axis"); NameZ = tr("polar Axis"); } else if(Diag->Name == "SP") { NameY = tr("polar Axis"); NameZ = tr("smith Axis"); } else if(Diag->Name == "Rect3D") { NameY = tr("y-Axis"); NameZ = tr("z-Axis"); } all = new QVBoxLayout(this); // to provide neccessary size QTabWidget *t = new QTabWidget(this); all->addWidget(t); // ........................................................... QVBox *Tab1 = new QVBox(this); Tab1->setSpacing(5); Label4 = 0; // different types with same content yrLabel = 0; yAxisBox = 0; Property2 = 0; ColorButt = 0; hideInvisible = 0; rotationX = rotationY = rotationZ = 0; QVButtonGroup *InputGroup = new QVButtonGroup(tr("Graph Input"), Tab1); GraphInput = new QLineEdit(InputGroup); GraphInput->setValidator(Validator); connect(GraphInput, SIGNAL(textChanged(const QString&)), SLOT(slotResetToTake(const QString&))); QHBox *Box2 = new QHBox(InputGroup); Box2->setSpacing(5); if(Diag->Name == "Tab") { Label1 = new QLabel(tr("Number Notation: "), Box2); PropertyBox = new QComboBox(Box2); PropertyBox->insertItem(tr("real/imaginary")); PropertyBox->insertItem(tr("magnitude/angle (degree)")); PropertyBox->insertItem(tr("magnitude/angle (radian)")); PropertyBox->setCurrentItem(1); connect(PropertyBox, SIGNAL(activated(int)), SLOT(slotSetNumMode(int))); Box2->setStretchFactor(new QWidget(Box2), 5); // stretchable placeholder Label2 = new QLabel(tr("Precision:"), Box2); Property2 = new QLineEdit(Box2); Property2->setValidator(ValInteger); Property2->setMaxLength(2); Property2->setMaximumWidth(25); Property2->setText("3"); } else if(Diag->Name != "Truth") { Label1 = new QLabel(tr("Color:"),Box2); ColorButt = new QPushButton(" ",Box2); ColorButt->setMinimumWidth(50); ColorButt->setEnabled(false); connect(ColorButt, SIGNAL(clicked()), SLOT(slotSetColor())); Box2->setStretchFactor(new QWidget(Box2), 5); // stretchable placeholder Label3 = new QLabel(tr("Style:"),Box2); Label3->setEnabled(false); PropertyBox = new QComboBox(Box2); PropertyBox->insertItem(tr("solid line")); PropertyBox->insertItem(tr("dash line")); PropertyBox->insertItem(tr("dot line")); if(Diag->Name != "Time") { PropertyBox->insertItem(tr("long dash line")); PropertyBox->insertItem(tr("stars")); PropertyBox->insertItem(tr("circles")); PropertyBox->insertItem(tr("arrows")); } connect(PropertyBox, SIGNAL(activated(int)), SLOT(slotSetGraphStyle(int))); Box2->setStretchFactor(new QWidget(Box2), 5); // stretchable placeholder Label2 = new QLabel(tr("Thickness:"),Box2); Property2 = new QLineEdit(Box2); Property2->setValidator(ValInteger); Property2->setMaximumWidth(25); Property2->setMaxLength(2); Property2->setText("0"); if((Diag->Name=="Rect") || (Diag->Name=="PS") || (Diag->Name=="SP") || (Diag->Name=="Curve")) { QHBox *Box3 = new QHBox(InputGroup); Box3->setSpacing(5); Label4 = new QLabel(tr("y-Axis:"),Box3); Label4->setEnabled(false); yAxisBox = new QComboBox(Box3); yAxisBox->insertItem(NameY); yAxisBox->insertItem(NameZ); yAxisBox->setEnabled(false); connect(yAxisBox, SIGNAL(activated(int)), SLOT(slotSetYAxis(int))); Box3->setStretchFactor(new QWidget(Box3), 5); // stretchable placeholder } } if(Property2) { connect(Property2, SIGNAL(textChanged(const QString&)), SLOT(slotSetProp2(const QString&))); Label1->setEnabled(false); PropertyBox->setEnabled(false); Label2->setEnabled(false); Property2->setEnabled(false); } QHBox *Box1 = new QHBox(Tab1); Box1->setSpacing(5); QVButtonGroup *DataGroup = new QVButtonGroup(tr("Dataset"), Box1); ChooseData = new QComboBox(false, DataGroup); ChooseData->setMinimumWidth(200); connect(ChooseData, SIGNAL(activated(int)), SLOT(slotReadVars(int))); ChooseVars = new QListView(DataGroup); ChooseVars->addColumn(tr("Name")); ChooseVars->addColumn(tr("Type")); ChooseVars->addColumn(tr("Size")); connect(ChooseVars, SIGNAL(doubleClicked(QListViewItem*)), SLOT(slotTakeVar(QListViewItem*))); QVButtonGroup *GraphGroup = new QVButtonGroup(tr("Graph"), Box1); GraphList = new QListBox(GraphGroup); connect(GraphList, SIGNAL(clicked(QListBoxItem*)), SLOT(slotSelectGraph(QListBoxItem*))); QPushButton *NewButt = new QPushButton(tr("New Graph"), GraphGroup); connect(NewButt, SIGNAL(clicked()), SLOT(slotNewGraph())); QPushButton *DelButt = new QPushButton(tr("Delete Graph"), GraphGroup); connect(DelButt, SIGNAL(clicked()), SLOT(slotDeleteGraph())); t->addTab(Tab1, tr("Data")); // ........................................................... int Row = 0; if(Diag->Name.at(0) != 'T') { // not tabular or timing diagram QWidget *Tab2 = new QWidget(t); QGridLayout *gp = new QGridLayout(Tab2,13,3,5,5); gp->addMultiCellWidget(new QLabel(tr("x-Axis Label:"), Tab2), Row,Row,0,0); xLabel = new QLineEdit(Tab2); xLabel->setValidator(Validator); gp->addMultiCellWidget(xLabel, Row,Row,1,2); Row++; gp->addMultiCellWidget( new QLabel(NameY+" "+tr("Label:"), Tab2), Row,Row,0,0); ylLabel = new QLineEdit(Tab2); ylLabel->setValidator(Validator); gp->addMultiCellWidget(ylLabel, Row,Row,1,2); Row++; if((Diag->Name != "Smith") && (Diag->Name != "Polar")) { gp->addMultiCellWidget( new QLabel(NameZ +" "+tr("Label:"), Tab2), Row,Row,0,0); yrLabel = new QLineEdit(Tab2); yrLabel->setValidator(Validator); gp->addMultiCellWidget(yrLabel, Row,Row,1,2); Row++; } gp->addMultiCellWidget(new QLabel( tr("<b>Label text</b>: Use LaTeX style for special characters, e.g. \\tau"), Tab2), Row,Row,0,2); Row++; if(Diag->Name != "Rect3D") { GridOn = new QCheckBox(tr("show Grid"), Tab2); gp->addMultiCellWidget(GridOn, Row,Row,0,2); Row++; GridLabel1 = new QLabel(tr("Grid Color:"),Tab2); gp->addMultiCellWidget(GridLabel1, Row,Row,0,0); GridColorButt = new QPushButton(" ",Tab2); connect(GridColorButt, SIGNAL(clicked()), SLOT(slotSetGridColor())); gp->addMultiCellWidget(GridColorButt, Row,Row,1,2); Row++; GridColorButt->setPaletteBackgroundColor(Diag->GridPen.color()); GridLabel2 = new QLabel(tr("Grid Style: "), Tab2); gp->addMultiCellWidget(GridLabel2, Row,Row,0,0); GridStyleBox = new QComboBox(Tab2); GridStyleBox->insertItem(tr("solid line")); GridStyleBox->insertItem(tr("dash line")); GridStyleBox->insertItem(tr("dot line")); GridStyleBox->insertItem(tr("dash dot line")); GridStyleBox->insertItem(tr("dash dot dot line")); gp->addMultiCellWidget(GridStyleBox, Row,Row,1,2); Row++; GridStyleBox->setCurrentItem(Diag->GridPen.style()-1); GridOn->setChecked(Diag->xAxis.GridOn); if(!Diag->xAxis.GridOn) slotSetGridBox(QButton::Off); connect(GridOn, SIGNAL(stateChanged(int)), SLOT(slotSetGridBox(int))); } else { GridOn = 0; GridColorButt = 0; GridStyleBox = 0; } // ........................................................... xLabel->setText(Diag->xAxis.Label); ylLabel->setText(Diag->yAxis.Label); if(yrLabel) yrLabel->setText(Diag->zAxis.Label); if((Diag->Name.left(4) == "Rect") || (Diag->Name == "Curve")) { GridLogX = new QCheckBox(tr("logarithmical X Axis Grid"), Tab2); gp->addMultiCellWidget(GridLogX, Row,Row,0,2); Row++; GridLogY = new QCheckBox(tr("logarithmical")+" "+NameY+" "+tr("Grid"), Tab2); gp->addMultiCellWidget(GridLogY, Row,Row,0,2); Row++; GridLogZ = new QCheckBox(tr("logarithmical")+" "+NameZ+" "+tr("Grid"), Tab2); gp->addMultiCellWidget(GridLogZ, Row,Row,0,2); Row++; // ........................................................... // transfer the diagram properties to the dialog GridLogX->setChecked(Diag->xAxis.log); GridLogY->setChecked(Diag->yAxis.log); GridLogZ->setChecked(Diag->zAxis.log); if(Diag->Name == "Rect3D") { hideInvisible = new QCheckBox(tr("hide invisible lines"), Tab2); gp->addMultiCellWidget(hideInvisible, Row,Row,0,2); Row++; QLabel *LabelRotX = new QLabel(tr("Rotation around x-Axis:"), Tab2); LabelRotX->setPaletteForegroundColor(Qt::red); gp->addWidget(LabelRotX, Row,0); SliderRotX = new QSlider(0,360,20, ((Rect3DDiagram*)Diag)->rotX, Qt::Horizontal, Tab2); gp->addWidget(SliderRotX, Row,1); connect(SliderRotX, SIGNAL(valueChanged(int)), SLOT(slotNewRotX(int))); rotationX = new QLineEdit(Tab2); rotationX->setValidator(ValInteger); rotationX->setMaxLength(3); rotationX->setMaximumWidth(40); gp->addWidget(rotationX, Row,2); connect(rotationX, SIGNAL(textChanged(const QString&)), SLOT(slotEditRotX(const QString&))); Row++; QLabel *LabelRotY = new QLabel(tr("Rotation around y-Axis:"), Tab2); LabelRotY->setPaletteForegroundColor(Qt::green); gp->addWidget(LabelRotY, Row,0); SliderRotY = new QSlider(0,360,20, ((Rect3DDiagram*)Diag)->rotY, Qt::Horizontal, Tab2); gp->addWidget(SliderRotY, Row,1); connect(SliderRotY, SIGNAL(valueChanged(int)), SLOT(slotNewRotY(int))); rotationY = new QLineEdit(Tab2); rotationY->setValidator(ValInteger); rotationY->setMaxLength(3); rotationY->setMaximumWidth(40); gp->addWidget(rotationY, Row,2); connect(rotationY, SIGNAL(textChanged(const QString&)), SLOT(slotEditRotY(const QString&))); Row++; QLabel *LabelRotZ = new QLabel(tr("Rotation around z-Axis:"), Tab2); LabelRotZ->setPaletteForegroundColor(Qt::blue); gp->addWidget(LabelRotZ, Row,0); SliderRotZ = new QSlider(0,360,20, ((Rect3DDiagram*)Diag)->rotZ, Qt::Horizontal, Tab2); gp->addWidget(SliderRotZ, Row,1); connect(SliderRotZ, SIGNAL(valueChanged(int)), SLOT(slotNewRotZ(int))); rotationZ = new QLineEdit(Tab2); rotationZ->setValidator(ValInteger); rotationZ->setMaxLength(3); rotationZ->setMaximumWidth(40); gp->addWidget(rotationZ, Row,2); connect(rotationZ, SIGNAL(textChanged(const QString&)), SLOT(slotEditRotZ(const QString&))); Row++; gp->addWidget(new QLabel(tr("2D-projection:"), Tab2), Row,0); DiagCross = new Cross3D(((Rect3DDiagram*)Diag)->rotX, ((Rect3DDiagram*)Diag)->rotY, ((Rect3DDiagram*)Diag)->rotZ, Tab2); gp->addWidget(DiagCross, Row,1); // transfer the diagram properties to the dialog hideInvisible->setChecked(Diag->hideLines); rotationX->setText(QString::number(((Rect3DDiagram*)Diag)->rotX)); rotationY->setText(QString::number(((Rect3DDiagram*)Diag)->rotY)); rotationZ->setText(QString::number(((Rect3DDiagram*)Diag)->rotZ)); } } else GridLogX = GridLogY = GridLogZ = 0; t->addTab(Tab2, tr("Properties")); // ........................................................... QVBox *Tab3 = new QVBox(this); Tab1->setSpacing(5); QHGroupBox *axisX = new QHGroupBox(tr("x-Axis"), Tab3); QVBox *VBox1 = new QVBox(axisX); VBox1->setStretchFactor(new QWidget(VBox1),5); // stretchable placeholder manualX = new QCheckBox(tr("manual"), VBox1); connect(manualX, SIGNAL(stateChanged(int)), SLOT(slotManualX(int))); QVBox *VBox2 = new QVBox(axisX); new QLabel(tr("start"), VBox2); startX = new QLineEdit(VBox2); startX->setValidator(ValDouble); QVBox *VBox3 = new QVBox(axisX); new QLabel(tr("step"), VBox3); stepX = new QLineEdit(VBox3); stepX->setValidator(ValDouble); QVBox *VBox4 = new QVBox(axisX); new QLabel(tr("stop"), VBox4); stopX = new QLineEdit(VBox4); stopX->setValidator(ValDouble); QHGroupBox *axisY; axisY = new QHGroupBox(NameY, Tab3); QVBox *VBox5 = new QVBox(axisY); VBox5->setStretchFactor(new QWidget(VBox5),5); // stretchable placeholder manualY = new QCheckBox(tr("manual"), VBox5); connect(manualY, SIGNAL(stateChanged(int)), SLOT(slotManualY(int))); QVBox *VBox6 = new QVBox(axisY); new QLabel(tr("start"), VBox6); startY = new QLineEdit(VBox6); startY->setValidator(ValDouble); QVBox *VBox7 = new QVBox(axisY); if((Diag->Name=="Smith") || (Diag->Name=="ySmith") || (Diag->Name=="PS")) new QLabel(tr("number"), VBox7); else new QLabel(tr("step"), VBox7); stepY = new QLineEdit(VBox7); stepY->setValidator(ValDouble); QVBox *VBox8 = new QVBox(axisY); new QLabel(tr("stop"), VBox8); stopY = new QLineEdit(VBox8); stopY->setValidator(ValDouble); QHGroupBox *axisZ; axisZ = new QHGroupBox(NameZ, Tab3); QVBox *VBox9 = new QVBox(axisZ); VBox9->setStretchFactor(new QWidget(VBox9),5); // stretchable placeholder manualZ = new QCheckBox(tr("manual"), VBox9); connect(manualZ, SIGNAL(stateChanged(int)), SLOT(slotManualZ(int))); QVBox *VBox10 = new QVBox(axisZ); new QLabel(tr("start"), VBox10); startZ = new QLineEdit(VBox10); startZ->setValidator(ValDouble); QVBox *VBox11 = new QVBox(axisZ); if(Diag->Name == "SP") new QLabel(tr("number"), VBox11); else new QLabel(tr("step"), VBox11); stepZ = new QLineEdit(VBox11); stepZ->setValidator(ValDouble); QVBox *VBox12 = new QVBox(axisZ); new QLabel(tr("stop"), VBox12); stopZ = new QLineEdit(VBox12); stopZ->setValidator(ValDouble); Tab3->setStretchFactor(new QWidget(Tab3),5); // stretchable placeholder t->addTab(Tab3, tr("Limits")); // ........................................................... // transfer the diagram properties to the dialog if(Diag->xAxis.autoScale) slotManualX(QButton::Off); else manualX->setChecked(true); if(Diag->yAxis.autoScale) slotManualY(QButton::Off); else manualY->setChecked(true); if(Diag->zAxis.autoScale) slotManualZ(QButton::Off); else manualZ->setChecked(true); Diag->calcLimits(); // inserts auto-scale values if not manual startX->setText(QString::number(Diag->xAxis.limit_min)); stepX->setText(QString::number(Diag->xAxis.step)); stopX->setText(QString::number(Diag->xAxis.limit_max)); startY->setText(QString::number(Diag->yAxis.limit_min)); stepY->setText(QString::number(Diag->yAxis.step)); stopY->setText(QString::number(Diag->yAxis.limit_max)); startZ->setText(QString::number(Diag->zAxis.limit_min)); stepZ->setText(QString::number(Diag->zAxis.step)); stopZ->setText(QString::number(Diag->zAxis.limit_max)); if((Diag->Name == "Smith") || (Diag->Name == "ySmith") || (Diag->Name == "Polar")) { axisZ->setEnabled(false); } if(Diag->Name.left(4) != "Rect") // cartesian 2D and 3D if(Diag->Name != "Curve") { axisX->setEnabled(false); startY->setEnabled(false); startZ->setEnabled(false); } } else stepX = 0; connect(t, SIGNAL(currentChanged(QWidget*)), SLOT(slotChangeTab(QWidget*))); // ........................................................... QHBox *Butts = new QHBox(this); Butts->setSpacing(5); Butts->setMargin(5); all->addWidget(Butts); QPushButton *OkButt = new QPushButton(tr("OK"), Butts); connect(OkButt, SIGNAL(clicked()), SLOT(slotOK())); QPushButton *ApplyButt = new QPushButton(tr("Apply"), Butts); connect(ApplyButt, SIGNAL(clicked()), SLOT(slotApply())); QPushButton *CancelButt = new QPushButton(tr("Cancel"), Butts); connect(CancelButt, SIGNAL(clicked()), SLOT(slotCancel())); OkButt->setDefault(true); // ........................................................... // put all data files into ComboBox QFileInfo Info(defaultDataSet); QDir ProjDir(Info.dirPath()); QStringList Elements = ProjDir.entryList("*.dat", QDir::Files, QDir::Name); QStringList::iterator it; for(it = Elements.begin(); it != Elements.end(); ++it) { ChooseData->insertItem((*it).left((*it).length()-4)); if((*it) == Info.fileName()) // default dataset should be the current ChooseData->setCurrentItem(ChooseData->count()-1); } slotReadVars(0); // put variables into the ListView // ........................................................... // put all graphs into the ListBox Row = 0; for(Graph *pg = Diag->Graphs.first(); pg != 0; pg = Diag->Graphs.next()) { GraphList->insertItem(pg->Var); if(pg == currentGraph) { GraphList->setCurrentItem(Row); // select current graph SelectGraph(currentGraph); } Row++; } if(ColorButt) if(!currentGraph) ColorButt->setPaletteBackgroundColor (QColor(DefaultColors[GraphList->count()])); }
ArrowDialog::ArrowDialog(QWidget *parent, const char *name) : QDialog(parent, name) { setCaption(tr("Edit Arrow Properties")); val100 = new QIntValidator(0, 100, this); vert = new Q3VBoxLayout(this); vert->setSpacing(5); vert->setMargin(5); Q3HBox *h0 = new Q3HBox(this); h0->setSpacing(5); vert->addWidget(h0); new QLabel(tr("Head Length: "), h0); HeadLength = new QLineEdit(h0); HeadLength->setValidator(val100); HeadLength->setMaximumWidth(35); HeadLength->setText("10"); new QLabel(tr(" Head Width: "), h0); HeadWidth = new QLineEdit(h0); HeadWidth->setValidator(val100); HeadWidth->setMaximumWidth(35); HeadWidth->setText("10"); Q3HBox *h1 = new Q3HBox(this); h1->setSpacing(5); vert->addWidget(h1); Q3HBox *h2 = new Q3HBox(this); h2->setSpacing(5); vert->addWidget(h2); Q3HBox *h3 = new Q3HBox(this); h3->setSpacing(5); vert->addWidget(h3); // must be first button => press RETURN QPushButton *ButtOK = new QPushButton(tr("OK"),h3); connect(ButtOK, SIGNAL(clicked()), SLOT(accept())); QPushButton *ButtCancel = new QPushButton(tr("Cancel"),h3); connect(ButtCancel, SIGNAL(clicked()), SLOT(reject())); new QLabel(tr("Line color: "), h1); ColorButt = new QPushButton(" ",h1); ColorButt->setPaletteBackgroundColor(QColor(0,0,0)); connect(ColorButt, SIGNAL(clicked()), SLOT(slotSetColor())); new QLabel(tr(" Line Width: "), h1); LineWidth = new QLineEdit(h1); LineWidth->setValidator(val100); LineWidth->setMaximumWidth(35); LineWidth->setText("0"); new QLabel(tr("Line style: "), h2); StyleBox = new QComboBox(h2); StyleBox->insertItem(tr("solid line")); StyleBox->insertItem(tr("dash line")); StyleBox->insertItem(tr("dot line")); StyleBox->insertItem(tr("dash dot line")); StyleBox->insertItem(tr("dash dot dot line")); connect(StyleBox, SIGNAL(activated(int)), SLOT(slotSetStyle(int))); LineStyle = Qt::SolidLine; ButtOK->setFocus(); }
FillDialog::FillDialog(const QString& _Caption, bool show, QWidget *parent) : QDialog(parent) { setCaption(_Caption); all = new QVBoxLayout(this); // to provide the neccessary size QTabWidget *t = new QTabWidget(this); all->addWidget(t); // ........................................................... QWidget *Tab1 = new QWidget(t); QGridLayout *gp1 = new QGridLayout(Tab1,3,2,5,5); gp1->addWidget(new QLabel(tr("Line Width: "), Tab1), 0,0); val100 = new QIntValidator(0,100, this); LineWidth = new QLineEdit(Tab1); LineWidth->setValidator(val100); LineWidth->setMaximumWidth(35); LineWidth->setText("0"); gp1->addWidget(LineWidth, 0,1); gp1->addWidget(new QLabel(tr("Line Color: "), Tab1), 1,0); ColorButt = new QPushButton(" ",Tab1); ColorButt->setPaletteBackgroundColor(QColor(0,0,0)); connect(ColorButt, SIGNAL(clicked()), SLOT(slotSetColor())); gp1->addWidget(ColorButt, 1,1); gp1->addWidget(new QLabel(tr("Line Style: "), Tab1), 2,0); StyleBox = new QComboBox(Tab1); StyleBox->insertItem(tr("solid line")); StyleBox->insertItem(tr("dash line")); StyleBox->insertItem(tr("dot line")); StyleBox->insertItem(tr("dash dot line")); StyleBox->insertItem(tr("dash dot dot line")); gp1->addWidget(StyleBox, 2,1); t->addTab(Tab1, tr("Line Style")); // ........................................................... if(show) { QWidget *Tab2 = new QWidget(t); QGridLayout *gp2 = new QGridLayout(Tab2,3,2,5,5); CheckFilled = new QCheckBox(tr("enable filling"),Tab2); connect(CheckFilled, SIGNAL(toggled(bool)), SLOT(slotCheckFilled(bool))); gp2->addMultiCellWidget(CheckFilled, 0,0,0,1); FillLabel1 = new QLabel(tr("Fill Color: "), Tab2); gp2->addWidget(FillLabel1, 1,0); FillColorButt = new QPushButton(" ", Tab2); FillColorButt->setPaletteBackgroundColor(QColor(0,0,0)); connect(FillColorButt, SIGNAL(clicked()), SLOT(slotSetFillColor())); gp2->addWidget(FillColorButt, 1,1); FillLabel2 = new QLabel(tr("Fill Style: "), Tab2); gp2->addWidget(FillLabel2, 2,0); FillStyleBox = new QComboBox(Tab2); FillStyleBox->insertItem(tr("no filling")); FillStyleBox->insertItem(tr("solid")); FillStyleBox->insertItem(tr("dense 1 (densest)")); FillStyleBox->insertItem(tr("dense 2")); FillStyleBox->insertItem(tr("dense 3")); FillStyleBox->insertItem(tr("dense 4")); FillStyleBox->insertItem(tr("dense 5")); FillStyleBox->insertItem(tr("dense 6")); FillStyleBox->insertItem(tr("dense 7 (least dense)")); FillStyleBox->insertItem(tr("horizontal line")); FillStyleBox->insertItem(tr("vertical line")); FillStyleBox->insertItem(tr("crossed lines")); FillStyleBox->insertItem(tr("hatched backwards")); FillStyleBox->insertItem(tr("hatched forwards")); FillStyleBox->insertItem(tr("diagonal crossed")); gp2->addWidget(FillStyleBox, 2,1); t->addTab(Tab2, tr("Filling Style")); } // ........................................................... QWidget *Butts = new QWidget(this); QHBoxLayout *ButtsLayout = new QHBoxLayout(); ButtsLayout->setSpacing(5); ButtsLayout->setMargin(5); QPushButton *ButtOK = new QPushButton(tr("OK")); ButtsLayout->addWidget(ButtOK); connect(ButtOK, SIGNAL(clicked()), SLOT(accept())); QPushButton *ButtCancel = new QPushButton(tr("Cancel"),Butts); ButtsLayout->addWidget(ButtCancel); connect(ButtCancel, SIGNAL(clicked()), SLOT(reject())); Butts->setLayout(ButtsLayout); all->addWidget(Butts); ButtOK->setDefault(true); // ButtOK->setFocus(); }
ArrowDialog::ArrowDialog(QWidget *parent, const char *name) : QDialog(parent, name) { setCaption(tr("Edit Arrow Properties")); val100 = new QIntValidator(0, 100, this); all = new QGridLayout(this, 5,4,3,3); all->setMargin(3); all->addWidget(new QLabel(tr("Head Length: "), this), 0,0); HeadLength = new QLineEdit(this); HeadLength->setValidator(val100); HeadLength->setMaximumWidth(35); HeadLength->setText("10"); all->addWidget(HeadLength, 0,1); all->addWidget(new QLabel(tr(" Head Width: "), this), 0,2); HeadWidth = new QLineEdit(this); HeadWidth->setValidator(val100); HeadWidth->setMaximumWidth(35); HeadWidth->setText("10"); all->addWidget(HeadWidth, 0,3); all->addWidget(new QLabel(tr("Line color: "), this), 1,0); ColorButt = new QPushButton(" ",this); ColorButt->setPaletteBackgroundColor(QColor(0,0,0)); connect(ColorButt, SIGNAL(clicked()), SLOT(slotSetColor())); all->addWidget(ColorButt, 1,1); all->addWidget(new QLabel(tr(" Line Width: "), this), 1,2); LineWidth = new QLineEdit(this); LineWidth->setValidator(val100); LineWidth->setMaximumWidth(35); LineWidth->setText("0"); all->addWidget(LineWidth, 1,3); all->addWidget(new QLabel(tr("Line style: "), this), 2,0); StyleBox = new QComboBox(this); StyleBox->insertItem(tr("solid line")); StyleBox->insertItem(tr("dash line")); StyleBox->insertItem(tr("dot line")); StyleBox->insertItem(tr("dash dot line")); StyleBox->insertItem(tr("dash dot dot line")); connect(StyleBox, SIGNAL(activated(int)), SLOT(slotSetStyle(int))); LineStyle = Qt::SolidLine; all->addMultiCellWidget(StyleBox, 2,2,1,2); all->addWidget(new QLabel(tr("Arrow head: "), this), 3,0); ArrowStyleBox = new QComboBox(this); ArrowStyleBox->insertItem(tr("two lines")); ArrowStyleBox->insertItem(tr("filled")); all->addMultiCellWidget(ArrowStyleBox, 3,3,1,2); QWidget *h1 = new QWidget(this); QHBoxLayout *h1Layout = new QHBoxLayout(); QPushButton *ButtOK = new QPushButton(tr("OK")); h1Layout->addWidget(ButtOK); connect(ButtOK, SIGNAL(clicked()), SLOT(accept())); QPushButton *ButtCancel = new QPushButton(tr("Cancel")); h1Layout->addWidget(ButtCancel); connect(ButtCancel, SIGNAL(clicked()), SLOT(reject())); h1->setLayout(h1Layout); all->addMultiCellWidget(h1, 4,4,0,3); ButtOK->setFocus(); }