examples/activeqt/webbrowser/main.cpp
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the examples of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #include <QApplication>
       
    43 #include <QMessageBox>
       
    44 #include <QProgressBar>
       
    45 #include <QStatusBar>
       
    46 #include <QMainWindow>
       
    47 #include <QAbstractEventDispatcher>
       
    48 
       
    49 #if defined(Q_WS_WINCE_WM)
       
    50 #include "ui_mainwindow_windowsmobile.h"
       
    51 #include <windows.h>
       
    52 #else
       
    53 #include "ui_mainwindow.h"
       
    54 #endif
       
    55 
       
    56 //! [0]
       
    57 class MainWindow : public QMainWindow, public Ui::MainWindow
       
    58 {
       
    59     Q_OBJECT
       
    60 public:
       
    61     MainWindow();
       
    62 
       
    63 public slots:
       
    64     void on_WebBrowser_TitleChange(const QString &title);
       
    65     void on_WebBrowser_ProgressChange(int a, int b);
       
    66     void on_WebBrowser_CommandStateChange(int cmd, bool on);
       
    67     void on_WebBrowser_BeforeNavigate();
       
    68     void on_WebBrowser_NavigateComplete(QString);
       
    69 
       
    70     void on_actionGo_triggered();
       
    71     void on_actionNewWindow_triggered();
       
    72     void on_actionAbout_triggered();
       
    73     void on_actionAboutQt_triggered();
       
    74     void on_actionFileClose_triggered();
       
    75 
       
    76 private:
       
    77     QProgressBar *pb;
       
    78 };
       
    79 //! [0] //! [1]
       
    80 
       
    81 MainWindow::MainWindow()
       
    82 {
       
    83     setupUi(this);
       
    84 
       
    85     connect(addressEdit, SIGNAL(returnPressed()), actionGo, SLOT(trigger()));
       
    86     connect(actionBack, SIGNAL(triggered()), WebBrowser, SLOT(GoBack()));
       
    87     connect(actionForward, SIGNAL(triggered()), WebBrowser, SLOT(GoForward()));
       
    88     connect(actionStop, SIGNAL(triggered()), WebBrowser, SLOT(Stop()));
       
    89     connect(actionRefresh, SIGNAL(triggered()), WebBrowser, SLOT(Refresh()));
       
    90     connect(actionHome, SIGNAL(triggered()), WebBrowser, SLOT(GoHome()));
       
    91     connect(actionSearch, SIGNAL(triggered()), WebBrowser, SLOT(GoSearch()));
       
    92 
       
    93     pb = new QProgressBar(statusBar());
       
    94     pb->setTextVisible(false);
       
    95     pb->hide();
       
    96     statusBar()->addPermanentWidget(pb);
       
    97 
       
    98     WebBrowser->dynamicCall("GoHome()");
       
    99 }
       
   100 
       
   101 //! [1] //! [2]
       
   102 void MainWindow::on_WebBrowser_TitleChange(const QString &title)
       
   103 {
       
   104     setWindowTitle("Qt WebBrowser - " + title);
       
   105 }
       
   106 
       
   107 void MainWindow::on_WebBrowser_ProgressChange(int a, int b)
       
   108 {
       
   109     if (a <= 0 || b <= 0) {
       
   110 	pb->hide();
       
   111 	return;
       
   112     }
       
   113     pb->show();
       
   114     pb->setRange(0, b);
       
   115     pb->setValue(a);
       
   116 }
       
   117 
       
   118 void MainWindow::on_WebBrowser_CommandStateChange(int cmd, bool on)
       
   119 {
       
   120     switch (cmd) {
       
   121     case 1:
       
   122 	actionForward->setEnabled(on);
       
   123 	break;
       
   124     case 2:
       
   125 	actionBack->setEnabled(on);
       
   126 	break;
       
   127     }
       
   128 }
       
   129 
       
   130 void MainWindow::on_WebBrowser_BeforeNavigate()
       
   131 {
       
   132     actionStop->setEnabled(true);
       
   133 }
       
   134 
       
   135 void MainWindow::on_WebBrowser_NavigateComplete(QString)
       
   136 {
       
   137     actionStop->setEnabled(false);
       
   138 }
       
   139 
       
   140 //! [2] //! [3]
       
   141 void MainWindow::on_actionGo_triggered()
       
   142 {
       
   143     WebBrowser->dynamicCall("Navigate(const QString&)", addressEdit->text());
       
   144 }
       
   145 
       
   146 void MainWindow::on_actionNewWindow_triggered()
       
   147 {
       
   148     MainWindow *window = new MainWindow;
       
   149     window->show();
       
   150     if (addressEdit->text().isEmpty())
       
   151 	return;
       
   152     window->addressEdit->setText(addressEdit->text());
       
   153     window->actionStop->setEnabled(true);
       
   154     window->on_actionGo_triggered();
       
   155 }
       
   156 
       
   157 void MainWindow::on_actionAbout_triggered()
       
   158 {
       
   159     QMessageBox::about(this, tr("About WebBrowser"),
       
   160 		tr("This Example has been created using the ActiveQt integration into Qt Designer.\n"
       
   161 		   "It demonstrates the use of QAxWidget to embed the Internet Explorer ActiveX\n"
       
   162 		   "control into a Qt application."));
       
   163 }
       
   164 
       
   165 void MainWindow::on_actionAboutQt_triggered()
       
   166 {
       
   167     QMessageBox::aboutQt(this, tr("About Qt"));
       
   168 }
       
   169 
       
   170 void MainWindow::on_actionFileClose_triggered()
       
   171 {
       
   172     close();
       
   173 }
       
   174 
       
   175 #include "main.moc"
       
   176 
       
   177 //! [3] //! [4]
       
   178 int main(int argc, char ** argv)
       
   179 {
       
   180     QApplication a(argc, argv);
       
   181     MainWindow w;
       
   182 #if defined(Q_OS_WINCE)
       
   183     w.showMaximized();
       
   184 #else
       
   185     w.show();
       
   186 #endif
       
   187     return a.exec();
       
   188 }
       
   189 //! [4]