/** * Shows a context menu for the block widget. Launched with a right click. */ void QG_BlockWidget::contextMenuEvent(QContextMenuEvent *e) { QMenu* contextMenu = new QMenu(this); QLabel* caption = new QLabel(tr("Block Menu"), this); QPalette palette; palette.setColor(caption->backgroundRole(), RS_Color(0,0,0)); palette.setColor(caption->foregroundRole(), RS_Color(255,255,255)); caption->setPalette(palette); caption->setAlignment( Qt::AlignCenter ); contextMenu->addAction( tr("&Defreeze all Blocks"), actionHandler, SLOT(slotBlocksDefreezeAll()), 0); contextMenu->addAction( tr("&Freeze all Blocks"), actionHandler, SLOT(slotBlocksFreezeAll()), 0); contextMenu->addAction( tr("&Add Block"), actionHandler, SLOT(slotBlocksAdd()), 0); contextMenu->addAction( tr("&Remove Block"), actionHandler, SLOT(slotBlocksRemove()), 0); contextMenu->addAction( tr("&Rename Block"), actionHandler, SLOT(slotBlocksAttributes()), 0); contextMenu->addAction( tr("&Edit Block"), actionHandler, SLOT(slotBlocksEdit()), 0); contextMenu->addAction( tr("&Insert Block"), actionHandler, SLOT(slotBlocksInsert()), 0); contextMenu->addAction( tr("&Toggle Visibility"), actionHandler, SLOT(slotBlocksToggleView()), 0); contextMenu->addAction( tr("&Create New Block"), actionHandler, SLOT(slotBlocksCreate()), 0); contextMenu->exec(QCursor::pos()); delete contextMenu; e->accept(); }
void QG_CadToolBarMain::setCadToolBar(QG_CadToolBar* tb) { if (tb!=NULL) { actionHandler= tb->getActionHandler(); } else { RS_DEBUG->print(RS_Debug::D_ERROR, "QG_CadToolBarMain::setCadToolBar(): No valid toolbar set."); } if (actionHandler!=NULL) { connect(bMenuLine, SIGNAL(clicked()), tb, SLOT(showToolBarLines())); connect(bMenuArc, SIGNAL(clicked()), tb, SLOT(showToolBarArcs())); connect(bMenuCircle, SIGNAL(clicked()), tb, SLOT(showToolBarCircles())); connect(bMenuEllipse, SIGNAL(clicked()), tb, SLOT(showToolBarEllipses())); connect(bMenuSpline, SIGNAL(clicked()), actionHandler, SLOT(slotDrawSpline())); connect(bMenuPolyline, SIGNAL(clicked()), tb, SLOT(showToolBarPolylines())); connect(bMenuPoint, SIGNAL(clicked()), actionHandler, SLOT(slotDrawPoint())); connect(bMenuText, SIGNAL(clicked()), //actionHandler, SLOT(slotDrawText())); this, SLOT(slotDrawText())); connect(bMenuDim, SIGNAL(clicked()), tb, SLOT(showToolBarDim())); connect(bMenuHatch, SIGNAL(clicked()), actionHandler, SLOT(slotDrawHatch())); connect(bMenuImage, SIGNAL(clicked()), this, SLOT(slotDrawImage())); //actionHandler, SLOT(slotDrawImage())); connect(bMenuModify, SIGNAL(clicked()), tb, SLOT(showToolBarModify())); connect(bMenuInfo, SIGNAL(clicked()), tb, SLOT(showToolBarInfo())); connect(bMenuBlock, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksCreate())); connect(bMenuSelect, SIGNAL(clicked()), tb, SLOT(showToolBarSelect())); } else { RS_DEBUG->print(RS_Debug::D_ERROR, "QG_CadToolBarMain::setCadToolBar(): No valid action handler set."); } }
/** * Constructor. */ QG_BlockWidget::QG_BlockWidget(QG_ActionHandler* ah, QWidget* parent, const char* name, Qt::WindowFlags f) : QWidget(parent, f) { setObjectName(name); actionHandler = ah; blockList = NULL; lastBlock = NULL; blockModel = new QG_BlockModel; blockView = new QTableView(this); blockView->setModel (blockModel); blockView->setShowGrid (false); blockView->setSelectionMode(QAbstractItemView::SingleSelection); blockView->setEditTriggers(QAbstractItemView::NoEditTriggers); blockView->setFocusPolicy(Qt::NoFocus); blockView->setColumnWidth(QG_BlockModel::VISIBLE, 20); blockView->verticalHeader()->hide(); blockView->horizontalHeader()->setStretchLastSection(true); blockView->horizontalHeader()->hide(); QVBoxLayout* lay = new QVBoxLayout(this); lay->setSpacing ( 0 ); lay->setContentsMargins(2, 2, 2, 2); QHBoxLayout* layButtons = new QHBoxLayout(); QHBoxLayout* layButtons2 = new QHBoxLayout(); QToolButton* but; // show all blocks: but = new QToolButton(this); but->setIcon(QIcon(":/ui/visibleblock.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Show all blocks")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksDefreezeAll())); layButtons->addWidget(but); // hide all blocks: but = new QToolButton(this); but->setIcon( QIcon(":/ui/hiddenblock.png") ); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Hide all blocks")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksFreezeAll())); layButtons->addWidget(but); // create block: but = new QToolButton(this); but->setIcon(QIcon(":/extui/menublock.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Create Block")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksCreate())); layButtons->addWidget(but); // add block: but = new QToolButton(this); but->setIcon(QIcon(":/ui/blockadd.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Add an empty block")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksAdd())); layButtons->addWidget(but); // remove block: but = new QToolButton(this); but->setIcon(QIcon(":/ui/blockremove.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Remove the active block")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksRemove())); layButtons->addWidget(but); // edit attributes: but = new QToolButton(this); but->setIcon(QIcon(":/ui/blockattributes.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Rename the active block")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksAttributes())); layButtons2->addWidget(but); // edit block: but = new QToolButton(this); but->setIcon(QIcon(":/ui/blockedit.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Edit the active block\n" "in a separate window")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksEdit())); layButtons2->addWidget(but); // save block: but = new QToolButton(this); but->setIcon(QIcon(":/main/filesave.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("save the active block to a file")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksSave())); layButtons2->addWidget(but); // insert block: but = new QToolButton(this); but->setIcon(QIcon(":/ui/blockinsert.png")); but->setMinimumSize(QSize(22,22)); but->setToolTip(tr("Insert the active block")); connect(but, SIGNAL(clicked()), actionHandler, SLOT(slotBlocksInsert())); layButtons2->addWidget(but); lay->addLayout(layButtons); lay->addLayout(layButtons2); lay->addWidget(blockView); connect(blockView, SIGNAL(clicked(QModelIndex)), this, SLOT(slotActivated(QModelIndex))); }