Subversion Repositories svn1

Rev

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

Rev 204 Rev 205
Line 1... Line 1...
1
#include "qmreportwindow.h"
1
#include "qmreportwindow.h"
2
#include <QVariant>
2
#include <QVariant>
3
#include <QApplication>
3
#include <QApplication>
4
#include <QTabWidget>
4
#include <QTabWidget>
5
#include <QWidget>
5
#include <QWidget>
6
#include <QWebView>
-
 
7
#include <QVBoxLayout>
6
#include <QVBoxLayout>
8
#include <QButtonGroup>
7
#include <QButtonGroup>
9
#include <QHBoxLayout>
8
#include <QHBoxLayout>
10
#include <QLabel>
9
#include <QLabel>
11
#include <QSpacerItem>
10
#include <QSpacerItem>
Line 14... Line 13...
14
#include    "structs.h"
13
#include    "structs.h"
15
#include    "proto.h"
14
#include    "proto.h"
16
 
15
 
17
QmReportWindow::QmReportWindow(QWidget *parent) : QWidget(parent)
16
QmReportWindow::QmReportWindow(QWidget *parent) : QWidget(parent)
18
{
17
{
-
 
18
    currentWebView = NULL;
19
    QVBoxLayout *verticalLayout;
19
    QVBoxLayout *verticalLayout;
20
 
20
 
21
    QWidget *widget;
21
    QWidget *widget;
22
    QHBoxLayout *horizontalLayout_2;
22
    QHBoxLayout *horizontalLayout_2;
23
    QHBoxLayout *horizontalLayout;
23
    QHBoxLayout *horizontalLayout;
Line 44... Line 44...
44
    horizontalLayout->addWidget(tabPath);
44
    horizontalLayout->addWidget(tabPath);
45
    pb_original = new QPushButton("Original",widget);
45
    pb_original = new QPushButton("Original",widget);
46
    horizontalLayout->addWidget(pb_original);
46
    horizontalLayout->addWidget(pb_original);
47
    pb_back = new QPushButton("Back",widget);
47
    pb_back = new QPushButton("Back",widget);
48
    horizontalLayout->addWidget(pb_back);
48
    horizontalLayout->addWidget(pb_back);
-
 
49
    pb_forward = new QPushButton("Forward",widget);
-
 
50
    horizontalLayout->addWidget(pb_forward);
49
    pb_print = new QPushButton("Print",widget);
51
    pb_print = new QPushButton("Print",widget);
50
    horizontalLayout->addWidget(pb_print);
52
    horizontalLayout->addWidget(pb_print);
51
    horizontalLayout_2->addLayout(horizontalLayout);
53
    horizontalLayout_2->addLayout(horizontalLayout);
52
    verticalLayout->addWidget(widget);
54
    verticalLayout->addWidget(widget);
53
 
55
 
54
 
56
 
55
    connect(tabWidget,SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));
57
    connect(tabWidget,SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));
56
    connect(tabWidget,SIGNAL(tabCloseRequested(int)), this, SLOT(deleteTab(int)));
58
    connect(tabWidget,SIGNAL(tabCloseRequested(int)), this, SLOT(deleteTab(int)));
57
    connect(pb_back,SIGNAL(clicked()), this, SLOT(back()));
59
    connect(pb_back,SIGNAL(clicked()), this, SLOT(back()));
-
 
60
    connect(pb_forward,SIGNAL(clicked()), this, SLOT(forward()));
-
 
61
    connect(pb_original, SIGNAL(clicked()), this, SLOT(home()));
58
 
62
 
59
    QWebView *webView = new QWebView();
-
 
60
    webView->setUrl(QUrl(QString(filepath)+ filebase + "_index.html",QUrl::TolerantMode));
63
    addReport(QString(filepath)+ filebase + "_index.html", "Index");
61
    qDebug("ReportUrl:%s", qPrintable(webView->url().path()));
-
 
62
    tabWidget->addTab(webView, "Index");
-
 
63
 
-
 
64
    tabWidget->setCurrentIndex(0);
64
    tabWidget->setCurrentIndex(0);
65
    tabChanged(0);
65
    //tabChanged(-2);
66
 
66
 
67
}
67
}
68
 
68
 
69
void QmReportWindow::addReport(const QString &report, const QString &name)
69
void QmReportWindow::addReport(const QString &report, const QString &name)
70
{
70
{
71
    QWebView *webView = NULL;
71
    QmWebView *webView = NULL;
72
    bool adding = false;
72
    bool adding = false;
73
    for( int index = 0; index < tabWidget->count(); index++)
73
    for( int index = 0; index < tabWidget->count(); index++)
74
    {
74
    {
75
        if (tabWidget->tabText(index) == name)
75
        if (tabWidget->tabText(index) == name)
76
        {
76
        {
77
            webView = dynamic_cast<QWebView *>(tabWidget->widget(index));
77
            webView = dynamic_cast<QmWebView *>(tabWidget->widget(index));
78
            if (webView)
78
            if (webView)
79
            {
79
            {
80
                qDebug("Reuse Tab:%s", qPrintable(report));
80
                qDebug("Reuse Tab:%s", qPrintable(report));
81
                break;
81
                break;
82
            }
82
            }
83
        }
83
        }
84
    }
84
    }
85
 
85
 
86
    if (webView == NULL)
86
    if (webView == NULL)
87
    {
87
    {
88
        webView = new QWebView();
88
        webView = new QmWebView();
89
        adding = true;
89
        adding = true;
90
    }
90
    }
91
 
91
 
92
    webView->setUrl(QUrl(report,QUrl::TolerantMode));
92
    webView->setUrl(report);
93
    if ( adding )
93
    if ( adding )
94
    {
94
    {
95
        int tab = tabWidget->addTab(webView, name);
95
        int tab = tabWidget->addTab(webView, name);
96
        tabChanged(tab);
96
        tabChanged(tab);
97
        qDebug("Adding(%d):%s", tab, qPrintable(report));
97
        qDebug("Adding(%d):%s", tab, qPrintable(report));
Line 99... Line 99...
99
 
99
 
100
}
100
}
101
 
101
 
102
void QmReportWindow::deleteTab(int tab)
102
void QmReportWindow::deleteTab(int tab)
103
{
103
{
104
    qDebug("Delete TAB:%d", tab);
104
//    qDebug("Delete TAB:%d", tab);
105
    tabWidget->removeTab(tab);
105
    tabWidget->removeTab(tab);
106
}
106
}
107
 
107
 
108
void QmReportWindow::tabChanged(int tab)
108
void QmReportWindow::tabChanged(int tab)
109
{
109
{
110
    qDebug("Update TAB:%d", tab);
110
    qDebug("Update TAB:%d", tab);
111
    QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());
111
    currentWebView = dynamic_cast<QmWebView *>(tabWidget->currentWidget());
-
 
112
    bool enable = (currentWebView != NULL);
-
 
113
    pb_original->setEnabled(enable);
-
 
114
    pb_back->setEnabled(enable);
-
 
115
    pb_forward->setEnabled(enable);
-
 
116
    pb_print->setEnabled(enable);
112
    if ( webView )
117
    if ( enable )
113
    {
118
    {
114
        tabPath->setText( webView->url().path());
119
        tabPath->setText(currentWebView->homeUrl);
115
        pb_original->setEnabled(true);
-
 
116
        pb_back->setEnabled(true);
-
 
117
        pb_print->setEnabled(true);
-
 
118
    }
120
    }
119
    else
121
    else
120
    {
122
    {
121
        tabPath->setText("");
123
        tabPath->setText("");
122
        pb_original->setEnabled(false);
-
 
123
        pb_back->setEnabled(false);
-
 
124
        pb_print->setEnabled(false);
-
 
125
    }
124
    }
126
}
125
}
127
 
126
 
128
void QmReportWindow::back(void)
127
void QmReportWindow::back(void)
129
{
128
{
-
 
129
     if ( currentWebView )
-
 
130
     {
-
 
131
         currentWebView->back();
-
 
132
     }
-
 
133
}
-
 
134
 
-
 
135
void QmReportWindow::forward(void)
-
 
136
{
-
 
137
     if ( currentWebView )
-
 
138
     {
130
     QWebView *webView = dynamic_cast<QWebView *>(tabWidget->currentWidget());
139
         currentWebView->forward();
-
 
140
     }
-
 
141
}
-
 
142
 
-
 
143
void QmReportWindow::home(void)
-
 
144
{
131
     if ( webView )
145
     if ( currentWebView )
132
     {
146
     {
133
         webView->back();
147
         currentWebView->home();
134
     }
148
     }
135
}
149
}
136
 
150
 
137
QmReportWindow::~QmReportWindow()
151
QmReportWindow::~QmReportWindow()
138
{
152
{