// public void closeTab(int index = -1) void tst_TabWidget::closeTab() { QFETCH(int, index); SubTabWidget widget; QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &))); QSignalSpy spy2(&widget, SIGNAL(loadProgress(int))); QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &))); QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &))); QSignalSpy spy5(&widget, SIGNAL(tabsChanged())); QSignalSpy spy6(&widget, SIGNAL(lastTabClosed())); widget.closeTab(index); widget.newTab(); widget.newTab(); widget.loadUrl(QUrl("about:config")); widget.newTab(); qDebug() << "TODO"; return; QCOMPARE(spy0.count(), 0); QCOMPARE(spy2.count(), 4); QCOMPARE(spy3.count(), 2); QCOMPARE(spy4.count(), 4); QCOMPARE(spy5.count(), 0); QCOMPARE(spy6.count(), 0); }
/** * Close a given tab * @param index :: The tab index */ void MultiTabScriptInterpreter::closeTabAtIndex(int index) { ScriptFileInterpreter *interpreter = interpreterAt(index); interpreter->prepareToClose(); emit tabClosing(index); removeTab(index); emit tabClosed(index); const int nTabs = count(); emit tabCountChanged(nTabs); if(nTabs == 0) emit lastTabClosed(); }
MainWindow::MainWindow(ViewResolverFactory & viewManagerFactory) : QWidget(), mTabs(viewManagerFactory) { mTabs.setParent(this); mTabs.setTabsClosable(true); QVBoxLayout* layout = new QVBoxLayout(); layout->addWidget(& mTabs); layout->setMargin(0); setLayout(layout); connect(this, SIGNAL(showUrlInActiveTab(const QString &)), & mTabs, SLOT(showUrlInActiveTab(const QString &))); setWindowTitle("vee"); connect(& mTabs, SIGNAL(titleChanged(const QString &)), this, SLOT(setTitle(const QString &))); connect(& mTabs, SIGNAL(lastTabClosed()), this, SLOT(close())); }
void TabBar::removeTab(int sessionId) { if (sessionId == -1) sessionId = m_selectedSessionId; if (sessionId == -1) return; if (!m_tabs.contains(sessionId)) return; int index = m_tabs.indexOf(sessionId); if (m_lineEdit->isVisible() && sessionId == m_renamingSessionId) m_lineEdit->hide(); m_tabs.removeAt(index); m_tabTitles.remove(sessionId); if (m_tabs.count() == 0) emit lastTabClosed(); else emit tabSelected(m_tabs.last()); }
// public void addWebAction(QAction* action, QWebPage::WebAction webAction) void tst_TabWidget::addWebAction() { QFETCH(QWebPage::WebAction, webAction); SubTabWidget widget; QSignalSpy spy0(&widget, SIGNAL(linkHovered(const QString &))); QSignalSpy spy1(&widget, SIGNAL(loadPage(const QString &))); QSignalSpy spy2(&widget, SIGNAL(loadProgress(int))); QSignalSpy spy3(&widget, SIGNAL(setCurrentTitle(const QString &))); QSignalSpy spy4(&widget, SIGNAL(showStatusBarMessage(const QString &))); QSignalSpy spy5(&widget, SIGNAL(tabsChanged())); QSignalSpy spy6(&widget, SIGNAL(lastTabClosed())); QAction *action = new QAction(&widget); widget.addWebAction(action, webAction); widget.newTab(); QVERIFY(!action->isEnabled()); widget.loadUrl(QUrl("about:config")); QUrl url1(":/notfound.html"); //QUrl("http://www.google.com/")); QUrl url2(":/notfound2.html"); //QUrl("http://www.yahoo.com/")); widget.loadUrl(url1); widget.loadUrl(url2); QTRY_VERIFY(action->isEnabled()); widget.newTab(); QVERIFY(!action->isEnabled()); QCOMPARE(spy0.count(), 0); QCOMPARE(spy1.count(), 0); QVERIFY(spy2.count() > 0); QCOMPARE(spy3.count(), 8); QVERIFY(spy4.count() > 0); QCOMPARE(spy5.count(), 6); QCOMPARE(spy6.count(), 0); }