void tst_QGraphicsLayout::moveAndResizeWidgetInWidget() { QFETCH(bool, instantInvalidatePropagation); QGraphicsLayout::setInstantInvalidatePropagation(instantInvalidatePropagation); QGraphicsScene scene; QGraphicsWidget *widget = new QGraphicsWidget; QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(widget); layout->setContentsMargins(0,0,0,0); WidgetToTestResizeEvents *innerWidget = new WidgetToTestResizeEvents; QGraphicsLinearLayout *innerLayout = new QGraphicsLinearLayout(innerWidget); innerLayout->setContentsMargins(0,0,0,0); QCOMPARE(widget->maximumSize(), QSizeF(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); layout->addItem(innerWidget); widget->setMinimumSize(1,1); widget->setPreferredSize(1000,1000); widget->setMaximumSize(2000,2000); widget->resize(widget->preferredSize()); innerWidget->setMinimumSize(1,1); qApp->processEvents(); innerWidget->resizeEventCalled = false; QCOMPARE(widget->size(), QSizeF(1000, 1000)); QCOMPARE(layout->geometry().size(), QSizeF(1000, 1000)); QCOMPARE(innerWidget->size(), QSizeF(1000, 1000)); innerLayout->invalidate(); widget->setMaximumHeight(500); widget->setX(1); qApp->processEvents(); QCOMPARE(widget->size(), QSizeF(1000, 500)); QCOMPARE(innerWidget->size(), QSizeF(1000, 500)); QVERIFY(innerWidget->resizeEventCalled); }
QGraphicsWidget *WebBrowser::graphicsWidget() { if (m_graphicsWidget) { return m_graphicsWidget; } m_layout = new QGraphicsLinearLayout(Qt::Vertical); m_toolbarLayout = new QGraphicsLinearLayout(Qt::Horizontal); m_statusbarLayout = new QGraphicsLinearLayout(Qt::Horizontal); m_back = addTool("go-previous", m_toolbarLayout); m_forward = addTool("go-next", m_toolbarLayout); m_nativeHistoryCombo = new KHistoryComboBox(); m_historyCombo = new Plasma::BrowserHistoryComboBox(this); m_historyCombo->setNativeWidget(m_nativeHistoryCombo); m_historyCombo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_historyCombo->setZValue(999); m_nativeHistoryCombo->setDuplicatesEnabled(false); m_pixmapProvider = new KUrlPixmapProvider; m_nativeHistoryCombo->setPixmapProvider(m_pixmapProvider); m_toolbarLayout->addItem(m_historyCombo); m_go = addTool("go-jump-locationbar", m_toolbarLayout); m_goAction = m_go->action(); m_reloadAction = new QAction(KIcon("view-refresh"), QString(), this); m_layout->addItem(m_toolbarLayout); m_browser = new Plasma::WebView(this); m_browser->setPage(new WebBrowserPage(this)); m_browser->setPreferredSize(400, 400); m_browser->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_layout->addItem(m_browser); //bookmarks m_bookmarkManager = KBookmarkManager::userBookmarksManager(); connect(m_bookmarkManager, SIGNAL(changed(QString,QString)), this, SLOT(bookmarksModelInit())); bookmarksModelInit(); m_bookmarksView = new Plasma::TreeView(this); m_bookmarksView->setZValue(1); m_bookmarksView->nativeWidget()->setAttribute(Qt::WA_NoSystemBackground, false); m_bookmarksView->nativeWidget()->verticalScrollBar()->setStyle(QApplication::style()); m_bookmarksView->nativeWidget()->horizontalScrollBar()->setStyle(QApplication::style()); m_bookmarksView->setModel(m_bookmarkModel); m_bookmarksView->nativeWidget()->setHeaderHidden(true); m_bookmarksView->hide(); m_bookmarksDelegate = new BookmarksDelegate(this); m_bookmarksView->nativeWidget()->setItemDelegate(m_bookmarksDelegate); connect(m_bookmarksDelegate, SIGNAL(destroyBookmark(QModelIndex)), this, SLOT(removeBookmark(QModelIndex))); m_layout->addItem(m_statusbarLayout); m_addBookmark = addTool("bookmark-new", m_statusbarLayout); m_addBookmarkAction = m_addBookmark->action(); m_removeBookmarkAction = new QAction(KIcon("list-remove"), QString(), this); m_organizeBookmarks = addTool("bookmarks-organize", m_statusbarLayout); m_bookmarksViewAnimation = Plasma::Animator::create(Plasma::Animator::FadeAnimation, this); m_bookmarksViewAnimation->setTargetWidget(m_bookmarksView); connect(m_bookmarksViewAnimation, SIGNAL(finished()), this, SLOT(bookmarksAnimationFinished())); m_stop = addTool("process-stop", m_statusbarLayout); QGraphicsWidget *spacer = new QGraphicsWidget(this); spacer->setMaximumWidth(INT_MAX); spacer->setMaximumHeight(0); spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_statusbarLayout->addItem(spacer); m_zoom = new Plasma::Slider(this); m_zoom->setMaximum(100); m_zoom->setMinimum(0); m_zoom->setValue(50); m_zoom->setOrientation(Qt::Horizontal); m_zoom->hide(); m_zoom->setMaximumWidth(200); m_statusbarLayout->addItem(m_zoom); connect(m_zoom, SIGNAL(valueChanged(int)), this, SLOT(zoom(int))); m_browser->setUrl(m_url); m_browser->update(); connect(m_back->action(), SIGNAL(triggered()), this, SLOT(back())); connect(m_forward->action(), SIGNAL(triggered()), this, SLOT(forward())); connect(m_reloadAction, SIGNAL(triggered()), this, SLOT(reload())); connect(m_goAction, SIGNAL(triggered()), this, SLOT(returnPressed())); connect(m_stop->action(), SIGNAL(triggered()), m_browser->page()->action(QWebPage::Stop), SLOT(trigger())); connect(m_historyCombo->nativeWidget(), SIGNAL(returnPressed()), this, SLOT(returnPressed())); connect(m_historyCombo->nativeWidget(), SIGNAL(activated(int)), this, SLOT(returnPressed())); connect(m_historyCombo, SIGNAL(activated(QString)), this, SLOT(comboTextChanged(QString))); connect(m_browser->page()->mainFrame(), SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl))); connect(m_browser, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int))); connect(m_addBookmarkAction, SIGNAL(triggered()), this, SLOT(addBookmark())); connect(m_removeBookmarkAction, SIGNAL(triggered()), this, SLOT(removeBookmark())); connect(m_organizeBookmarks->action(), SIGNAL(triggered()), this, SLOT(bookmarksToggle())); connect(m_bookmarksView->nativeWidget(), SIGNAL(clicked(QModelIndex)), this, SLOT(bookmarkClicked(QModelIndex))); //Autocompletion stuff m_completion = new KCompletion(); m_nativeHistoryCombo->setCompletionObject(m_completion); m_graphicsWidget = new QGraphicsWidget(this); m_graphicsWidget->setLayout(m_layout); m_back->setEnabled(m_browser->page()->history()->canGoBack()); m_forward->setEnabled(m_browser->page()->history()->canGoForward()); configChanged(); connect(this, SIGNAL(messageButtonPressed(MessageButton)), this, SLOT(removeBookmarkMessageButtonPressed(MessageButton))); return m_graphicsWidget; }