File indexing completed on 2024-05-12 16:23:41
0001 // SPDX-FileCopyrightText: 2020 Rinigus <rinigus.git@gmail.com> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #include "urlobserver.h" 0006 #include "browsermanager.h" 0007 0008 UrlObserver::UrlObserver(QObject *parent) 0009 : QObject(parent) 0010 { 0011 connect(BrowserManager::instance(), &BrowserManager::databaseTableChanged, this, &UrlObserver::onDatabaseTableChanged); 0012 } 0013 0014 QString UrlObserver::url() const 0015 { 0016 return m_url; 0017 } 0018 0019 void UrlObserver::setUrl(const QString &url) 0020 { 0021 m_url = url; 0022 updateBookmarked(); 0023 Q_EMIT urlChanged(url); 0024 } 0025 0026 bool UrlObserver::bookmarked() const 0027 { 0028 return m_bookmarked; 0029 } 0030 0031 void UrlObserver::onDatabaseTableChanged(const QString &table) 0032 { 0033 if (table != QStringView(u"bookmarks")) 0034 return; 0035 0036 updateBookmarked(); 0037 } 0038 0039 QCoro::Task<> UrlObserver::updateBookmarked() 0040 { 0041 if (const bool isBookmarked = co_await BrowserManager::instance()->databaseManager()->isBookmarked(m_url); isBookmarked != m_bookmarked) { 0042 m_bookmarked = isBookmarked; 0043 Q_EMIT bookmarkedChanged(m_bookmarked); 0044 } 0045 } 0046 0047 #include "moc_urlobserver.cpp"