bool DeclarativeTabModel::activateTabById(int tabId) { int index = findTabIndex(tabId); if (index >= 0) { return activateTab(index); } return false; }
void DeclarativeTabModel::removeTabById(int tabId, bool activeTab) { int index = -1; if (!activeTab) { index = findTabIndex(tabId); } if (activeTab) { closeActiveTab(); } else if (index >= 0){ remove(index); } }
void DeclarativeTabModel::updateTabUrl(int tabId, bool activeTab, const QString &url, bool navigate) { if (!LinkValidator::navigable(QUrl(url))) { #if DEBUG_LOGS qDebug() << "invalid url: " << url; #endif return; } int tabIndex = findTabIndex(tabId); bool updateDb = false; if (tabIndex >= 0 && (m_tabs.at(tabIndex).url() != url || activeTab)) { QVector<int> roles; roles << UrlRole << TitleRole << ThumbPathRole; m_tabs[tabIndex].setUrl(url); if (navigate) { m_tabs[tabIndex].setNextLink(0); int currentLinkId = m_tabs.at(tabIndex).currentLink(); m_tabs[tabIndex].setPreviousLink(currentLinkId); m_tabs[tabIndex].setCurrentLink(nextLinkId()); } m_tabs[tabIndex].setTitle(""); m_tabs[tabIndex].setThumbnailPath(""); if (tabId == m_activeTab.tabId()) { m_activeTab = m_tabs[tabIndex]; } emit dataChanged(index(tabIndex, 0), index(tabIndex, 0), roles); updateDb = true; } if (updateDb) { if (!navigate) { updateTab(tabId, url, "", ""); } else { navigateTo(tabId, url, "", ""); } } }
void DeclarativeTabModel::updateTitle(int tabId, bool activeTab, QString title) { int tabIndex = findTabIndex(tabId); bool updateDb = false; if (activeTab) { m_activeTab.setTitle(title); updateDb = true; } else if (tabIndex >= 0 && m_tabs.at(tabIndex).title() != title) { QVector<int> roles; roles << TitleRole; m_tabs[tabIndex].setTitle(title); emit dataChanged(index(tabIndex, 0), index(tabIndex, 0), roles); updateDb = true; } if (updateDb) { DBManager::instance()->updateTitle(m_activeTab.currentLink(), title); } }
void DeclarativeTabModel::updateTitle(int tabId, bool activeTab, QString url, QString title) { int tabIndex = findTabIndex(tabId); bool updateDb = false; int linkId = 0; if (tabIndex >= 0 && (m_tabs.at(tabIndex).title() != title || activeTab)) { QVector<int> roles; roles << TitleRole; m_tabs[tabIndex].setTitle(title); linkId = m_tabs.at(tabIndex).currentLink(); emit dataChanged(index(tabIndex, 0), index(tabIndex, 0), roles); updateDb = true; if (tabId == m_activeTab.tabId() && activeTab) { m_activeTab.setTitle(title); } } if (updateDb) { updateTitle(tabId, linkId, url, title); } }
void DeclarativeTabModel::updateTabUrl(int tabId, bool activeTab, const QString &url, bool navigate) { if (!LinkValidator::navigable(QUrl(url))) { #ifdef DEBUG_LOGS qDebug() << "invalid url: " << url; #endif return; } int tabIndex = findTabIndex(tabId); bool updateDb = false; if (activeTab) { m_activeTab.setUrl(url); updateDb = true; } else if (tabIndex >= 0 && m_tabs.at(tabIndex).url() != url) { QVector<int> roles; roles << UrlRole << TitleRole << ThumbPathRole; m_tabs[tabIndex].setUrl(url); m_tabs[tabIndex].setTitle(""); m_tabs[tabIndex].setThumbnailPath(""); emit dataChanged(index(tabIndex, 0), index(tabIndex, 0), roles); updateDb = true; } if (updateDb) { if (!navigate) { DBManager::instance()->updateTab(tabId, url, "", ""); } else { m_activeTab.setNextLink(0); int currentLinkId = m_activeTab.currentLink(); m_activeTab.setPreviousLink(currentLinkId); m_activeTab.setCurrentLink(++currentLinkId); DBManager::instance()->navigateTo(tabId, url, "", ""); } } setBackForwardNavigation(false); }
int ScriptableProxyHelper::findTabIndex(const QString &arg1) { INVOKE(findTabIndex(arg1)); return m_wnd->findTabIndex(arg1); }
bool DeclarativeTabModel::contains(int tabId) const { return findTabIndex(tabId) >= 0; }
int DeclarativeTabModel::activeTabIndex() const { return findTabIndex(m_activeTab.tabId()); }