diff --git a/src/readinglistbar.cpp b/src/readinglistbar.cpp index a5ff30181..3e8df047a 100644 --- a/src/readinglistbar.cpp +++ b/src/readinglistbar.cpp @@ -40,10 +40,10 @@ void ReadingListBar::setupList() { auto library = KiwixApp::instance()->getLibrary(); auto bookmarks = library->getBookmarks(); - auto listWidget = ui->listWidget; - listWidget->clear(); + ui->listWidget->clear(); for(auto& bookmark:bookmarks) { std::shared_ptr archive; + const QString& title = QString::fromStdString(bookmark.getTitle()); try { archive = library->getArchive(QString::fromStdString(bookmark.getBookId())); } catch (std::out_of_range& e) { @@ -56,16 +56,9 @@ void ReadingListBar::setupList() QPixmap pixmap; pixmap.loadFromData(reinterpret_cast(content.data()), content.size()); auto icon = QIcon(pixmap); - auto item = new QListWidgetItem( - icon, - QString::fromStdString(bookmark.getTitle()), - listWidget); - item->setTextAlignment(Qt::TextWordWrap); + addItem(title, icon); } catch (zim::EntryNotFound& e) { - auto item = new QListWidgetItem( - QString::fromStdString(bookmark.getTitle()), - listWidget); - item->setTextAlignment(Qt::TextWordWrap); + addItem(title); } } } @@ -104,6 +97,12 @@ void ReadingListBar::onItemActivated(QListWidgetItem* item, Qt::MouseButtons but } } +void ReadingListBar::addItem(const QString &title, const QIcon &icon) +{ + auto item = new QListWidgetItem(icon, title, ui->listWidget); + item->setTextAlignment(Qt::TextWordWrap); +} + void ReadingListBar::openUrl(QListWidgetItem* item, bool newTab) { int index = ui->listWidget->row(item); diff --git a/src/readinglistbar.h b/src/readinglistbar.h index 5a2f29576..cfea784d8 100644 --- a/src/readinglistbar.h +++ b/src/readinglistbar.h @@ -22,6 +22,7 @@ public slots: void onItemDoubleClicked(QListWidgetItem *item); void onItemPressed(QListWidgetItem* item, Qt::MouseButtons buttons); void onItemActivated(QListWidgetItem *item, Qt::MouseButtons buttons); + void addItem(const QString& title, const QIcon& icon = QIcon{}); private: Ui::readinglistbar *ui; int clickKind;