diff --git a/resources/css/popup.css b/resources/css/popup.css index cb8114d..7358d0a 100644 --- a/resources/css/popup.css +++ b/resources/css/popup.css @@ -6,10 +6,10 @@ QTreeView { QTreeView::item { border: 1px solid transparent; + padding-left: 10px; } QTreeView::item:selected { - border: 1px solid #3366CC; background-color: #D9E9FF; color: black; } @@ -39,4 +39,4 @@ QScrollBar { QScrollBar::handle { background-color: grey; -} \ No newline at end of file +} diff --git a/src/searchbar.cpp b/src/searchbar.cpp index a90d7a6..5673a6c 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -85,6 +85,7 @@ SearchBarLineEdit::SearchBarLineEdit(QWidget *parent) : m_suggestionView->header()->setStretchLastSection(true); m_suggestionView->setRootIsDecorated(false); m_suggestionView->setStyleSheet(KiwixApp::instance()->parseStyleFromFile(":/css/popup.css")); + m_suggestionView->setColumnWidth(0, 40); const int contentHeight = HeaderSectionCSS::lineHeight; m_suggestionView->setIconSize(QSize(contentHeight, contentHeight)); diff --git a/src/suggestionlistmodel.cpp b/src/suggestionlistmodel.cpp index 716b0f7..2f4e662 100644 --- a/src/suggestionlistmodel.cpp +++ b/src/suggestionlistmodel.cpp @@ -17,6 +17,13 @@ SuggestionListModel::~SuggestionListModel() { } +int SuggestionListModel::columnCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + + return 2; +} + int SuggestionListModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); @@ -30,6 +37,15 @@ QVariant SuggestionListModel::data(const QModelIndex &index, int role) const if (row < 0 || row >= rowCount()) return QVariant(); + if ( index.column() == 0 && role == Qt::DecorationRole ) + { + const auto library = KiwixApp::instance()->getLibrary(); + const auto zimId = getZimIdFromUrl(m_suggestions.at(row).url); + return library->getBookIcon(zimId); + } + + if ( index.column() == 1 ) + { switch (role) { case Qt::DisplayRole: @@ -37,12 +53,6 @@ QVariant SuggestionListModel::data(const QModelIndex &index, int role) const return m_suggestions.at(row).text; case Qt::UserRole: return m_suggestions.at(row).url; - case Qt::DecorationRole: - { - const auto library = KiwixApp::instance()->getLibrary(); - const auto zimId = getZimIdFromUrl(m_suggestions.at(row).url); - return library->getBookIcon(zimId); - } case Qt::SizeHintRole: { /* Padding in css can't change height, we have to achieve padding @@ -53,6 +63,7 @@ QVariant SuggestionListModel::data(const QModelIndex &index, int role) const return QSize(0, lineHeight + 2 * padding); } } + } return QVariant(); } @@ -60,7 +71,7 @@ QVariant SuggestionListModel::headerData(int section, Qt::Orientation orientation, int role) const { - if (section != 0 || orientation != Qt::Orientation::Horizontal) + if (section != 1 || orientation != Qt::Orientation::Horizontal) return QVariant(); switch (role) diff --git a/src/suggestionlistmodel.h b/src/suggestionlistmodel.h index 0115461..6a89b36 100644 --- a/src/suggestionlistmodel.h +++ b/src/suggestionlistmodel.h @@ -20,6 +20,7 @@ public: explicit SuggestionListModel(QObject *parent = nullptr); ~SuggestionListModel(); + int columnCount(const QModelIndex &parent = QModelIndex()) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;