Hmm. Wonder what the bug was? It somehow works in the Example web browser that 
Qt includes with the 5.5.1 download. if I reinvent the history mechanism I 
could probably work around the issue. 

Thanks for the update/confirmation

Mike Jackson

> On Dec 22, 2015, at 11:18 AM, Croitor Alexandr <alexandru.croi...@digia.com> 
> wrote:
> 
> Hi.
> 
> I can confirm that it doesn't work in 5.5, but it was fixed for 5.6.
> 
> Regards, Alex.
> 
>> On 22 Dec 2015, at 16:05, Mike Jackson <imikejack...@gmail.com 
>> <mailto:imikejack...@gmail.com>> wrote:
>> 
>> Ping? 
>> 
>> Mike Jackson.
>> 
>>> On Dec 18, 2015, at 2:54 PM, Mike Jackson <imikejack...@gmail.com 
>>> <mailto:imikejack...@gmail.com>> wrote:
>>> 
>>> We have tried a bunch more ideas and none seem to work. We have tried the 
>>> following:
>>> m_WebView->page()->triggerAction(QWebEnginePage::Back);
>>> m_WebView->page()->history()->goToItem( 
>>> m_WebView->page()->history()->itemAt(1));
>>> m_WebView->page()->triggerAction(QWebEnginePage::Back);
>>> 
>>> 
>>> None of these work. The documentation for QWebEngineView _says_ it should 
>>> work. Does anyone have any ideas?
>>> 
>>> Thanks
>>> Mike Jackson
>>> 
>>>> On Dec 16, 2015, at 3:13 PM, Mike Jackson <imikejack...@gmail.com 
>>>> <mailto:imikejack...@gmail.com>> wrote:
>>>> 
>>>> I have an small app that uses QWebEngineView to display web pages. We have 
>>>> tried hooking up a pair of QPushButtons to invoke the forward and back in 
>>>> the QWebEngineHistory but neither seem to work. The QActions are getting 
>>>> triggered and our code is correctly calling them but the QWebEngineView 
>>>> does not actually load the previous page from its history. We have printed 
>>>> out the history each time the button is clicked and the history is 
>>>> correctly navigated. I am sure we have missed something simple that needs 
>>>> to be performed. Maybe some sort of setup of the QWebEngineView or 
>>>> something? I am pasting in our simple application hoping that someone can 
>>>> spot the error.
>>>> Thanks
>>>> Mike Jackson
>>>> 
>>>> ———main.cpp—————
>>>> #include <QApplication>
>>>> #include "WebTest_UI.h"
>>>> int main(int argc, char* argv[])
>>>> {
>>>> 
>>>>  QApplication app(argc, argv);
>>>> 
>>>>  QCoreApplication::setOrganizationDomain("Foo");
>>>>  QCoreApplication::setOrganizationName("Bar");
>>>>  QCoreApplication::setApplicationName("WebTest_UI");
>>>> 
>>>> #if defined (Q_OS_MAC)
>>>>  app.setQuitOnLastWindowClosed( true );
>>>> #endif
>>>> 
>>>>  QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
>>>> 
>>>>  WebTest_UI* helper = WebTest_UI::Instance();
>>>>  helper->show();
>>>> 
>>>>  return app.exec();
>>>> }
>>>> 
>>>> ——WebTest_UI.h—————
>>>> #ifndef _WebTest_UI_H_
>>>> #define _WebTest_UI_H_
>>>> #include <QtWidgets/QWidget>
>>>> #include <QtWidgets/QPushButton>
>>>> #include <QtWebEngineWidgets/QWebEngineView>
>>>> class  WebTest_UI : public QWidget
>>>> {
>>>>    Q_OBJECT
>>>>  public:
>>>>    virtual ~WebTest_UI();
>>>>    static WebTest_UI* Instance();
>>>>  protected:
>>>>    WebTest_UI();
>>>>  protected slots:
>>>>    void goBack(bool b);
>>>>  private:
>>>>    static WebTest_UI* self;
>>>>    QWebEngineView* m_WebView;
>>>>    QPushButton* forwardBtn;
>>>>    QPushButton* backBtn;
>>>>    WebTest_UI(const WebTest_UI&); // Copy Constructor Not Implemented
>>>>    void operator=(const WebTest_UI&); // Operator '=' Not Implemented
>>>> };
>>>> #endif /* _WebTest_UI_H */
>>>> 
>>>> ——WebTest_UI.cpp—————
>>>> #include "WebTest_UI.h"
>>>> #include <QtCore/QFileInfo>
>>>> #include <QtCore/QDir>
>>>> #include <QtWidgets/QGridLayout>
>>>> #include <QtWidgets/QMessageBox>
>>>> #include <QtWidgets/QAction>
>>>> #include <QtWebEngineWidgets/QWebEngineHistory>
>>>> // Include the MOC generated CPP file which has all the QMetaObject 
>>>> methods/data
>>>> #include "moc_WebTest_UI.cpp"
>>>> 
>>>> WebTest_UI* WebTest_UI::self = NULL;
>>>> // 
>>>> -----------------------------------------------------------------------------
>>>> WebTest_UI::WebTest_UI()
>>>> {
>>>>  Q_ASSERT_X(!self, "WebTest_UI", "There should be only one WebTest_UI 
>>>> object");
>>>> 
>>>>  WebTest_UI::self = this;
>>>> 
>>>>  // Create the web view
>>>>  m_WebView = new QWebEngineView(NULL);
>>>>  m_WebView->setObjectName(QStringLiteral("m_WebView"));
>>>>  QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
>>>>  sizePolicy1.setHorizontalStretch(0);
>>>>  sizePolicy1.setVerticalStretch(0);
>>>>  
>>>> sizePolicy1.setHeightForWidth(m_WebView->sizePolicy().hasHeightForWidth());
>>>>  m_WebView->setSizePolicy(sizePolicy1);
>>>>  m_WebView->setUrl(QUrl(QStringLiteral("about:blank")));
>>>>  QGridLayout* gridLayout = new QGridLayout(this);
>>>>  gridLayout->addWidget(m_WebView, 2, 0, 1, 2);
>>>>  m_WebView->load(QUrl("http://download.qt.io <http://download.qt.io/>"));
>>>>  m_WebView->show();
>>>> 
>>>>  backBtn = new QPushButton("Back");
>>>>  gridLayout->addWidget(backBtn, 1, 0, 1, 1);
>>>>  connect(backBtn, SIGNAL(clicked(bool)),
>>>>          this, SLOT(goBack(bool)));
>>>> 
>>>>  forwardBtn = new QPushButton("Forward");
>>>>  gridLayout->addWidget(forwardBtn, 1,1,1,1);
>>>> 
>>>>  self->setWindowFlags(this->windowFlags() & 
>>>> ~Qt::WindowContextHelpButtonHint);
>>>> 
>>>> #if defined (Q_OS_MAC)
>>>>  QAction* closeAction = new QAction(this);
>>>>  closeAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_W));
>>>>  connect(closeAction, SIGNAL(triggered()), this, SLOT(close()));
>>>>  addAction(closeAction);
>>>> #endif
>>>> }
>>>> // 
>>>> -----------------------------------------------------------------------------
>>>> WebTest_UI::~WebTest_UI() {}
>>>> // 
>>>> -----------------------------------------------------------------------------
>>>> WebTest_UI* WebTest_UI::Instance()
>>>> {
>>>>  if (self == NULL)
>>>>  {
>>>>    self = new WebTest_UI();
>>>>  }
>>>>  return self;
>>>> }
>>>> // 
>>>> -----------------------------------------------------------------------------
>>>> void WebTest_UI::goBack(bool b)
>>>> {
>>>>  QList<QWebEngineHistoryItem> backHistory = 
>>>> m_WebView->history()->backItems(10000);
>>>>  QList<QWebEngineHistoryItem> forwardHistory = 
>>>> m_WebView->history()->forwardItems(10000);
>>>>  qDebug() << "Before:" << backHistory.size() << " " << 
>>>> forwardHistory.size();
>>>>  m_WebView->back();
>>>>  backHistory = m_WebView->history()->backItems(10000);
>>>>  forwardHistory = m_WebView->history()->forwardItems(10000);
>>>>  qDebug() << "Current History Index:" << 
>>>> m_WebView->history()->currentItemIndex();
>>>>  qDebug() << "After:" << backHistory.size() << " " << 
>>>> forwardHistory.size();
>>>> }
>>>> 
>>>> 
>>> 
>> 
>> _______________________________________________
>> Interest mailing list
>> Interest@qt-project.org <mailto:Interest@qt-project.org>
>> http://lists.qt-project.org/mailman/listinfo/interest
> 

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to