void UIGraphicsRotatorButton::setAutoHandleButtonClick(bool fEnabled) { /* Disconnect button-click signal: */ disconnect(this, SIGNAL(sigButtonClicked()), this, SLOT(sltButtonClicked())); if (fEnabled) { /* Connect button-click signal: */ connect(this, SIGNAL(sigButtonClicked()), this, SLOT(sltButtonClicked())); } }
void UIGraphicsButton::mouseReleaseEvent(QGraphicsSceneMouseEvent *pEvent) { /* Call to base-class: */ QIGraphicsWidget::mouseReleaseEvent(pEvent); /* Notify listeners about button click: */ emit sigButtonClicked(); }
void UIGChooserItemMachine::prepare() { /* Create tool-bar: */ m_pToolBar = new UIGraphicsToolBar(this, 2, 2); /* Create buttons: */ m_pSettingsButton = new UIGraphicsZoomButton(m_pToolBar, data(MachineItemData_SettingsButtonPixmap).value<QIcon>(), UIGraphicsZoomDirection_Top | UIGraphicsZoomDirection_Left); m_pSettingsButton->setIndent(m_pToolBar->toolBarMargin() - 1); m_pToolBar->insertItem(m_pSettingsButton, 0, 0); m_pStartButton = new UIGraphicsZoomButton(m_pToolBar, data(MachineItemData_StartButtonPixmap).value<QIcon>(), UIGraphicsZoomDirection_Top | UIGraphicsZoomDirection_Right); m_pStartButton->setIndent(m_pToolBar->toolBarMargin() - 1); m_pToolBar->insertItem(m_pStartButton, 0, 1); m_pPauseButton = new UIGraphicsZoomButton(m_pToolBar, data(MachineItemData_PauseButtonPixmap).value<QIcon>(), UIGraphicsZoomDirection_Bottom | UIGraphicsZoomDirection_Left); m_pPauseButton->setIndent(m_pToolBar->toolBarMargin() - 1); m_pToolBar->insertItem(m_pPauseButton, 1, 0); m_pCloseButton = new UIGraphicsZoomButton(m_pToolBar, data(MachineItemData_CloseButtonPixmap).value<QIcon>(), UIGraphicsZoomDirection_Bottom | UIGraphicsZoomDirection_Right); m_pCloseButton->setIndent(m_pToolBar->toolBarMargin() - 1); m_pToolBar->insertItem(m_pCloseButton, 1, 1); connect(m_pSettingsButton, SIGNAL(sigButtonClicked()), gActionPool->action(UIActionIndexSelector_Simple_Machine_Settings), SLOT(trigger()), Qt::QueuedConnection); connect(m_pStartButton, SIGNAL(sigButtonClicked()), gActionPool->action(UIActionIndexSelector_State_Common_StartOrShow), SLOT(trigger()), Qt::QueuedConnection); connect(m_pPauseButton, SIGNAL(sigButtonClicked()), gActionPool->action(UIActionIndexSelector_Toggle_Common_PauseAndResume), SLOT(trigger()), Qt::QueuedConnection); connect(m_pCloseButton, SIGNAL(sigButtonClicked()), gActionPool->action(UIActionIndexSelector_Simple_Machine_Close_PowerOff), SLOT(trigger()), Qt::QueuedConnection); }
void UIGDetailsElement::prepareButton() { /* Setup toggle-button: */ m_pButton = new UIGraphicsRotatorButton(this, "additionalHeight", !m_fClosed, true /* reflected */); m_pButton->setAutoHandleButtonClick(false); connect(m_pButton, SIGNAL(sigButtonClicked()), this, SLOT(sltToggleButtonClicked())); connect(m_pButton, SIGNAL(sigRotationStart()), this, SLOT(sltElementToggleStart())); connect(m_pButton, SIGNAL(sigRotationFinish(bool)), this, SLOT(sltElementToggleFinish(bool))); m_buttonSize = m_pButton->minimumSizeHint().toSize(); }
CScreenShotView::CScreenShotView(const QList<QRect> &rectList, QScreen *screen, bool onlySelect, QWidget *parent) :QGraphicsView(parent) ,m_windowRectList(rectList) ,m_desktopScreen(screen) ,m_screen(NULL) ,m_backgroundItem(NULL) ,m_selectRectItem(NULL) ,m_toolbarItem(NULL) ,m_currentRectItem(NULL) ,m_tooltipSizeItem(NULL) ,m_previewItem(NULL) ,m_positionType(CSCREEN_POSITION_TYPE_NOT_CONTAIN) ,m_shotStatus(CSCREEN_SHOT_STATE_INITIALIZED) ,m_screenButtonType(CSCREEN_BUTTON_TYPE_UNDEFINED) ,m_isPressed(false) ,m_isLocked(false) ,m_isValid(false) ,m_onlySelect(onlySelect) { C_SCREENSHOT_LOG_FUNCTION; this->setMouseTracking(true); m_screen = new CScreenShotScene(this); this->setScene(m_screen); QRect geometry= screen->geometry(); C_SCREENSHOT_LOG_INFO(QString("screen->geometry() (%1,%2,%3,%4)") .arg(geometry.x()) .arg(geometry.y()) .arg(geometry.width()) .arg(geometry.height())); C_SCREENSHOT_LOG_TEST; QPixmap pixmap = createDesktopPixmap(); C_SCREENSHOT_LOG_TEST; drawPixmap(pixmap); m_backgroundItem = new QGraphicsPixmapItem(m_backgroundPixmap); m_screen->addItem(m_backgroundItem); C_SCREENSHOT_LOG_TEST; this->setGeometry(geometry); m_screen->setSceneRect(QRect(0,0,geometry.width(),geometry.height())); m_sx = 1.0 * geometry.width() / pixmap.width(); m_sy = 1.0 * geometry.height() / pixmap.height(); m_backgroundItem->setScale(m_sx); m_selectRectItem = new CScreenSelectRectItem(m_desktopPixmap); m_selectRectItem->setScale(m_sx); m_selectRectItem->setVisible(false); m_screen->addItem(m_selectRectItem); C_SCREENSHOT_LOG_TEST; //==================== m_toolbarItem = new CScreenEditorToolbarItem; connect(m_toolbarItem,SIGNAL(sigButtonClicked(CScreenButtonType)), this,SLOT(onButtonClicked(CScreenButtonType))); m_toolbarItem->setVisible(false); m_toolbarItem->setZValue(m_selectRectItem->zValue() + 1); m_screen->addItem(m_toolbarItem); m_tooltipSizeItem = new CScreenTooltipItem; C_SCREENSHOT_LOG_TEST; m_tooltipSizeItem->setVisible(false); m_screen->addItem(m_tooltipSizeItem); m_previewItem = new QGraphicsPixmapItem; m_previewItem->setVisible(false); m_previewItem->setZValue(m_toolbarItem->zValue() + 1); C_SCREENSHOT_LOG_TEST; m_screen->addItem(m_previewItem); this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setStyleSheet("QWidget{border: 0px solid #1880ed;}"); #ifdef Q_OS_MAC qApp->installEventFilter(this); #endif QPoint pos = QCursor::pos(); if(geometry.contains(pos)) { //TODO 暂时屏蔽 为了快速启动,耗时400ms // updatePreviewItem(this->mapFromGlobal(pos)); } C_SCREENSHOT_LOG_TEST; }