configfileprocessdlg.cpp 2.71 KB
#include "configfileprocessdlg.h"
#include "ui_configfileprocessdlg.h"
#include "config.h"
#include "fileprocessdlg.h"
#include "soundplayer.h"

ConfigFileProcessDlg::ConfigFileProcessDlg(QWidget *parent, ConfigType type, bool isDown) :
    QDialog(parent),
    ui(new Ui::ConfigFileProcessDlg)
{
    Config* cfg = Config::getInstance();
    ui->setupUi(this);    
    setWindowFlags(Qt::FramelessWindowHint);
    setAttribute(Qt::WA_NoSystemBackground);
    setAttribute(Qt::WA_TranslucentBackground);
    setAttribute(Qt::WA_DeleteOnClose);
    qApp->setActiveWindow(this);
    this->setFocus();

    foreach (QPushButton *button, findChildren<QPushButton *>())
        connect(button, &QPushButton::pressed, SoundPlayer::playClick);

    m_bIsDown = isDown;
    if(type < config_invalid)
    {
        m_nCfgtype = type;
        ui->ctrLbTitle->setText(cfg->getTitleString(m_nCfgtype));
        if(!isDown){
            ui->ctrBtnOk->setStyleSheet(" QPushButton{ \
                                            border-image : url(:/images/config/111_icon_upload.png);\
                                        }\
                                        QPushButton::pressed, QPushButton::focus{\
                                            border-image : url(:/images/config/111_icon_upload.png);\
                                        });");

        }
    }

}

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

void ConfigFileProcessDlg::on_ctrBtnOk_clicked()
{
    QDialog *dg;
    dg = new FileProcessDlg(parentWidget(),m_nCfgtype, m_bIsDown);
    dg->exec();
    deleteLater();
}

void ConfigFileProcessDlg::on_ctrBtnCancel_clicked()
{
    deleteLater();
}


void ConfigFileProcessDlg::keyPressEvent(QKeyEvent *event){
    switch (event->key())
    {
    case 0x01000032:    // Turn left
        if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
        else ui->ctrBtnOk->setFocus();
        break;
    case 0x01000031:    // Push
        break;
    case 0x01000030:    // Turn right
        if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
        else ui->ctrBtnOk->setFocus();
        break;
    }
}

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