void DeclarativeTabModel::tabsAvailable(QList<Tab> tabs) { beginResetModel(); int oldCount = count(); m_tabs.clear(); m_tabs = tabs; int activeTabId = loadTabOrder(); if (m_tabs.count() > 0) { Tab tab; tab.setTabId(activeTabId); int index = m_tabs.indexOf(tab); if (index == -1) { index = 0; } const Tab &activeTab = m_tabs.at(index); m_tabs.removeAt(index); m_activeTab = activeTab; } qSort(m_tabs.begin(), m_tabs.end(), DeclarativeTabModel::tabSort); endResetModel(); if (count() != oldCount) { emit countChanged(); } int maxTabId = DBManager::instance()->getMaxTabId(); if (m_nextTabId != maxTabId + 1) { m_nextTabId = maxTabId + 1; emit nextTabIdChanged(); } // Startup should be synced to this. if (!m_loaded) { m_loaded = true; emit loadedChanged(); } }
void DeclarativeTabModel::tabsAvailable(QList<Tab> tabs) { beginResetModel(); int oldCount = count(); m_activeTab.setTabId(0); m_tabs.clear(); m_tabs = tabs; if (m_currentTab) { m_currentTab->invalidate(); } int activeTabId = loadTabOrder(); if (m_tabs.count() > 0) { Tab tab; tab.setTabId(activeTabId); int index = m_tabs.indexOf(tab); if (index == -1) { index = 0; } const Tab &activeTab = m_tabs.at(index); m_tabs.removeAt(index); updateActiveTab(activeTab, true); } qSort(m_tabs.begin(), m_tabs.end(), DeclarativeTabModel::tabSort); endResetModel(); // Startup should be synced to this. if (!m_loaded) { m_loaded = true; emit loadedChanged(); } if (count() != oldCount) { emit countChanged(); } }