Skip to content

Commit

Permalink
sync: from linuxdeepin/dtkgui
Browse files Browse the repository at this point in the history
Synchronize source files from linuxdeepin/dtkgui.

Source-pull-request: linuxdeepin/dtkgui#255
  • Loading branch information
deepin-ci-robot committed Sep 4, 2024
1 parent 098486f commit e1e5143
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/util/private/dbuiltiniconengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,26 @@ QString DBuiltinIconEngine::iconName()
return m_iconName;
}

#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QList<QSize> DBuiltinIconEngine::availableSizes(QIcon::Mode mode, QIcon::State state)
{
ensureLoaded();

QList<QSize> sizes;
int N = m_info.entries.size();
sizes.reserve(N);

// Gets all sizes from the DirectoryInfo entries
for (int i = 0; i < N; ++i) {
const auto& entry = m_info.entries.at(i);
int size = entry->dir.size;
sizes.append(QSize(size, size));
}

return sizes;
}
#endif

QThemeIconInfo DBuiltinIconEngine::loadIcon(const QString &iconName, uint key)
{
QThemeIconInfo info;
Expand Down
1 change: 1 addition & 0 deletions src/util/private/dbuiltiniconengine_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class Q_DECL_HIDDEN DBuiltinIconEngine : public QIconEngine

#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QString iconName() override;
QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off);
#else
QString iconName() const override;
#endif
Expand Down
16 changes: 16 additions & 0 deletions src/util/private/dciiconengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,22 @@ const
return m_iconName;
}

#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QList<QSize> DDciIconEngine::availableSizes(QIcon::Mode mode, QIcon::State state)
{
ensureIconTheme();

auto availableSizes = m_dciIcon.availableSizes(dciTheme(), DDciIcon::Normal);
QList<QSize> sizes;
sizes.reserve(availableSizes.size());

for (int size : availableSizes)
sizes.append(QSize(size, size));

return sizes;
}
#endif

void DDciIconEngine::virtual_hook(int id, void *data)
{
ensureIconTheme();
Expand Down
1 change: 1 addition & 0 deletions src/util/private/dciiconengine_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class Q_DECL_HIDDEN DDciIconEngine : public QIconEngine

#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QString iconName() override;
QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off);
#else
QString iconName() const override;
#endif
Expand Down

0 comments on commit e1e5143

Please sign in to comment.