示例#1
0
void ButtonHandler::Handle(decode_results* irResultsLink)
{
    if (irResultsLink->value == irRemoteButtonId)
    {
        BtnClick();
        delay(100);
        BeepHelper::Instance()->beep(500, 100);
        LcdBackLightHelper::Instance()->IncreaseLedTime();
    }

}
int PowerlineView::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QGraphicsView::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: translateText((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString*(*)>(_a[2]))); break;
        case 1: nodeClicked((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 2: nodeContextMenu((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< const QPoint(*)>(_a[2]))); break;
        case 3: btnClicked((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 4: onNodeClicked((*reinterpret_cast< PowerlineNode*(*)>(_a[1]))); break;
        case 5: onNodeContextMenu((*reinterpret_cast< PowerlineNode*(*)>(_a[1])),(*reinterpret_cast< const QPoint(*)>(_a[2]))); break;
        case 6: onMouseOverNode((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 7: BtnClick(); break;
        default: ;
        }
        _id -= 8;
    }
    return _id;
}
PowerlineView::PowerlineView(QWidget *parent)
    :QGraphicsView(parent)
    ,m_scene(0)
    ,m_InternetNode(0)
    ,m_InternetEdge(0)
	,m_RouterNode(0)
	,m_RouterEdge(0)
    //,m_routerRefreshTimerId(0)
    ,m_MouseOverNodeIdx(-1)
    ,m_TopEdge(NULL)
    ,m_TopNode(NULL)
    ,m_LocalDevSonPowel(0)
    ,m_nodePic(NULL)
    ,m_nextBtnProxy(NULL)
    ,m_nextPageBtn(NULL)
    ,m_prevPageBtn(NULL)
    ,m_preBtnProxy(NULL)
    ,m_idxStartPos(0)
    ,m_cacheData(NULL)
    ,m_bFirstStart(false)
	,m_localDevPCState(LOS_INIT)
	,m_IsInternetConnected(true)
	,m_lstPlDev(NULL)
	,m_IsRouterOk(false)
	,m_plLocalDevNode(NULL)
	,m_plLocalDevEdge(NULL)
{
    setViewportUpdateMode(FullViewportUpdate);
    setAttribute(Qt::WA_TranslucentBackground);
    setRenderHint(QPainter::Antialiasing);
    setCacheMode(QGraphicsView::CacheBackground);

    setStyleSheet(QString(TOPOLOGYVIEW_STYLE));

    m_scene = new QGraphicsScene(this);
    // m_scene->setSceneRect(QRectF(-257.443,-37.3571 ,515.985,74.7142) );
    m_scene->setSceneRect(QRectF(0,0 ,515.985,74.7142) );
    m_scene->setItemIndexMethod(QGraphicsScene::NoIndex);

    //    this->setInteractive(true);
    this->setScene(m_scene);

	setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
	setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
	setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    //////两个翻页按钮
    m_nextPageBtn = new QPushButton();
    m_prevPageBtn = new QPushButton();
    m_prevPageBtn->setObjectName("prevPageBtn");
    m_nextPageBtn->setObjectName("nextPageBtn");
    m_prevPageBtn->setAttribute(Qt::WA_TranslucentBackground);
    m_nextPageBtn->setAttribute(Qt::WA_TranslucentBackground);
    m_preBtnProxy = m_scene->addWidget(m_prevPageBtn);
    m_nextBtnProxy = m_scene->addWidget(m_nextPageBtn);
    m_prevPageBtn->setVisible(false);
    m_nextPageBtn->setVisible(false);

	//m_preBtnProxy->setAcceptHoverEvents(true);
	//m_nextBtnProxy->setAcceptHoverEvents(true);

    qreal r2 = 74.7142 / 2;
    m_preBtnProxy->setPos(-50, r2);
    m_nextBtnProxy->setPos(545, r2);
    connect(m_nextPageBtn, SIGNAL(clicked()), this, SLOT(BtnClick()));
    connect(m_prevPageBtn, SIGNAL(clicked()), this, SLOT(BtnClick()));
    ///////////End


    ///////锁的图片节点
    m_nodePic = new PowerlineNode();
    m_scene->addItem(m_nodePic);
    m_nodePic->m_deviceType = GDT_UNLOCKPIC;
    m_nodePic->hide();
    //connect(m_nodePic, SIGNAL(nodeMouseOver(int)), this, SLOT(onMouseOverNode(int)));
    /////////End

    initStyle();
}