#include "rm_popup_info.h" #if !(PLAYER_ONLY_LIBRARY_MODE) #include "../fm_dimensions.h" #include #include "rm_button.h" #include "fm_button.h" #include "rm_popup_content_background.h" #include "title_widget.h" #include "../core/fm_strings.h" #if (HWACCEL_SETTING) #include "rm_widget_checkbox.h" #include #include #endif #include #if (SELECT_AUDIO_BACKEND) #include "../core/rm_player.h" #include "../fav/AudioOutputBackend.h" #include #include #endif #if (SYSTEM_INFO_DIALOG) #include "../ui/fm_systeminfo_dialog.h" #endif RMPopupInfo::RMPopupInfo(QWidget *parent,QString fw, QString gps) : RMPopup(parent,FMS::txt("viewer_sw_version"),"") { #if (RM_MODEL_EMT_KR) int height = POPUP_INFO_HEIGHT; //#if (HWACCEL_SETTING) // height += 30; //#endif // HWACCEL_SETTING this->setFixedSize(POPUP_INFO_WIDTH,height); _title->closeButton->setHidden(true); QVBoxLayout* layout = new QVBoxLayout(_contentWidget); layout->setContentsMargins(10,13,10,12); QWidget* bg = new QWidget(_contentWidget); layout->addWidget(bg); QVBoxLayout* contentLayout = new QVBoxLayout(bg); contentLayout->setAlignment(Qt::AlignTop); int vSpace = 8; QString prefix = QString(" "); RMLayout::addThemeLabel(bg, contentLayout, FMS::txt("viewer_sw_version"), "version_header"); QString swVersion; swVersion.sprintf("v%d.%d.%d",RM_MODEL_VERSION_0,RM_MODEL_VERSION_1,RM_MODEL_VERSION_2); RMLayout::addThemeLabel(bg,contentLayout,QString(prefix+swVersion),"version_label"); #if (HWACCEL_SETTING) RMLayout::addSpacer(contentLayout,0,vSpace); QWidget* hw = new QWidget(bg); contentLayout->addWidget(hw); QHBoxLayout* hwl = new QHBoxLayout(hw); hwl->setMargin(0); //RMLayout::addSpacer(hwl,20,0); RMWidgetCheckBox* chkBox = new RMWidgetCheckBox(hw); chkBox->setObjectName("popup"); chkBox->setText(FMS::txt("hw_accel")); hwl->addWidget(chkBox); // Black List 된 ... if(RMApp::checkGPU()) { chkBox->setEnabled(false); chkBox->setChecked(false); } else { chkBox->setChecked(RMSettings::instance()->HWAccelOff() == false); } connect(chkBox,SIGNAL(clicked()),SLOT(onHWAccelClicked())); RMLayout::addSpacer(contentLayout,0,vSpace); #endif // HWACCEL_SETTING RMButton* okButton = RMButton::create2(_buttonWidget,_buttonLayout,"button","ok",QSize(120,30)); okButton->setText(FMS::txt("ok")); connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); #else // RM_MODEL_EMT_KR int height = POPUP_INFO_HEIGHT; #if !(USE_GPS_VERSION) height -= 30; #endif #if (HWACCEL_SETTING) height += 30; #endif #if (SELECT_AUDIO_BACKEND) height += 60; #endif #if (SYSTEM_INFO_DIALOG) height += 30; #endif this->setFixedSize(POPUP_INFO_WIDTH,height); _title->closeButton->setHidden(true); QVBoxLayout* layout = new QVBoxLayout(_contentWidget); layout->setContentsMargins(10,13,10,12); RMPopupContentBackground* bg = new RMPopupContentBackground(_contentWidget); layout->addWidget(bg); QVBoxLayout* contentLayout = new QVBoxLayout(bg); contentLayout->setAlignment(Qt::AlignTop); int vSpace = 8; QString prefix = QString(" "); // 1.Viewer Version // Viewer S/W バージョン情報 #if (LIVE_LANGUAGE_CHANGE && !REMOVE_OLD_C) if(RMLanguage::isJP() == false) { _title->titleLabel->setText("Viewer S/W Version Info."); RMLayout::addLabel(bg, contentLayout, QString("Viewer S/W Version Info."), "text_header_label"); } else { #endif // LIVE_LANGUAGE_CHANGE??? RMLayout::addLabel(bg, contentLayout, FMS::txt("viewer_sw_version"), "text_header_label"); #if (LIVE_LANGUAGE_CHANGE && !REMOVE_OLD_C) } #endif QString swVersion; swVersion.sprintf("Version : %d.%d.%d",RM_MODEL_VERSION_0,RM_MODEL_VERSION_1,RM_MODEL_VERSION_2); #if (RM_MODEL == RM_MODEL_TYPE_ADT_CAPS) //swVersion += "\n"; swVersion += MKU8("\xeb\x8d\xb0\xeb\xaa\xa8\xeb\xb2\x84\xec\xa0\x84"); #endif #if !defined(SUPPRESS_ALL_TESTER) swVersion += " TEST"; #endif #if (MODEL_TEST_MODE && !(HIDE_BUILD_NO)) swVersion += " (" + QString::number(RM_MODEL_SVN_VERSION) + ")"; #endif #if (SYSTEM_INFO_DIALOG) swVersion += " [TEST ONLY]"; #endif #if (DEMO_BUILD) swVersion += " [TEST ONLY]"; #endif #if (RM_MODEL_EMT_KR) RMLayout::addThemeLabel(bg,contentLayout,QString(prefix+swVersion),"version_label"); #else RMLayout::addLabel(bg,contentLayout,QString(prefix+swVersion),"text_normal_label"); #endif #if(REMOVE_OLD_C) #if(SUPPORT_LANGUAGE_INSERT) FMS::insert_if_not_exist(1,"settings_file_not_exist",FM_WSTR(L"設定ファイルがありません。")); FMS::insert_if_not_exist(2,"settings_file_not_exist",FM_WSTR(L"설정 파일이 존재하지 않습니다")); FMS::insert_if_not_exist(3,"settings_file_not_exist",FM_WSTR(L"Settings file not exist")); #endif // #if(SUPPORT_LANGUAGE_INSERT) QString noCFG = FMS::txt("settings_file_not_exist"); #else // #if(REMOVE_OLD_C) // 設定ファイルがありません。 QString noCFG = MKU8("\xe8\xa8\xad\xe5\xae\x9a\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x81\x8c\xe3\x81\x82\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82"); #if (LIVE_LANGUAGE_CHANGE) if(RMLanguage::isJP() == false) { noCFG = "Settings file not exist"; } #endif #endif // #if(REMOVE_OLD_C) #if !(TOP_DOWN_360) #if (HWACCEL_SETTING) RMLayout::addSpacer(contentLayout,0,vSpace); QWidget* hw = new QWidget(bg); contentLayout->addWidget(hw); QHBoxLayout* hwl = new QHBoxLayout(hw); hwl->setMargin(0); RMLayout::addSpacer(hwl,20,0); RMWidgetCheckBox* chkBox = new RMWidgetCheckBox(hw); chkBox->setObjectName("popup"); //MKU8("\xe3\x83\x8f\xe3\x83\xbc\xe3\x83\x89\xe3\x82\xa6\xe3\x82\xa7\xe3\x82\xa2\xe3\x82\xa2\xe3\x82\xaf\xe3\x82\xbb\xe3\x83\xa9\xe3\x83\xac\xe3\x83\xbc\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3")); chkBox->setText(FMS::txt("hw_accel")); #if(!REMOVE_OLD_C) #if (LIVE_LANGUAGE_CHANGE) if(RMLanguage::isJP() == false) { chkBox->setText("Enable H/W Acceleration"); } #endif #endif // #if(REMOVE_OLD_C) hwl->addWidget(chkBox); // Black List 된 ... if(RMApp::checkGPU()) { chkBox->setEnabled(false); chkBox->setChecked(false); } else { chkBox->setChecked(RMSettings::instance()->HWAccelOff() == false); } connect(chkBox,SIGNAL(clicked()),SLOT(onHWAccelClicked())); #endif // HWACCEL_SETTING #endif // #if !(TOP_DOWN_360) RMLayout::addSpacer(contentLayout,0,vSpace); #if (SELECT_AUDIO_BACKEND) QGroupBox* widgetAudio = new QGroupBox(bg); widgetAudio->setObjectName("sub"); widgetAudio->setFixedHeight(60); contentLayout->addWidget(widgetAudio); QVBoxLayout* layoutAudio = new QVBoxLayout(widgetAudio); layoutAudio->setMargin(5); layoutAudio->setSpacing(5); RMLayout::addLabel(widgetAudio,layoutAudio,FM_WSTR(L"サウンドデバイス:"),"text_normal_label"); //RMLayout::addSpacer(layoutAudio,20,0); soundCombo = new QComboBox(widgetAudio); soundCombo->setMinimumWidth(200); soundCombo->setSizeAdjustPolicy(QComboBox::AdjustToContentsOnFirstShow); soundCombo->setObjectName("settings"); deviceList = FAV::globalSounddeviceList(); deviceList.insert(0,QPair("Auto",-1)); QStringList deviceStringList = QStringList(); for(int i=0;iaddItems(deviceStringList); layoutAudio->addWidget(soundCombo); updateSoundCombo(); connect(soundCombo,SIGNAL(currentIndexChanged(int)),SLOT(onSelectSoundDevice(int))); // RMWidgetCheckBox* chkBoxAudio = new RMWidgetCheckBox(widgetAudio); // chkBoxAudio->setObjectName("popup"); // chkBoxAudio->setChecked(RMSettings::instance()->XAudioOff() == false); // chkBoxAudio->setText(FMS::txt("directx_audio")); // layoutAudio->addWidget(chkBoxAudio); // connect(chkBoxAudio,SIGNAL(clicked()),SLOT(onDirectXSoundClicked())); #endif #if (SYSTEM_INFO_DIALOG) QWidget* widgetInfo = new QWidget(bg); contentLayout->addWidget(widgetInfo); QHBoxLayout* layoutInfo = new QHBoxLayout(widgetInfo); layoutInfo->setMargin(0); RMLayout::addSpacer(layoutInfo,20,0); layoutInfo->setAlignment(Qt::AlignLeft); RMButton* infoButton = RMButton::create(widgetInfo,layoutInfo,"button_small",FMS::txt("ok"),QSize(160,20)); infoButton->setText("SYSTEM INFO"); //layoutAudio->addWidget(chkBoxAudio); connect(infoButton,SIGNAL(clicked()),this,SLOT(onSystemInfo())); #endif #if (LIVE_LANGUAGE2) RMButton* okButton = RMButton::create2(_buttonWidget,_buttonLayout,"button","ok",QSize(120,30)); okButton->setText(FMS::txt("ok")); #else // LIVE_LANGUAGE2 RMButton* okButton = RMButton::create(_buttonWidget,_buttonLayout,"button",FMS::txt("ok"),QSize(120,30)); okButton->setText("OK"); #endif // LIVE_LANGUAGE2 connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); #endif // RM_MODEL_EMT_KR } #if (SELECT_AUDIO_BACKEND) void RMPopupInfo::updateSoundCombo() { //deviceList = FAV::globalSounddeviceList(); //deviceList.insert(0,QPair("Auto",-1)); //QStringList deviceStringList = QStringList(); QString selected = RMSettings::instance()->AudioDevice(); int currentIndex = 0; for(int i=0;iblockSignals(true); soundCombo->setCurrentIndex(currentIndex); soundCombo->blockSignals(false); } void RMPopupInfo::onSelectSoundDevice(int index) { if(RMSettings::instance()->AudioDevice() != deviceList.at(index).first) { QMessageBox msgBox(QMessageBox::Warning, "", FMS::txt("restart_msg"), QMessageBox::Yes | QMessageBox::No, this); msgBox.setButtonText(QMessageBox::Yes, FMS::txt("ok")); msgBox.setButtonText(QMessageBox::No, FMS::txt("cancel")); if(msgBox.exec() == QMessageBox::Yes) { QString name = index == 0 ? "" : deviceList.at(index).first; RMSettings::instance()->setAudioDevice(name); RMPopupInfo::restart(); } else { updateSoundCombo(); } } // qInfo() << index << __FUNCTION__; } /* void RMPopupInfo::onDirectXSoundClicked() { RMWidgetCheckBox* checkbox = qobject_cast(QObject::sender()); if(checkbox != NULL) { bool on = checkbox->checkState() == Qt::Checked; QMessageBox msgBox(QMessageBox::Warning, "", FMS::txt("restart_msg"), QMessageBox::Yes | QMessageBox::No, this); msgBox.setButtonText(QMessageBox::Yes, FMS::txt("ok")); msgBox.setButtonText(QMessageBox::No, FMS::txt("cancel")); if(msgBox.exec() == QMessageBox::Yes) { RMSettings::instance()->setXAudioOff(!on); RMPopupInfo::restart(); } else { checkbox->setCheckState(on ? Qt::Unchecked : Qt::Checked); } } } */ #endif // SELECT_AUDIO_BACKEND #if (HWACCEL_SETTING) void RMPopupInfo::onHWAccelClicked() { RMWidgetCheckBox* checkbox = qobject_cast(QObject::sender()); if(checkbox != NULL) { // 再起動をします bool on = checkbox->checkState() == Qt::Checked; // QString message = MKU8("\xe5\x86\x8d\xe8\xb5\xb7\xe5\x8b\x95\xe3\x82\x92\xe3\x81\x97\xe3\x81\xbe\xe3\x81\x99"); //#if (LIVE_LANGUAGE_CHANGE) // if(RMLanguage::isJP() == false) // { // message = "The application must restart in order to enable/disable H/W acceleration"; // } //#endif // LIVE_LANGUAGE_CHANGE QMessageBox msgBox(QMessageBox::Warning, "", FMS::txt("restart_msg"), QMessageBox::Yes | QMessageBox::No, this); msgBox.setButtonText(QMessageBox::Yes, FMS::txt("ok")); msgBox.setButtonText(QMessageBox::No, FMS::txt("cancel")); //#if (LIVE_LANGUAGE_CHANGE) // if(RMLanguage::isJP() == false) // { // msgBox.setButtonText(QMessageBox::Yes, "Yes"); // msgBox.setButtonText(QMessageBox::No, "Cancel"); // } //#endif // LIVE_LANGUAGE_CHANGE if(msgBox.exec() == QMessageBox::Yes) { RMSettings::instance()->setHWAccelOff(!on); RMPopupInfo::restart(); } else { checkbox->setCheckState(on ? Qt::Unchecked : Qt::Checked); } } } #if (SYSTEM_INFO_DIALOG) void RMPopupInfo::onSystemInfo() { FMSystemInfoDialog* dialog = new FMSystemInfoDialog(this); dialog->exec(); } #endif #include void RMPopupInfo::restart() { QCoreApplication::flush(); QThread::msleep(100); QCoreApplication::quit(); ::ShellExecute(0, L"open", (LPCWSTR)QCoreApplication::applicationFilePath().utf16(), 0, 0, SW_SHOWNORMAL); } #endif #endif // #if !(PLAYER_ONLY_LIBRARY_MODE)