Subversion Repositories svn1

Rev

Rev 203 | Rev 205 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 203 Rev 204
Line 1... Line 1...
1
#include "qmreportwindow.h"
1
#include "qmreportwindow.h"
2
#include <QtCore/QVariant>
2
#include <QVariant>
3
#include <QtGui/QAction>
-
 
4
#include <QtGui/QApplication>
3
#include <QApplication>
5
#include <QtGui/QButtonGroup>
-
 
6
#include <QtGui/QHeaderView>
-
 
7
#include <QtGui/QTabWidget>
4
#include <QTabWidget>
8
#include <QtGui/QWidget>
5
#include <QWidget>
9
#include <QtWebKit/QWebView>
6
#include <QWebView>
10
#include <QVBoxLayout>
7
#include <QVBoxLayout>
-
 
8
#include <QButtonGroup>
-
 
9
#include <QHBoxLayout>
-
 
10
#include <QLabel>
-
 
11
#include <QSpacerItem>
11
 
12
 
12
#include    "consts.h"
13
#include    "consts.h"
13
#include    "structs.h"
14
#include    "structs.h"
14
#include    "proto.h"
15
#include    "proto.h"
15
 
16
 
16
QmReportWindow::QmReportWindow(QWidget *parent) :
17
QmReportWindow::QmReportWindow(QWidget *parent) : QWidget(parent)
17
    QTabWidget(parent)
-
 
18
{
18
{
-
 
19
    QVBoxLayout *verticalLayout;
-
 
20
 
-
 
21
    QWidget *widget;
-
 
22
    QHBoxLayout *horizontalLayout_2;
-
 
23
    QHBoxLayout *horizontalLayout;
-
 
24
    //QSpacerItem *horizontalSpacer;
-
 
25
    QLabel *label;
-
 
26
 
-
 
27
    verticalLayout = new QVBoxLayout(this);
-
 
28
    verticalLayout->setContentsMargins(0, 0, 0, 0);
-
 
29
    tabWidget = new QTabWidget();
-
 
30
    tabWidget->setTabsClosable(true);
-
 
31
    tabWidget->setUsesScrollButtons(true);
-
 
32
    verticalLayout->addWidget(tabWidget);
-
 
33
 
-
 
34
    widget = new QWidget();
-
 
35
    horizontalLayout_2 = new QHBoxLayout(widget);
-
 
36
    horizontalLayout = new QHBoxLayout();
-
 
37
    //horizontalLayout->setSpacing(6);
-
 
38
    //horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
 
39
    //horizontalLayout->addItem(horizontalSpacer);
-
 
40
    label = new QLabel("Path", widget);
-
 
41
    horizontalLayout->addWidget(label);
-
 
42
    tabPath = new QLineEdit(widget);
-
 
43
    tabPath->setReadOnly(true);
-
 
44
    horizontalLayout->addWidget(tabPath);
-
 
45
    pb_original = new QPushButton("Original",widget);
-
 
46
    horizontalLayout->addWidget(pb_original);
-
 
47
    pb_back = new QPushButton("Back",widget);
-
 
48
    horizontalLayout->addWidget(pb_back);
-
 
49
    pb_print = new QPushButton("Print",widget);
-
 
50
    horizontalLayout->addWidget(pb_print);
-
 
51
    horizontalLayout_2->addLayout(horizontalLayout);
-
 
52
    verticalLayout->addWidget(widget);
-
 
53
 
-
 
54
 
-
 
55
    connect(tabWidget,SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));
-
 
56
    connect(tabWidget,SIGNAL(tabCloseRequested(int)), this, SLOT(deleteTab(int)));
-
 
57
    connect(pb_back,SIGNAL(clicked()), this, SLOT(back()));
-
 
58
 
19
    QWebView *webView = new QWebView();
59
    QWebView *webView = new QWebView();
20
    webView->setUrl(QUrl(QString(filepath)+ filebase + "_index.html",QUrl::TolerantMode));
60
    webView->setUrl(QUrl(QString(filepath)+ filebase + "_index.html",QUrl::TolerantMode));
21
    qDebug("ReportUrl:%s", qPrintable(webView->url().path()));
61
    qDebug("ReportUrl:%s", qPrintable(webView->url().path()));
22
    addTab(webView, "Index");
62
    tabWidget->addTab(webView, "Index");
-
 
63
 
-
 
64
    tabWidget->setCurrentIndex(0);
-
 
65
    tabChanged(0);
23
 
66
 
24
    setCurrentIndex(0);
-
 
25
}
67
}
26
 
68
 
27
void QmReportWindow::addReport(const QString &report, const QString &name)
69
void QmReportWindow::addReport(const QString &report, const QString &name)
28
{
70
{
29
    QWebView *webView = NULL;
71
    QWebView *webView = NULL;
-
 
72
    bool adding = false;
30
    for( int index = 0; index < count(); index++)
73
    for( int index = 0; index < tabWidget->count(); index++)
31
    {
74
    {
32
        if (tabText(index) == name)
75
        if (tabWidget->tabText(index) == name)
33
        {
76
        {
34
            webView = dynamic_cast<QWebView *>(widget(index));
77
            webView = dynamic_cast<QWebView *>(tabWidget->widget(index));
35
            if (webView)
78
            if (webView)
36
            {
79
            {
37
                qDebug("Reuse Tab:%s", qPrintable(report));
80
                qDebug("Reuse Tab:%s", qPrintable(report));
38
                break;
81
                break;
39
            }
82
            }
Line 41... Line 84...
41
    }
84
    }
42
 
85
 
43
    if (webView == NULL)
86
    if (webView == NULL)
44
    {
87
    {
45
        webView = new QWebView();
88
        webView = new QWebView();
46
        addTab(webView, name);
89
        adding = true;
47
        qDebug("Adding:%s", qPrintable(report));
-
 
48
    }
90
    }
-
 
91
 
49
    webView->setUrl(QUrl(report,QUrl::TolerantMode));
92
    webView->setUrl(QUrl(report,QUrl::TolerantMode));
-
 
93
    if ( adding )
-
 
94
    {
50
    addTab(webView, name);
95
        int tab = tabWidget->addTab(webView, name);
-
 
96
        tabChanged(tab);
-
 
97
        qDebug("Adding(%d):%s", tab, qPrintable(report));
-
 
98
    }
-
 
99
 
-
 
100
}
51
 
101
 
-
 
102
void QmReportWindow::deleteTab(int tab)
-
 
103
{
-
 
104
    qDebug("Delete TAB:%d", tab);
-
 
105
    tabWidget->removeTab(tab);
-
 
106
}
-
 
107
 
-
 
108
void QmReportWindow::tabChanged(int tab)
-
 
109
{
-
 
110
    qDebug("Update TAB:%d", tab);
-
 
111
    QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());
-
 
112
    if ( webView )
-
 
113
    {
-
 
114
        tabPath->setText( webView->url().path());
-
 
115
        pb_original->setEnabled(true);
-
 
116
        pb_back->setEnabled(true);
-
 
117
        pb_print->setEnabled(true);
-
 
118
    }
-
 
119
    else
-
 
120
    {
-
 
121
        tabPath->setText("");
-
 
122
        pb_original->setEnabled(false);
-
 
123
        pb_back->setEnabled(false);
-
 
124
        pb_print->setEnabled(false);
-
 
125
    }
-
 
126
}
-
 
127
 
-
 
128
void QmReportWindow::back(void)
-
 
129
{
-
 
130
     QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());
-
 
131
     if ( webView )
-
 
132
     {
-
 
133
         webView->back();
-
 
134
     }
52
}
135
}
53
 
136
 
54
QmReportWindow::~QmReportWindow()
137
QmReportWindow::~QmReportWindow()
55
{
138
{
56
}
139
}