*
*/
-#include <QtWidgets>
-
#include "detailedinfodialog.h"
#include "mainwindow.h"
setWindowTitle("Detailed Info");
- QVBoxLayout *baseLayout = new QVBoxLayout(this);
+ baseLayout = new QVBoxLayout(this);
baseLayout->setMargin(10);
baseLayout->setSpacing(10);
/* upside */
- QHBoxLayout *upsideLayout = new QHBoxLayout();
+ upsideLayout = new QHBoxLayout(this);
upsideLayout->setMargin(0);
upsideLayout->setSpacing(0);
/* VM information table */
- QTableWidget *infoTable = new QTableWidget(this);
+ infoTable = new QTableWidget(this);
infoTable->setRowCount(11);
infoTable->setColumnCount(2);
infoTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
/* table items */
int index = 0;
- QTableWidgetItem *item = new QTableWidgetItem("VM Name");
+ item = new QTableWidgetItem("VM Name");
infoTable->setItem(index, 0, item);
item = new QTableWidgetItem(win->uiInfo->vmName);
infoTable->setItem(index++, 1, item);
item = new QTableWidgetItem(QString::number(get_emul_serial_port()));
infoTable->setItem(index++, 1, item);
+ /* add double click event listener */
+ connect(infoTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(slotDoubleClicked(int, int)));
+
int tableHeight = infoTable->horizontalHeader()->height();
for (int i = 0; i < infoTable->rowCount(); i++) {
tableHeight += infoTable->rowHeight(i);
baseLayout->addLayout(upsideLayout);
/* downside */
- QHBoxLayout *downsideLayout = new QHBoxLayout();
+ downsideLayout = new QHBoxLayout(this);
downsideLayout->setAlignment(Qt::AlignRight);
downsideLayout->setMargin(0);
- QPushButton *okBtn = new QPushButton("OK", this);
+ okBtn = new QPushButton("OK", this);
connect(okBtn, SIGNAL(clicked()), this, SLOT(close()));
downsideLayout->addWidget(okBtn);
baseLayout->addLayout(downsideLayout);
}
+void DetailedInfoDialog::slotDoubleClicked(int nRow, int nCol)
+{
+ QTableWidgetItem *item;
+ QString string;
+
+ /* Feature side double click event is occured, ignore it */
+ if (nCol == 0)
+ return;
+
+ item = infoTable->item(nRow, 0);
+ if (item->text().compare("File Sharing Path", Qt::CaseInsensitive) == 0 ||
+ item->text().compare("Image Path", Qt::CaseInsensitive) == 0 ||
+ item->text().compare("Log Path", Qt::CaseInsensitive) == 0) {
+ /* get path name */
+ item = infoTable->item(nRow, nCol);
+ if (item->text().compare("None", Qt::CaseInsensitive) == 0 ||
+ item->text().compare("", Qt::CaseInsensitive) == 0) {
+ /* ignore this event */
+ return;
+ }
+ } else {
+ /* ignore this event */
+ return;
+ }
+
+ if (QFileInfo(item->text()).isDir() == true) {
+ /* path name is a directory name */
+ QDesktopServices::openUrl(QUrl("file:///" + item->text(), QUrl::TolerantMode));
+ } else if (QFileInfo(item->text()).isFile() == true) {
+ /* path name is a file name */
+ QDesktopServices::openUrl(QUrl("file:///" + QFileInfo(item->text()).absolutePath(), QUrl::TolerantMode));
+ } else {
+ qDebug("wrong path name");
+ }
+
+ return;
+}
+
void DetailedInfoDialog::showEvent(QShowEvent *event)
{
Q_UNUSED(event)
DetailedInfoDialog::~DetailedInfoDialog()
{
+ QTableWidgetItem *item;
+
+ for (int i = 0; i < infoTable->rowCount(); i++) {
+ for (int j = 0; j < infoTable->columnCount(); j++) {
+ item = infoTable->item(i, j);
+ delete item;
+ }
+ }
+
qDebug("destroy detailed info dialog");
}