config.cpp 6.19 KB
#include <QDebug>
#include <QDateTime>
#include "config.h"
#include "configdatetimedlg.h"
#include "configlanguagedlg.h"
#include "configtemptypedlg.h"
#include "configbacklightdlg.h"
#include "configtimeformatdlg.h"
#include "configresttimeformatdlg.h"
#include "configmastervolumedlg.h"
#include "configsoundselelectdlg.h"
#include "yesnopopupdlg.h"

using namespace Define;

Config* Config::instance = NULL;

Config::Config(QObject *parent) : QObject(parent)
{
    memcpy(config_format,config_format_kr,MAX_CONFIG_COUNT*64);
//    m_setFavorite.insert(2);
//    m_setFavorite.insert(3);
//    m_setFavorite.insert(1);
//    QSetIterator<uint32_t> i = getConstBeginFavorite();
//    while(i.hasNext()){
//        temp = i.next();
//        qDebug() << temp;
//    }
//    while(i.hasPrevious()){
//        temp = i.previous();
//        qDebug() << temp;
//    }
}

Config::~Config(){

}

Config* Config::getInstance(QObject *parent){
    if(instance ==NULL){
        instance = new Config(parent);
    }
    return instance;
}

bool Config::saveConfig(){
    return false;
}

bool Config::loadConfig(){
    return false;
}


Define::config_item Config::getConfigValue(Define::ConfigType idx){
    return configlist.values[idx];
}



void Config::setConfigValue(Define::ConfigType idx, Define::config_item& itemdata){
    configlist.values[idx] = itemdata;
}


QString Config::getValueString(Define::ConfigType idx){
    QString qstrTemp="";
    if( (config_data_type[(uint32_t)idx] & 0x80) ==0){
        switch(config_data_type[(uint32_t)idx]){
        case 0:
            qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].d32);
        break;
        case 1:
            qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].f32);
            break;
        case 2:
            qstrTemp = tr(config_format[(uint32_t)idx]);
        case 3:
            qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].d32+1);
            break;
        }
        return qstrTemp;
    }

    QDateTime qdt = QDateTime::currentDateTime();

    switch(idx){
        case config_language:
        if(configlist.items.language.d32 >=3) configlist.items.language.d32 = 0;
        qstrTemp = tr(language_menu[configlist.items.language.d32]);
        break;

    case config_datetime:
        qstrTemp = qdt.toString("yyyy.MM.dd hh:mm");
        break;

    case config_temptype:
        if(configlist.items.temptype.d32 >=2 ) configlist.items.temptype.d32 = 0;
        qstrTemp = tr(temptype_menu[configlist.items.temptype.d32]);
        break;
    case config_best_dish_weight:
        if(configlist.items.best_dish_weight.d32 >=4) configlist.items.best_dish_weight.d32 = 0;
        qstrTemp = tr(best_dish_weight_menu[configlist.items.best_dish_weight.d32]);
        break;
    case config_party_dish_weight:
        if(configlist.items.party_dish_weight.d32 >=4) configlist.items.party_dish_weight.d32 = 0;
        qstrTemp = tr(best_dish_weight_menu[configlist.items.party_dish_weight.d32]);
        break;
    case config_time_type:
        if(configlist.items.time_type.d32 >=2) configlist.items.time_type.d32 = 0;
        qstrTemp = tr(time_type_menu[configlist.items.time_type.d32]);
        break;
    case config_resttime_format:
        if(configlist.items.resttime_format.d32 >=2) configlist.items.resttime_format.d32 = 0;
        qstrTemp = tr(rest_time_type_menu[configlist.items.resttime_format.d32]);
        break;
    case config_ip:
        qstrTemp.sprintf("%3d.%3d.%3d.%3d", configlist.items.ip.d8.d8_0,configlist.items.ip.d8.d8_1,configlist.items.ip.d8.d8_2,configlist.items.ip.d8.d8_3);
        break;
    default:
        break;
    }
    return qstrTemp;
}

QString Config::getTitleString(Define::ConfigType idx){
    QString strTemp ="";
    strTemp = tr(config_title[idx]);
    return strTemp;
}

bool Config::isFavorite(Define::ConfigType idx){
    return m_setFavorite.contains((uint32_t)idx);
    return true;
}

QSetIterator<uint32_t> Config::getConstBeginFavorite(){
    QSetIterator<uint32_t> i(m_setFavorite);
    return i;
}

bool Config::loadFavorite(void){
    return false;
}

bool Config::saveFavorite(void){
    return false;
}

void Config::insertFavorite(Define::ConfigType idx){
    m_setFavorite.insert((uint32_t)idx);
}
void Config::removeFavorite(Define::ConfigType idx){
    m_setFavorite.remove((uint32_t)idx);
}

QString Config::getDateTimeString(uint32_t sec){
    Config* ins = getInstance();
    QString strTemp="";
    if(ins->configlist.items.temptype.d32==0){

    }
    return strTemp;
}

QString Config::getTempString(int cel_temp){
    Config* ins = getInstance();
    QString strTemp="";
    if(ins->configlist.items.temptype.d32==0){

    }
    return strTemp;
}

void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){
    QDialog *dlg;
    switch(idx){
    case config_datetime:
        dlg = new ConfigDateTimeDlg(parent);
        break;
    case config_language:
        dlg = new ConfigLanguageDlg(parent);
        break;
    case config_temptype:
        dlg = new ConfigTempTypeDlg(parent);
        break;
    case config_backlight:
        dlg = new ConfigBackLightDlg(parent);
        break;
    case config_time_type:
        dlg = new ConfigTimeFormatDlg(parent);
        break;
    case config_resttime_format:
        dlg = new configResttimeFormatDlg(parent);
        break;
    case config_marster_vol:
        dlg = new ConfigMasterVolumeDlg(parent);
        break;
    case config_keypad_sound1:
    case config_keypad_sound2:
    case config_request_loadexec:
    case config_programstep_finish:
    case config_cooktime_finish:
    case config_stoperror_distinguish:
        dlg = new ConfigSoundSelelectDlg(parent,idx);
        break;
     case config_sound_factory_reset:
        dlg = new YesNoPopupDlg(parent, tr("모든 음향설정 값을 공장초기화\r하시겠습니까?"));
        break;
    }
    if(dlg == NULL) return;
    dlg->setWindowModality(Qt::WindowModal);
    dlg->exec();
    if(dlg->result() == QDialog::Accepted){
        qDebug()<<"Accepted";
        if(idx == config_sound_factory_reset){
            //Sound Fatory Reset
            qDebug() << "Process Sound Config Reset";
        }
    }
    else{
        qDebug() << "rejected";
    }
}