From c2eca928c5a7be0444fcb5c41ffe77b557714575 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 12 Sep 2020 02:21:04 +0200 Subject: when zooming out, place pages on a grid layout --- notebookmodel.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'notebookmodel.cc') diff --git a/notebookmodel.cc b/notebookmodel.cc index 8a58ebf..bfe183b 100644 --- a/notebookmodel.cc +++ b/notebookmodel.cc @@ -291,6 +291,7 @@ void NotebookModel::refreshPen(const QString &name) return; } + _iconCache.clear(); _watcher.addPath(penDir.canonicalPath()); QStringList &curNotebooks = _notebooks[name]; @@ -359,22 +360,21 @@ QDir NotebookModel::notebookDir(const QString &pen, const QString ¬ebook) con QIcon NotebookModel::getNotebookIcon(const QString &pen, const QString ¬ebook) const { - static QStringList candidates; - if (candidates.isEmpty()) { - candidates << "userdata/icon/Notebook.png" - << "userdata/icon/active_64x64.png" - << "userdata/icon/active_32x32.png" - << "userdata/icon/active_16x16.png"; - } - QIcon icon; - QDir dir = notebookDir(pen, notebook); - if (dir.exists()) { + + QIcon icon = _iconCache.value(dir.path()); + if (icon.isNull() && dir.exists()) { + static const QStringList candidates{"userdata/icon/Notebook.png", + "userdata/icon/active_64x64.png", + "userdata/icon/active_32x32.png", + "userdata/icon/active_16x16.png"}; foreach (const QString &candidate, candidates) { if (dir.exists(candidate)) { icon.addFile(dir.filePath(candidate)); } } + + _iconCache.insert(dir.path(), icon); } return icon; -- cgit v1.2.3