From: GiWoong Kim Date: Tue, 5 Aug 2014 08:11:54 +0000 (+0900) Subject: menu: add detailed info dialog contents X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54abb9acf1587254d3c0f645a0b4f05a94573ede;p=sdk%2Femulator%2Fqemu.git menu: add detailed info dialog contents Change-Id: Ib40c25b932edd432683e1db4cbd12f556aca81e9 Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/display/qt5_supplement.cpp b/tizen/src/display/qt5_supplement.cpp index c84dc25151..c3be0733a2 100644 --- a/tizen/src/display/qt5_supplement.cpp +++ b/tizen/src/display/qt5_supplement.cpp @@ -81,6 +81,12 @@ void qt5_skin_init(void) if (uiInfo->skinPath.endsWith('/') == false) { uiInfo->skinPath += "/"; } + QSettings skinInfo(uiInfo->skinPath + "info.ini", QSettings::IniFormat); + QString skinName = skinInfo.value("skin.name").toString(); + if (skinName.isEmpty() == true) { + skinName = "Undefined"; + } + uiInfo->skinName = skinName; uiInfo->uiState.layoutScale = 50; diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index fab075e4b5..9711167ec4 100644 --- a/tizen/src/emul_state.c +++ b/tizen/src/emul_state.c @@ -36,6 +36,7 @@ #if defined(CONFIG_LINUX) #include +extern bool kvm_allowed; #elif defined (CONFIG_WIN32) #include #endif @@ -357,6 +358,41 @@ char* get_emul_skin_path(void) return _emul_info.skin_path; } +/* GPU virtualization */ +void set_emul_gpu_accel(bool enable) +{ + _emul_info.gpu_accel_enable = enable; +} + +bool get_emul_gpu_accel(void) +{ + return _emul_info.gpu_accel_enable; +} + +/* CPU virtualization */ +bool get_emul_cpu_accel(void) +{ +#ifdef CONFIG_LINUX + return kvm_allowed; +#else + // TODO: hax_enabled; +#endif + + return false; +} + +/* file sharing path */ +void set_emul_file_sharing_path(const char *path) +{ + _emul_info.file_sharing_path = path; +} + +const char* get_emul_file_sharing_path(void) +{ + return _emul_info.file_sharing_path; +} + +/* sdbd */ int get_sdbd_state(void) { return is_sdbd_initialized; diff --git a/tizen/src/emul_state.h b/tizen/src/emul_state.h index 1257aeefc5..c9146f9d4f 100644 --- a/tizen/src/emul_state.h +++ b/tizen/src/emul_state.h @@ -94,6 +94,8 @@ typedef struct EmulatorConfigInfo { int ecs_port; char *vm_name; char *skin_path; + bool gpu_accel_enable; + const char *file_sharing_path; /* add here */ } EmulatorConfigInfo; @@ -126,13 +128,15 @@ void set_emul_input_touch_enable(bool on); void set_emul_max_touch_point(int cnt); void set_emul_vm_base_port(int port); void set_emul_ecs_port(int port); +void set_emul_vm_name(char *vm_name); +void set_emul_skin_path(char *path); +void set_emul_gpu_accel(bool enable); +void set_emul_file_sharing_path(const char *path); void set_emulator_condition(int state); void set_emul_rotation(short rotation_type); void set_emul_caps_lock_state(int state); void set_emul_num_lock_state(int state); -void set_emul_vm_name(char *vm_name); -void set_emul_skin_path(char *path); /* getter */ bool get_emul_skin_enable(void); @@ -146,6 +150,11 @@ int get_emul_max_touch_point(void); int get_emul_vm_base_port(void); int get_device_serial_number(void); int get_emul_ecs_port(void); +char* get_emul_vm_name(void); +char* get_emul_skin_path(void); +bool get_emul_gpu_accel(void); +bool get_emul_cpu_accel(void); +const char* get_emul_file_sharing_path(void); int get_emulator_condition(void); short get_emul_rotation(void); @@ -153,8 +162,6 @@ int get_host_lock_key_state(int key); int get_host_lock_key_state_darwin(int key); int get_emul_caps_lock_state(void); int get_emul_num_lock_state(void); -char* get_emul_vm_name(void); -char* get_emul_skin_path(void); /* multi-touch */ MultiTouchState *get_emul_multi_touch_state(void); diff --git a/tizen/src/ui/controllerwidget.cpp b/tizen/src/ui/controllerwidget.cpp index a425d82512..f379e37641 100644 --- a/tizen/src/ui/controllerwidget.cpp +++ b/tizen/src/ui/controllerwidget.cpp @@ -33,8 +33,12 @@ void ControllerWidget::setRegion(QImage baseImage) { //qDebug("set region"); - QImage region = baseImage.createAlphaMask(); + if (baseImage.isNull() == true) { + qWarning("invalid image for region"); + return; + } + QImage region = baseImage.createAlphaMask(); setMask(QRegion(QBitmap::fromImage(region))); } diff --git a/tizen/src/ui/mainwindow.cpp b/tizen/src/ui/mainwindow.cpp index f6e2c10221..574d68b9c8 100644 --- a/tizen/src/ui/mainwindow.cpp +++ b/tizen/src/ui/mainwindow.cpp @@ -203,7 +203,10 @@ void MainWindow::resizeEvent(QResizeEvent *event) resize(uiInfo->getLayoutSize().width(), uiInfo->getLayoutSize().height()); - setRegion(uiInfo->getLayout()->skinImg[SkinLayout::normal]); + SkinLayout *layout = uiInfo->getLayout(); + if (layout != NULL) { + setRegion(layout->skinImg[SkinLayout::normal]); + } } void MainWindow::rotate(int angle) @@ -238,10 +241,14 @@ void MainWindow::setRegion(QImage baseImage) { //qDebug("set region"); + if (baseImage.isNull() == true) { + qWarning("invalid image for region"); + return; + } + QImage region = baseImage.createAlphaMask().scaled( baseImage.width() * getUIState()->getScaleFactor(), baseImage.height() * getUIState()->getScaleFactor()); - setMask(QRegion(QBitmap::fromImage(region))); } diff --git a/tizen/src/ui/menu/aboutdialog.cpp b/tizen/src/ui/menu/aboutdialog.cpp index c52947e20c..0eaf445172 100644 --- a/tizen/src/ui/menu/aboutdialog.cpp +++ b/tizen/src/ui/menu/aboutdialog.cpp @@ -21,8 +21,8 @@ AboutDialog::AboutDialog(QWidget *parent) : imageLabel->setPixmap(QPixmap(":about.png")); upsideLayout->addWidget(imageLabel); - QSettings *sdkVersion = new QSettings("../../../sdk.version", QSettings::IniFormat); - QString version = sdkVersion->value("TIZEN_SDK_VERSION").toString(); + QSettings sdkVersion("../../../sdk.version", QSettings::IniFormat); + QString version = sdkVersion.value("TIZEN_SDK_VERSION").toString(); if (version.isEmpty() == true) { version = "Undefined"; } diff --git a/tizen/src/ui/menu/contextmenu.cpp b/tizen/src/ui/menu/contextmenu.cpp index ed8c78e9cb..7f1071c170 100644 --- a/tizen/src/ui/menu/contextmenu.cpp +++ b/tizen/src/ui/menu/contextmenu.cpp @@ -118,9 +118,12 @@ ContextMenu::ContextMenu(QWidget *parent) : /* = Advanced menu = */ QMenu *advancedMenu = addMenu(QIcon(QPixmap(":/icons/advanced.png")), "Advanced"); +#if 0 /* Advanced > Screen Shot menu */ action = advancedMenu->addAction("Screen Shot"); action->setIcon(QIcon(QPixmap(":/icons/screen_shot.png"))); + // TODO: +#endif advancedMenu->addSeparator(); @@ -221,7 +224,7 @@ void ContextMenu::slotShell() QString vmName = get_emul_vm_name(); QString sdbPath; -#ifdef __WIN32 +#ifdef CONFIG_WIN32 sdbPath = "..\\..\\ansicon.exe"; #else sdbPath = "../../sdb"; @@ -275,7 +278,7 @@ void ContextMenu::slotControlPanel() QString basePortOpt = "base.port=" + QString::number(get_emul_vm_base_port()); QString vmNameOpt = "vmname=" + QString(get_emul_vm_name()); QString ecpPath; -#ifdef __WIN32 +#ifdef CONFIG_WIN32 ecpPath = ".\\emulator-control-panel.jar"; #else ecpPath = "./emulator-control-panel.jar"; diff --git a/tizen/src/ui/menu/detailedinfodialog.cpp b/tizen/src/ui/menu/detailedinfodialog.cpp index 80e9a96c10..9b8c6eb1bd 100644 --- a/tizen/src/ui/menu/detailedinfodialog.cpp +++ b/tizen/src/ui/menu/detailedinfodialog.cpp @@ -3,6 +3,8 @@ #include "detailedinfodialog.h" #include "mainwindow.h" +extern char tizen_target_img_path[]; //TODO: not legacy + DetailedInfoDialog::DetailedInfoDialog(QWidget *parent) : QDialog(parent) { @@ -10,92 +12,120 @@ DetailedInfoDialog::DetailedInfoDialog(QWidget *parent) : setWindowTitle("Detailed Info - " + win->uiInfo->vmName); + QVBoxLayout *baseLayout = new QVBoxLayout(this); + baseLayout->setMargin(10); + baseLayout->setSpacing(10); + + /* upside */ + QHBoxLayout *upsideLayout = new QHBoxLayout(); + upsideLayout->setMargin(0); + upsideLayout->setSpacing(0); + /* VM information table */ - QTableWidget *info = new QTableWidget(this); - info->setRowCount(13); - info->setColumnCount(2); - info->setEditTriggers(QAbstractItemView::NoEditTriggers); + QTableWidget *infoTable = new QTableWidget(this); + infoTable->setRowCount(12); + infoTable->setColumnCount(2); + infoTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + infoTable->setAlternatingRowColors(true); + + infoTable->verticalHeader()->hide(); + infoTable->resizeRowsToContents(); + infoTable->horizontalHeader()->setStretchLastSection(true); + infoTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); QStringList header; header << "Feature" << "Value"; - info->setHorizontalHeaderLabels(header); - info->verticalHeader()->hide(); + infoTable->setHorizontalHeaderLabels(header); /* table items */ - // TODO: + int index = 0; QTableWidgetItem *item = new QTableWidgetItem("VM Name"); - info->setItem(0, 0, item); + infoTable->setItem(index, 0, item); item = new QTableWidgetItem(win->uiInfo->vmName); - info->setItem(0, 1, item); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Skin name"); - info->setItem(1, 0, item); + infoTable->setItem(index, 0, item); item = new QTableWidgetItem(win->uiInfo->skinName); - info->setItem(1, 1, item); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("CPU"); - info->setItem(2, 0, item); + infoTable->setItem(index, 0, item); item = new QTableWidgetItem("x86"); - info->setItem(2, 1, item); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Ram Size"); - info->setItem(3, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem("0"); // TODO: + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Display Resolution"); - info->setItem(4, 0, item); + infoTable->setItem(index, 0, item); item = new QTableWidgetItem(QString::number(win->uiInfo->resolution.width()) + "x" + QString::number(win->uiInfo->resolution.height())); - info->setItem(4, 1, item); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Display Density"); - info->setItem(5, 0, item); - - item = new QTableWidgetItem("File Sharing"); - info->setItem(6, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem("0"); // TODO: + infoTable->setItem(index++, 1, item); - item = new QTableWidgetItem("File Shared Path"); - info->setItem(7, 0, item); + item = new QTableWidgetItem("File Sharing Path"); + infoTable->setItem(index, 0, item); + QString sharingPath(get_emul_file_sharing_path()); + item = new QTableWidgetItem((sharingPath.isEmpty()) ? "None" : sharingPath); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("CPU Virtualization"); - info->setItem(8, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem((get_emul_cpu_accel()) ? "Enabled" : "Disabled"); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("GPU Virtualization"); - info->setItem(9, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem((get_emul_gpu_accel()) ? "Enabled" : "Disabled"); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Image Path"); - info->setItem(10, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(tizen_target_img_path); + infoTable->setItem(index++, 1, item); item = new QTableWidgetItem("Log Path"); - info->setItem(11, 0, item); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(get_log_path()); + infoTable->setItem(index++, 1, item); + + int tableHeight = infoTable->horizontalHeader()->height(); + for (int i = 0; i < infoTable->rowCount(); i++) { + tableHeight += infoTable->rowHeight(i); + } + + infoTable->setMinimumWidth(450); + infoTable->setMinimumHeight(tableHeight + 2/*border*/); + upsideLayout->addWidget(infoTable); + + baseLayout->addLayout(upsideLayout); + + /* downside */ + QHBoxLayout *downsideLayout = new QHBoxLayout(); + downsideLayout->setAlignment(Qt::AlignRight); + downsideLayout->setMargin(0); - /* OK button */ QPushButton *okBtn = new QPushButton("OK", this); connect(okBtn, SIGNAL(clicked()), this, SLOT(close())); + downsideLayout->addWidget(okBtn); - /* okBtn->setStyleSheet("color: blue;" - "background-color: yellow;" - "selection-color: yellow;" - "selection-background-color: blue;" - "border-style: outset;" - "border-width: 2px;" - "border-radius: 10px;" - "border-color: beige;" - "padding: 1px;"); */ - - /* layout */ - QGridLayout *layout = new QGridLayout(this); - layout->addWidget(info, 0, 0); - layout->addWidget(okBtn, 1, 0); - setLayout(layout); + baseLayout->addLayout(downsideLayout); } void DetailedInfoDialog::showEvent(QShowEvent *event) { Q_UNUSED(event) - QWidget *parent = ((QWidget *)this->parent()); - move(parent->geometry().center().x() - (geometry().size().width() / 2), - parent->geometry().center().y() - (geometry().size().height() / 2)); + QWidget *win = ((QWidget *)this->parent()); + move(win->geometry().center().x() - (geometry().size().width() / 2), + win->geometry().center().y() - (geometry().size().height() / 2)); } DetailedInfoDialog::~DetailedInfoDialog() diff --git a/tizen/src/ui/uiinformation.cpp b/tizen/src/ui/uiinformation.cpp index 0d12c732d9..f5c07dbb45 100644 --- a/tizen/src/ui/uiinformation.cpp +++ b/tizen/src/ui/uiinformation.cpp @@ -3,8 +3,6 @@ UIInformation::UIInformation() : resolution(0, 0), basePort(0) { - skinPath = "undefined"; - skinName = "undefined"; skinPath = "./"; } @@ -12,7 +10,7 @@ SkinLayout *UIInformation::getLayout() { if (uiState.getLayoutIndex() > (layoutList.count() - 1) || uiState.getLayoutIndex() < 0) { - qDebug("layout is null"); + qWarning("layout is null"); return NULL; } diff --git a/vl.c b/vl.c index 35a248e6b0..289a88d886 100644 --- a/vl.c +++ b/vl.c @@ -3578,6 +3578,10 @@ int main(int argc, char **argv, char **envp) qemu_opt_get(opts, "mount_tag")); qemu_opt_set(device, "mount_tag", qemu_opt_get(opts, "mount_tag")); + +#ifdef CONFIG_MARU + set_emul_file_sharing_path(qemu_opt_get(opts, "path")); +#endif break; } case QEMU_OPTION_virtfs_synth: { @@ -3703,6 +3707,9 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_enable_yagl: #if defined(CONFIG_YAGL) enable_yagl = 1; +#ifdef CONFIG_MARU + set_emul_gpu_accel(true); +#endif #else fprintf(stderr, "YaGL openGLES passthrough support is disabled," " ignoring -enable-yagl\n");