void DeclarativeTabModel::updateActiveTab(const Tab &activeTab, bool loadActiveTab) { #if DEBUG_LOGS qDebug() << "new active tab:" << &activeTab << "old active tab:" << &m_activeTab << "count:" << m_tabs.count(); #endif if (m_tabs.isEmpty()) { return; } if (m_activeTab != activeTab) { int oldTabId = m_activeTab.tabId(); m_activeTab = activeTab; // If tab has changed, update active tab role. int tabIndex = activeTabIndex(); if (oldTabId != m_activeTab.tabId() && tabIndex >= 0) { emit activeTabIndexChanged(); } // To avoid blinking we don't expose "activeTabIndex" as a model role because // it should be updated over here and this is too early. // Instead, we pass current contentItem and activeTabIndex // when pushing the TabPage to the PageStack. This is the signal changes the // contentItem of WebView. emit activeTabChanged(oldTabId, activeTab.tabId(), loadActiveTab); } }
SectionWidget* ContainerWidget::addSectionContent(const SectionContent::RefPtr& sc, SectionWidget* sw, DropArea area) { if (!sw) { if (_sections.isEmpty()) { // Create default section sw = newSectionWidget(); addSection(sw); } else if (area == CenterDropArea) // Use existing default section sw = _sections.first(); } // Drop it based on "area" InternalContentData data; data.content = sc; data.titleWidget = new SectionTitleWidget(sc, NULL); data.contentWidget = new SectionContentWidget(sc, NULL); #if QT_VERSION >= 0x050000 QObject::connect(data.titleWidget, &SectionTitleWidget::activeTabChanged, this, &ContainerWidget::onActiveTabChanged); #else QObject::connect(data.titleWidget, SIGNAL(activeTabChanged()), this, SLOT(onActiveTabChanged())); #endif return dropContent(data, sw, area, false); }
void DeclarativeTabModel::updateActiveTab(const Tab &activeTab) { #ifdef DEBUG_LOGS qDebug() << "old active tab: " << &m_activeTab << m_tabs.count(); qDebug() << "new active tab: " << &activeTab; #endif if (m_activeTab != activeTab) { int oldTabId = m_activeTab.tabId(); m_activeTab = activeTab; emit activeTabChanged(oldTabId, activeTab.tabId()); saveTabOrder(); } }
void DeclarativeTabModel::closeActiveTab() { if (m_activeTab.isValid()) { #ifdef DEBUG_LOGS qDebug() << &m_activeTab; #endif // Clear active tab data and try to active a tab from the first model index. int activeTabId = m_activeTab.tabId(); // Invalidate m_activeTab.setTabId(0); removeTab(activeTabId, m_activeTab.thumbnailPath()); if (!activateTab(0)) { // Last active tab got closed. emit activeTabChanged(activeTabId, 0); } } }