TaskSketcherMessages.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "PreCompiled.h"
00025
00026 #ifndef _PreComp_
00027 #endif
00028
00029 #include "ui_TaskSketcherMessages.h"
00030 #include "TaskSketcherMessages.h"
00031 #include <Gui/Application.h>
00032 #include <Gui/Document.h>
00033 #include <Gui/BitmapFactory.h>
00034 #include <Gui/ViewProvider.h>
00035 #include <Gui/WaitCursor.h>
00036 #include <Gui/Selection.h>
00037
00038 #include <boost/bind.hpp>
00039
00040 #include "ViewProviderSketch.h"
00041
00042 using namespace SketcherGui;
00043 using namespace Gui::TaskView;
00044
00045 TaskSketcherMessages::TaskSketcherMessages(ViewProviderSketch *sketchView)
00046 : TaskBox(Gui::BitmapFactory().pixmap("document-new"),tr("Solver messages"),true, 0)
00047 , sketchView(sketchView)
00048 {
00049
00050 proxy = new QWidget(this);
00051 ui = new Ui_TaskSketcherMessages();
00052 ui->setupUi(proxy);
00053 QMetaObject::connectSlotsByName(this);
00054
00055 this->groupLayout()->addWidget(proxy);
00056
00057 connectionSetUp = sketchView->signalSetUp.connect(boost::bind(&SketcherGui::TaskSketcherMessages::slotSetUp, this,_1,_2,_3));
00058 connectionSolved = sketchView->signalSolved.connect(boost::bind(&SketcherGui::TaskSketcherMessages::slotSolved, this,_1,_2));
00059 }
00060
00061 TaskSketcherMessages::~TaskSketcherMessages()
00062 {
00063 connectionSetUp.disconnect();
00064 connectionSolved.disconnect();
00065 delete ui;
00066 }
00067
00068 void TaskSketcherMessages::slotSetUp(int type, int dofs, const std::string &msg)
00069 {
00070 switch(type){
00071 case -1:
00072 ui->labelConstrainStatus->setText(QString::fromLatin1("Empty sketch"));
00073 break;
00074 case 0:
00075 ui->labelConstrainStatus->setText(QString::fromLatin1("<font color='green'>Fully constrained sketch </font>"));
00076 break;
00077 case 1:
00078 if (dofs==1)
00079 ui->labelConstrainStatus->setText(QString::fromLatin1("Under-constrained sketch with 1 degree of freedom"));
00080 else
00081 ui->labelConstrainStatus->setText(QString::fromLatin1("Under-constrained sketch with %1 degrees of freedom").arg(dofs));
00082 break;
00083 case 2:
00084 ui->labelConstrainStatus->setText(QString::fromLatin1("<font color='red'>Sketch contains conflicting constraints<br/>%1</font>").arg(QString::fromStdString(msg)));
00085 break;
00086 case 3:
00087 ui->labelConstrainStatus->setText(QString::fromLatin1("<font color='red'>Over-constrained sketch<br/>%1</font>").arg(QString::fromStdString(msg)));
00088 break;
00089 }
00090 }
00091
00092 void TaskSketcherMessages::slotSolved(int type, float time)
00093 {
00094 switch(type){
00095 case -1:
00096 ui->labelSolverStatus->setText(QString());
00097 break;
00098 case 0:
00099 ui->labelSolverStatus->setText(QString::fromLatin1("Solved in %1 sec").arg(time));
00100 break;
00101 case 1:
00102 ui->labelSolverStatus->setText(QString::fromLatin1("Unsolved (%1)").arg(time));
00103 break;
00104 }
00105 }
00106
00107 #include "moc_TaskSketcherMessages.cpp"