Rev 203 | Rev 205 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "qmreportwindow.h"#include <QVariant>#include <QApplication>#include <QTabWidget>#include <QWidget>#include <QWebView>#include <QVBoxLayout>#include <QButtonGroup>#include <QHBoxLayout>#include <QLabel>#include <QSpacerItem>#include "consts.h"#include "structs.h"#include "proto.h"QmReportWindow::QmReportWindow(QWidget *parent) : QWidget(parent){QVBoxLayout *verticalLayout;QWidget *widget;QHBoxLayout *horizontalLayout_2;QHBoxLayout *horizontalLayout;//QSpacerItem *horizontalSpacer;QLabel *label;verticalLayout = new QVBoxLayout(this);verticalLayout->setContentsMargins(0, 0, 0, 0);tabWidget = new QTabWidget();tabWidget->setTabsClosable(true);tabWidget->setUsesScrollButtons(true);verticalLayout->addWidget(tabWidget);widget = new QWidget();horizontalLayout_2 = new QHBoxLayout(widget);horizontalLayout = new QHBoxLayout();//horizontalLayout->setSpacing(6);//horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);//horizontalLayout->addItem(horizontalSpacer);label = new QLabel("Path", widget);horizontalLayout->addWidget(label);tabPath = new QLineEdit(widget);tabPath->setReadOnly(true);horizontalLayout->addWidget(tabPath);pb_original = new QPushButton("Original",widget);horizontalLayout->addWidget(pb_original);pb_back = new QPushButton("Back",widget);horizontalLayout->addWidget(pb_back);pb_print = new QPushButton("Print",widget);horizontalLayout->addWidget(pb_print);horizontalLayout_2->addLayout(horizontalLayout);verticalLayout->addWidget(widget);connect(tabWidget,SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));connect(tabWidget,SIGNAL(tabCloseRequested(int)), this, SLOT(deleteTab(int)));connect(pb_back,SIGNAL(clicked()), this, SLOT(back()));QWebView *webView = new QWebView();webView->setUrl(QUrl(QString(filepath)+ filebase + "_index.html",QUrl::TolerantMode));qDebug("ReportUrl:%s", qPrintable(webView->url().path()));tabWidget->addTab(webView, "Index");tabWidget->setCurrentIndex(0);tabChanged(0);}void QmReportWindow::addReport(const QString &report, const QString &name){QWebView *webView = NULL;bool adding = false;for( int index = 0; index < tabWidget->count(); index++){if (tabWidget->tabText(index) == name){webView = dynamic_cast<QWebView *>(tabWidget->widget(index));if (webView){qDebug("Reuse Tab:%s", qPrintable(report));break;}}}if (webView == NULL){webView = new QWebView();adding = true;}webView->setUrl(QUrl(report,QUrl::TolerantMode));if ( adding ){int tab = tabWidget->addTab(webView, name);tabChanged(tab);qDebug("Adding(%d):%s", tab, qPrintable(report));}}void QmReportWindow::deleteTab(int tab){qDebug("Delete TAB:%d", tab);tabWidget->removeTab(tab);}void QmReportWindow::tabChanged(int tab){qDebug("Update TAB:%d", tab);QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());if ( webView ){tabPath->setText( webView->url().path());pb_original->setEnabled(true);pb_back->setEnabled(true);pb_print->setEnabled(true);}else{tabPath->setText("");pb_original->setEnabled(false);pb_back->setEnabled(false);pb_print->setEnabled(false);}}void QmReportWindow::back(void){QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());if ( webView ){webView->back();}}QmReportWindow::~QmReportWindow(){}