void DeclarativeTabModel::tabsAvailable(QList<Tab> tabs) { beginResetModel(); int oldCount = count(); m_tabs.clear(); m_tabs = tabs; if (m_tabs.count() > 0) { loadTabOrder(); qSort(m_tabs.begin(), m_tabs.end(), DeclarativeTabModel::tabSort); m_activeTab = m_tabs.at(0); m_tabs.removeAt(0); } else { m_activeTab = Tab(); emit tabsCleared(); } 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::addTab(const QString& url, const QString &title) { if (!LinkValidator::navigable(QUrl(url))) { return; } int tabId = createTab(); int linkId = createLink(tabId, url, title); Tab tab(tabId, Link(linkId, url, "", title), 0, 0); #if DEBUG_LOGS qDebug() << "new tab data:" << &tab; #endif int index = m_tabs.count(); beginInsertRows(QModelIndex(), index, index); m_tabs.append(tab); endInsertRows(); // We should trigger this only when // tab is added through new window request. In all other // case we should keep the new tab in background. updateActiveTab(tab, true); emit countChanged(); emit tabAdded(tabId); m_nextTabId = ++tabId; emit nextTabIdChanged(); setWaitingForNewTab(false); }
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::addTab(const QString& url, const QString &title) { if (!LinkValidator::navigable(QUrl(url))) { return; } int tabId = DBManager::instance()->createTab(); int linkId = DBManager::instance()->createLink(tabId, url, title); Tab tab(tabId, Link(linkId, url, "", title), 0, 0); #ifdef DEBUG_LOGS qDebug() << "new tab data:" << &tab; #endif if (m_activeTab.isValid()) { beginInsertRows(QModelIndex(), 0, 0); m_tabs.insert(0, m_activeTab); endInsertRows(); } updateActiveTab(tab); emit countChanged(); emit tabAdded(tabId); m_nextTabId = ++tabId; emit nextTabIdChanged(); }