TaskDialogPython::TaskDialogPython(const Py::Object& o) : dlg(o) { if (dlg.hasAttr(std::string("ui"))) { UiLoader loader; #if QT_VERSION >= 0x040500 loader.setLanguageChangeEnabled(true); #endif QString fn, icon; Py::String ui(dlg.getAttr(std::string("ui"))); std::string path = (std::string)ui; fn = QString::fromUtf8(path.c_str()); QFile file(fn); QWidget* form = 0; if (file.open(QFile::ReadOnly)) form = loader.load(&file, 0); file.close(); if (form) { Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( QPixmap(icon), form->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(form); Content.push_back(taskbox); } else { Base::Console().Error("Failed to load UI file from '%s'\n", (const char*)fn.toUtf8()); } } else if (dlg.hasAttr(std::string("form"))) { Py::Object f(dlg.getAttr(std::string("form"))); Py::List widgets; if (f.isList()) { widgets = f; } else { widgets.append(f); } for (Py::List::iterator it = widgets.begin(); it != widgets.end(); ++it) { Py::Module mainmod(PyImport_AddModule((char*)"sip")); Py::Callable func = mainmod.getDict().getItem("unwrapinstance"); Py::Tuple arguments(1); arguments[0] = *it; //PyQt pointer Py::Object result = func.apply(arguments); void* ptr = PyLong_AsVoidPtr(result.ptr()); QObject* object = reinterpret_cast<QObject*>(ptr); if (object) { QWidget* form = qobject_cast<QWidget*>(object); if (form) { Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( form->windowIcon().pixmap(32), form->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(form); Content.push_back(taskbox); } } } } }
TaskDialogPython::TaskDialogPython(const Py::Object& o) : dlg(o) { if (dlg.hasAttr(std::string("ui"))) { UiLoader loader; #if QT_VERSION >= 0x040500 loader.setLanguageChangeEnabled(true); #endif QString fn, icon; Py::String ui(dlg.getAttr(std::string("ui"))); std::string path = (std::string)ui; fn = QString::fromUtf8(path.c_str()); QFile file(fn); QWidget* form = 0; if (file.open(QFile::ReadOnly)) form = loader.load(&file, 0); file.close(); if (form) { Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( QPixmap(icon), form->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(form); Content.push_back(taskbox); } else { Base::Console().Error("Failed to load UI file from '%s'\n", (const char*)fn.toUtf8()); } } else if (dlg.hasAttr(std::string("form"))) { Py::Object f(dlg.getAttr(std::string("form"))); Py::List widgets; if (f.isList()) { widgets = f; } else { widgets.append(f); } Gui::PythonWrapper wrap; if (wrap.loadCoreModule()) { for (Py::List::iterator it = widgets.begin(); it != widgets.end(); ++it) { QObject* object = wrap.toQObject(*it); if (object) { QWidget* form = qobject_cast<QWidget*>(object); if (form) { Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( form->windowIcon().pixmap(32), form->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(form); Content.push_back(taskbox); } } } } } }
TaskSketcherValidation::TaskSketcherValidation(Sketcher::SketchObject* Obj) { QWidget* widget = new SketcherValidation(Obj); Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( QPixmap(), widget->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(widget); Content.push_back(taskbox); }
TaskTessellation::TaskTessellation() { widget = new Tessellation(); Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( QPixmap()/*Gui::BitmapFactory().pixmap("MeshPart_Mesher")*/, widget->windowTitle(), true, 0); taskbox->groupLayout()->addWidget(widget); Content.push_back(taskbox); }
MeshInfoWatcher() : TaskWatcher(0) { labelPoints = new QLabel(); labelPoints->setText(QString::fromAscii("Number of points:")); labelFacets = new QLabel(); labelFacets->setText(QString::fromAscii("Number of facets:")); numPoints = new QLabel(); numFacets = new QLabel(); labelMin = new QLabel(); labelMin->setText(QString::fromAscii("Minumum bound:")); labelMax = new QLabel(); labelMax->setText(QString::fromAscii("Maximum bound:")); numMin = new QLabel(); numMax = new QLabel(); QGroupBox* box = new QGroupBox(); box->setTitle(QString::fromAscii("Mesh info box")); //box->setAutoFillBackground(true); QGridLayout* grid = new QGridLayout(box); grid->addWidget(labelPoints, 0, 0); grid->addWidget(numPoints, 0, 1); grid->addWidget(labelFacets, 1, 0); grid->addWidget(numFacets, 1, 1); grid->addWidget(labelMin, 2, 0); grid->addWidget(numMin, 2, 1); grid->addWidget(labelMax, 3, 0); grid->addWidget(numMax, 3, 1); Gui::TaskView::TaskBox* taskbox = new Gui::TaskView::TaskBox( QPixmap(), QString::fromAscii("Mesh info"), false, 0); taskbox->groupLayout()->addWidget(box); Content.push_back(taskbox); }
void TaskCSysDragger::setupGui() { Gui::TaskView::TaskBox *incrementsBox = new Gui::TaskView::TaskBox( Gui::BitmapFactory().pixmap("button_valid"), tr("Increments"), true, 0); QGridLayout *gridLayout = new QGridLayout(); gridLayout->setColumnStretch(1, 1); QLabel *tLabel = new QLabel(tr("Translation Increment:"), incrementsBox); gridLayout->addWidget(tLabel, 0, 0, Qt::AlignRight); int spinBoxWidth = QApplication::fontMetrics().averageCharWidth() * 20; tSpinBox = new QuantitySpinBox(incrementsBox); tSpinBox->setMinimum(0.0); tSpinBox->setMaximum(std::numeric_limits<double>::max()); tSpinBox->setUnit(Base::Unit::Length); tSpinBox->setMinimumWidth(spinBoxWidth); gridLayout->addWidget(tSpinBox, 0, 1, Qt::AlignLeft); QLabel *rLabel = new QLabel(tr("Rotation Increment:"), incrementsBox); gridLayout->addWidget(rLabel, 1, 0, Qt::AlignRight); rSpinBox = new QuantitySpinBox(incrementsBox); rSpinBox->setMinimum(0.0); rSpinBox->setMaximum(180.0); rSpinBox->setUnit(Base::Unit::Angle); rSpinBox->setMinimumWidth(spinBoxWidth); gridLayout->addWidget(rSpinBox, 1, 1, Qt::AlignLeft); incrementsBox->groupLayout()->addLayout(gridLayout); Content.push_back(incrementsBox); connect(tSpinBox, SIGNAL(valueChanged(double)), this, SLOT(onTIncrementSlot(double))); connect(rSpinBox, SIGNAL(valueChanged(double)), this, SLOT(onRIncrementSlot(double))); }
TaskWatcherPython::TaskWatcherPython(const Py::Object& o) : TaskWatcher(0), watcher(o) { QString title; if (watcher.hasAttr(std::string("title"))) { Py::String name(watcher.getAttr(std::string("title"))); std::string s = (std::string)name; title = QString::fromUtf8(s.c_str()); } QPixmap icon; if (watcher.hasAttr(std::string("icon"))) { Py::String name(watcher.getAttr(std::string("icon"))); std::string s = (std::string)name; icon = BitmapFactory().pixmap(s.c_str()); } Gui::TaskView::TaskBox *tb = 0; if (watcher.hasAttr(std::string("commands"))) { if (!tb) tb = new Gui::TaskView::TaskBox(icon, title, true, 0); Py::Sequence cmds(watcher.getAttr(std::string("commands"))); CommandManager &mgr = Gui::Application::Instance->commandManager(); for (Py::Sequence::iterator it = cmds.begin(); it != cmds.end(); ++it) { Py::String name(*it); std::string s = (std::string)name; Command *c = mgr.getCommandByName(s.c_str()); if (c) c->addTo(tb); } } if (watcher.hasAttr(std::string("widgets"))) { if (!tb && !title.isEmpty()) tb = new Gui::TaskView::TaskBox(icon, title, true, 0); Py::Sequence list(watcher.getAttr(std::string("widgets"))); Gui::PythonWrapper wrap; if (wrap.loadCoreModule()) { for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { QObject* object = wrap.toQObject(*it); if (object) { QWidget* w = qobject_cast<QWidget*>(object); if (w) { if (tb) tb->groupLayout()->addWidget(w); else Content.push_back(w); } } } } } if (tb) Content.push_back(tb); if (watcher.hasAttr(std::string("filter"))) { Py::String name(watcher.getAttr(std::string("filter"))); std::string s = (std::string)name; this->setFilter(s.c_str()); } }
TaskWatcherPython::TaskWatcherPython(const Py::Object& o) : TaskWatcher(0), watcher(o) { QString title; if (watcher.hasAttr(std::string("title"))) { Py::String name(watcher.getAttr(std::string("title"))); std::string s = (std::string)name; title = QString::fromUtf8(s.c_str()); } QPixmap icon; if (watcher.hasAttr(std::string("icon"))) { Py::String name(watcher.getAttr(std::string("icon"))); std::string s = (std::string)name; icon = BitmapFactory().pixmap(s.c_str()); } Gui::TaskView::TaskBox *tb = 0; if (watcher.hasAttr(std::string("commands"))) { if (!tb) tb = new Gui::TaskView::TaskBox(icon, title, true, 0); Py::List cmds(watcher.getAttr(std::string("commands"))); CommandManager &mgr = Gui::Application::Instance->commandManager(); for (Py::List::iterator it = cmds.begin(); it != cmds.end(); ++it) { Py::String name(*it); std::string s = (std::string)name; Command *c = mgr.getCommandByName(s.c_str()); if (c) c->addTo(tb); } } if (watcher.hasAttr(std::string("widgets"))) { if (!tb && !title.isEmpty()) tb = new Gui::TaskView::TaskBox(icon, title, true, 0); Py::List list(watcher.getAttr(std::string("widgets"))); Py::Module mainmod(PyImport_AddModule((char*)"sip")); Py::Callable func = mainmod.getDict().getItem("unwrapinstance"); for (Py::List::iterator it = list.begin(); it != list.end(); ++it) { Py::Tuple arguments(1); arguments[0] = *it; //PyQt pointer Py::Object result = func.apply(arguments); void* ptr = PyLong_AsVoidPtr(result.ptr()); QObject* object = reinterpret_cast<QObject*>(ptr); if (object) { QWidget* w = qobject_cast<QWidget*>(object); if (w) { if (tb) tb->groupLayout()->addWidget(w); else Content.push_back(w); } } } } if (tb) Content.push_back(tb); if (watcher.hasAttr(std::string("filter"))) { Py::String name(watcher.getAttr(std::string("filter"))); std::string s = (std::string)name; this->setFilter(s.c_str()); } }