void VCButton::parseWidgetMenu(int item) { switch (item) { case KVCMenuEditProperties: { VCButtonProperties* p = NULL; p = new VCButtonProperties(this); p->exec(); delete p; } break; case KVCMenuEditCopy: { VCButton* bt = NULL; bt = new VCButton(parentWidget()); bt->init(); bt->copyFrom(this); bt->show(); _app->doc()->setModified(true); } break; default: break; } }
void VirtualConsole::slotAddButtonMatrix() { VCWidget* parent(closestParent()); if (parent == NULL) return; AddVCButtonMatrix abm(this, m_doc); if (abm.exec() == QDialog::Rejected) return; int h = abm.horizontalCount(); int v = abm.verticalCount(); int sz = abm.buttonSize(); VCFrame* frame = NULL; if (abm.frameStyle() == AddVCButtonMatrix::NormalFrame) frame = new VCFrame(parent, m_doc); else frame = new VCSoloFrame(parent, m_doc); Q_ASSERT(frame != NULL); // Resize the parent frame to fit the buttons nicely and toggle resizing off frame->resize(QSize((h * sz) + 20, (v * sz) + 20)); frame->setAllowResize(false); for (int y = 0; y < v; y++) { for (int x = 0; x < h; x++) { VCButton* button = new VCButton(frame, m_doc); Q_ASSERT(button != NULL); button->move(QPoint(10 + (x * sz), 10 + (y * sz))); button->resize(QSize(sz, sz)); button->show(); int index = (y * h) + x; if (index < abm.functions().size()) { quint32 fid = abm.functions().at(index); Function* function = m_doc->function(fid); if (function != NULL) { button->setFunction(fid); button->setCaption(function->name()); } } } } // Show the frame after adding buttons to prevent flickering frame->show(); frame->move(parent->lastClickPoint()); frame->setAllowChildren(false); // Don't allow more children clearWidgetSelection(); setWidgetSelected(frame, true); m_doc->setModified(); }
void VirtualConsole::slotAddButton() { VCWidget* parent(closestParent()); if (parent == NULL) return; VCButton* button = new VCButton(parent, m_doc); Q_ASSERT(button != NULL); button->show(); button->move(parent->lastClickPoint()); clearWidgetSelection(); setWidgetSelected(button, true); m_doc->setModified(); }
void VCFrame::slotAddButton(QPoint p) { VCButton* b = new VCButton(this); assert(b); b->init(); b->show(); if (buttonBehaviour() == VCFrame::Exclusive) { b->setExclusive(true); } else { b->setExclusive(false); } b->move(p); _app->doc()->setModified(true); }
void VCFrame::addButton(QPoint at) { VCButton* button = new VCButton(this); Q_ASSERT(button != NULL); button->show(); if (this->buttonBehaviour() == VCFrame::Exclusive) button->setExclusive(true); else button->setExclusive(false); if (at.isNull() == false) button->move(at); else button->move(m_mousePressPoint); _app->virtualConsole()->setSelectedWidget(button); _app->doc()->setModified(); }
void VirtualConsole::slotAddButton() { QWidget* parent = NULL; if (m_selectedWidget && QString(m_selectedWidget->className()) == QString("VCFrame")) { parent = m_selectedWidget; } else { parent = m_drawArea; } VCButton* b = new VCButton(parent); assert(b); b->init(); b->show(); _app->doc()->setModified(true); }
bool VCButton::loader(QDomDocument* doc, QDomElement* root, QWidget* parent) { VCButton* button = NULL; Q_ASSERT(doc != NULL); Q_ASSERT(root != NULL); Q_ASSERT(parent != NULL); if (root->tagName() != KXMLQLCVCButton) { qWarning("Button node not found!"); return false; } /* Create a new button into its parent */ button = new VCButton(parent); button->show(); /* Continue loading */ return button->loadXML(doc, root); }
bool VCFrame::loadXML(const QDomElement* root) { bool visible = false; int x = 0; int y = 0; int w = 0; int h = 0; QDomNode node; QDomElement tag; QString str; Q_ASSERT(root != NULL); if (root->tagName() != xmlTagName()) { qWarning() << Q_FUNC_INFO << "Frame node not found"; return false; } /* Caption */ setCaption(root->attribute(KXMLQLCVCCaption)); /* Children */ node = root->firstChild(); while (node.isNull() == false) { tag = node.toElement(); if (tag.tagName() == KXMLQLCWindowState) { loadXMLWindowState(&tag, &x, &y, &w, &h, &visible); setGeometry(x, y, w, h); } else if (tag.tagName() == KXMLQLCVCAppearance) { loadXMLAppearance(&tag); } else if (tag.tagName() == KXMLQLCVCFrame) { /* Create a new frame into its parent */ VCFrame* frame = new VCFrame(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (frame->loadXML(&tag) == false) delete frame; else frame->show(); } else if (tag.tagName() == KXMLQLCVCLabel) { /* Create a new label into its parent */ VCLabel* label = new VCLabel(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (label->loadXML(&tag) == false) delete label; else label->show(); } else if (tag.tagName() == KXMLQLCVCButton) { /* Create a new button into its parent */ VCButton* button = new VCButton(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (button->loadXML(&tag) == false) delete button; else button->show(); } else if (tag.tagName() == KXMLQLCVCXYPad) { /* Create a new xy pad into its parent */ VCXYPad* xypad = new VCXYPad(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (xypad->loadXML(&tag) == false) delete xypad; else xypad->show(); } else if (tag.tagName() == KXMLQLCVCSlider) { /* Create a new slider into its parent */ VCSlider* slider = new VCSlider(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (slider->loadXML(&tag) == false) delete slider; else slider->show(); } else if (tag.tagName() == KXMLQLCVCSoloFrame) { /* Create a new frame into its parent */ VCSoloFrame* soloframe = new VCSoloFrame(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (soloframe->loadXML(&tag) == false) delete soloframe; else soloframe->show(); } else if (tag.tagName() == KXMLQLCVCCueList) { /* Create a new cuelist into its parent */ VCCueList* cuelist = new VCCueList(this, m_doc, m_outputMap, m_inputMap, m_masterTimer); if (cuelist->loadXML(&tag) == false) delete cuelist; else cuelist->show(); } else { qWarning() << Q_FUNC_INFO << "Unknown frame tag:" << tag.tagName(); } node = node.nextSibling(); } return true; }