Skip to content

Commit 8b5ab42

Browse files
committed
Fix for 'Remove All entries from this domain' on history item
1 parent a3c73ca commit 8b5ab42

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

src/core/Utils.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,30 @@ QString extractHost(const QUrl &url)
399399
return (url.isLocalFile() ? QLatin1String("localhost") : url.host());
400400
}
401401

402+
QString extractDomainName(const QUrl &url)
403+
{
404+
if (!url.isValid())
405+
{
406+
return {};
407+
}
408+
409+
const QString host = url.host();
410+
if (host.isEmpty())
411+
{
412+
return {};
413+
}
414+
415+
const QString tld = url.topLevelDomain();
416+
if (tld.isEmpty())
417+
{
418+
return {};
419+
}
420+
421+
const int domainStartIdx = host.lastIndexOf('.', (-1 * tld.size()) - 1) + 1;
422+
423+
return host.mid(domainStartIdx);
424+
}
425+
402426
QString formatElapsedTime(int value)
403427
{
404428
if (value < 0)

src/core/Utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ QString elideText(const QString &text, const QFontMetrics &fontMetrics, QWidget
100100
QString substitutePlaceholders(QString text, const QHash<QString, QString> &placeholders);
101101
QString savePixmapAsDataUri(const QPixmap &pixmap);
102102
QString extractHost(const QUrl &url);
103+
QString extractDomainName(const QUrl &url);
103104
QString formatElapsedTime(int value);
104105
QString formatDateTime(const QDateTime &dateTime, QString format = {}, bool allowFancy = true);
105106
QString formatUnit(qint64 value, bool isSpeed = false, int precision = 1, bool appendRaw = false);

src/modules/windows/history/HistoryContentsWidget.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,12 @@ void HistoryContentsWidget::removeDomainEntries()
187187
return;
188188
}
189189

190-
const QString host(QUrl(domainItem->text()).host());
190+
const QString domain(Utils::extractDomainName(QUrl(domainItem->text())));
191+
if (domain.isEmpty())
192+
{
193+
return;
194+
}
195+
191196
QVector<quint64> entries;
192197

193198
for (int i = 0; i < m_model->rowCount(); ++i)
@@ -203,7 +208,7 @@ void HistoryContentsWidget::removeDomainEntries()
203208
{
204209
const QStandardItem *entryItem(groupItem->child(j, 0));
205210

206-
if (entryItem && host == QUrl(entryItem->text()).host())
211+
if (entryItem && domain == Utils::extractDomainName(QUrl(entryItem->text())))
207212
{
208213
entries.append(entryItem->data(IdentifierRole).toULongLong());
209214
}

0 commit comments

Comments
 (0)