yesnopopupdlg.cpp 1.99 KB
#include "yesnopopupdlg.h"
#include "ui_yesnopopupdlg.h"

#include "soundplayer.h"

YesNoPopupDlg::YesNoPopupDlg(QWidget *parent, QString strDesc) :
    QDialog(parent),
    ui(new Ui::YesNoPopupDlg)
{
    ui->setupUi(this);
    this->setAttribute( Qt::WA_DeleteOnClose);
    setWindowFlags(Qt::FramelessWindowHint);
    setAttribute(Qt::WA_NoSystemBackground,false);
    setAttribute(Qt::WA_TranslucentBackground);
    qApp->setActiveWindow(this);
    this->setFocus();

    //setAttribute(Qt::WA_PaintOnScreen);



    ui->ctrLbDesc->setText(strDesc);


    //this->setAttribute( Qt::WA_DeleteOnClose);
    foreach (QPushButton *button, findChildren<QPushButton *>())
        connect(button, &QPushButton::pressed, SoundPlayer::playClick);
    ui->ctrBtnYes->setFocus();
}

YesNoPopupDlg::~YesNoPopupDlg()
{
    delete ui;
}

void YesNoPopupDlg::on_ctrBtnYes_clicked()
{
    this->accept();

}

void YesNoPopupDlg::on_ctrBtnNo_clicked()
{
    this->reject();
}

void YesNoPopupDlg::keyPressEvent(QKeyEvent *event){
    switch (event->key())
    {
    case 0x01000032:    // Turn left
        if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
        else ui->ctrBtnYes->setFocus();
        break;
    case 0x01000031:    // Push

        break;
    case 0x01000030:    // Turn right
        if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
        else ui->ctrBtnYes->setFocus();
        break;
    }
}

void YesNoPopupDlg::keyReleaseEvent(QKeyEvent *event){
    switch (event->key())
    {
    case 0x01000032:    // Turn left
        if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
        else ui->ctrBtnYes->setFocus();
        break;
    case 0x01000031:    // Push
    {
        QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
        if(btn != NULL){
            btn->click();
        }
        break;
    }
    case 0x01000030:    // Turn right
        if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
        else ui->ctrBtnYes->setFocus();
        break;
    }
}