menu: add detailed info dialog contents 68/25468/3
authorGiWoong Kim <giwoong.kim@samsung.com>
Tue, 5 Aug 2014 08:11:54 +0000 (17:11 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Wed, 6 Aug 2014 10:02:36 +0000 (19:02 +0900)
Change-Id: Ib40c25b932edd432683e1db4cbd12f556aca81e9
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/display/qt5_supplement.cpp
tizen/src/emul_state.c
tizen/src/emul_state.h
tizen/src/ui/controllerwidget.cpp
tizen/src/ui/mainwindow.cpp
tizen/src/ui/menu/aboutdialog.cpp
tizen/src/ui/menu/contextmenu.cpp
tizen/src/ui/menu/detailedinfodialog.cpp
tizen/src/ui/uiinformation.cpp
vl.c

index c84dc25151eb36d3c488716abb20ba4e3a058b61..c3be0733a23b81bcd7bb29844f494544f602fd6f 100644 (file)
@@ -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;
 
index fab075e4b5cfa491d6972a9d77393a4f01340ea5..9711167ec477bb0fa602fb030b512be9f17f57a4 100644 (file)
@@ -36,6 +36,7 @@
 
 #if defined(CONFIG_LINUX)
 #include <X11/XKBlib.h>
+extern bool kvm_allowed;
 #elif defined (CONFIG_WIN32)
 #include <windows.h>
 #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;
index 1257aeefc597e0f15bb868d6ba8568927a95bafc..c9146f9d4f8ed0217848c90b08bf488ba2f6f62d 100644 (file)
@@ -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);
index a425d82512cddb56ffa0a4d4e8524dee608f3d42..f379e37641581d9fc732289300bc977dc661ba3b 100644 (file)
@@ -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)));
 }
 
index f6e2c102217a754827c461b47336ced47a1c6003..574d68b9c8aac873c6ffd91597c42cda8bc068a7 100644 (file)
@@ -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)));
 }
 
index c52947e20c96050868fa8f615c6f9c3a88868d38..0eaf4451727d72b020bff9cb9f06d098a2f1d734 100644 (file)
@@ -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";
     }
index ed8c78e9cbde296639dabc9ca99ca485c8f1426b..7f1071c170b3e12be95b61c6ffd234ea7ee32a98 100644 (file)
@@ -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";
index 80e9a96c10a9ec38dbf6b36899f47ccde0d2821f..9b8c6eb1bdbaa56eaf61c769737f01bdf6a59926 100644 (file)
@@ -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()
index 0d12c732d94aa24a9e60289b71b5b001a4f348b9..f5c07dbb45d10937cb98581321b900d46f722b46 100644 (file)
@@ -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 35a248e6b026f36d0aaff96f84ac6d35d7cd2ee0..289a88d8869592f5a576161e93dee7cb7a92d099 100644 (file)
--- 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");