mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-23 03:58:56 -04:00
Proper MultiZim List Sizing
Set height&padding for list&items and stretch to menu width.
This commit is contained in:
parent
85d2790b75
commit
c5f2f766b0
@ -75,6 +75,18 @@ SearchBar > QToolButton:hover {
|
|||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MultiZimButton QListWidget {
|
||||||
|
border: 0px;
|
||||||
|
outline: 0px;
|
||||||
|
padding: 5px 0px; /* XXX: duplicated in css_constants.h */
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZimItemWidget QLabel {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 24px; /* XXX: duplicated in css_constants.h */
|
||||||
|
}
|
||||||
|
|
||||||
TopWidget QToolButton:pressed,
|
TopWidget QToolButton:pressed,
|
||||||
TopWidget QToolButton::hover {
|
TopWidget QToolButton::hover {
|
||||||
border: 1px solid #3366CC;
|
border: 1px solid #3366CC;
|
||||||
|
@ -28,6 +28,18 @@ namespace SearchBar{
|
|||||||
const int border = 1;
|
const int border = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace MultiZimButton {
|
||||||
|
namespace QListWidget {
|
||||||
|
const int paddingVertical = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ZimItemWidget {
|
||||||
|
namespace QLabel {
|
||||||
|
const int lineHeight = 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
namespace TopWidget {
|
namespace TopWidget {
|
||||||
namespace QToolButton {
|
namespace QToolButton {
|
||||||
namespace backButton {
|
namespace backButton {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <QRadioButton>
|
#include <QRadioButton>
|
||||||
#include "kiwixapp.h"
|
#include "kiwixapp.h"
|
||||||
#include "multizimbutton.h"
|
#include "multizimbutton.h"
|
||||||
|
#include "css_constants.h"
|
||||||
|
|
||||||
MultiZimButton::MultiZimButton(QWidget *parent) :
|
MultiZimButton::MultiZimButton(QWidget *parent) :
|
||||||
QToolButton(parent),
|
QToolButton(parent),
|
||||||
@ -36,6 +37,8 @@ void MultiZimButton::updateDisplay()
|
|||||||
const auto view = KiwixApp::instance()->getTabWidget()->currentWebView();
|
const auto view = KiwixApp::instance()->getTabWidget()->currentWebView();
|
||||||
QListWidgetItem* currentItem = nullptr;
|
QListWidgetItem* currentItem = nullptr;
|
||||||
QIcon currentIcon;
|
QIcon currentIcon;
|
||||||
|
const int paddingTopBot = CSS::MultiZimButton::QListWidget::paddingVertical * 2;
|
||||||
|
const int itemHeight = paddingTopBot + CSS::ZimItemWidget::QLabel::lineHeight;
|
||||||
for (const auto& bookId : library->getBookIds())
|
for (const auto& bookId : library->getBookIds())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -49,6 +52,7 @@ void MultiZimButton::updateDisplay()
|
|||||||
const auto item = new QListWidgetItem();
|
const auto item = new QListWidgetItem();
|
||||||
item->setData(Qt::UserRole, bookId);
|
item->setData(Qt::UserRole, bookId);
|
||||||
item->setData(Qt::DisplayRole, bookTitle);
|
item->setData(Qt::DisplayRole, bookTitle);
|
||||||
|
item->setSizeHint(QSize(0, itemHeight));
|
||||||
|
|
||||||
if (view && view->zimId() == bookId)
|
if (view && view->zimId() == bookId)
|
||||||
{
|
{
|
||||||
@ -78,6 +82,11 @@ void MultiZimButton::updateDisplay()
|
|||||||
|
|
||||||
mp_buttonList->scrollToTop();
|
mp_buttonList->scrollToTop();
|
||||||
mp_buttonList->setCurrentRow(0);
|
mp_buttonList->setCurrentRow(0);
|
||||||
|
|
||||||
|
/* We set a maximum display height for list. Respect padding. */
|
||||||
|
const int listHeight = itemHeight * std::min(7, mp_buttonList->count());
|
||||||
|
mp_buttonList->setFixedHeight(listHeight + paddingTopBot);
|
||||||
|
mp_buttonList->setFixedWidth(menu()->width());
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList MultiZimButton::getZimIds() const
|
QStringList MultiZimButton::getZimIds() const
|
||||||
@ -118,8 +127,8 @@ ZimItemWidget::ZimItemWidget(QString text, QIcon icon, QWidget *parent) :
|
|||||||
|
|
||||||
textLabel->setText(text);
|
textLabel->setText(text);
|
||||||
|
|
||||||
/* TODO: change temporary values once size is defined laters */
|
const int iconWidth = CSS::ZimItemWidget::QLabel::lineHeight;
|
||||||
const QSize iconSize = QSize(24, 24);
|
const QSize iconSize = QSize(iconWidth, iconWidth);
|
||||||
iconLabel->setPixmap(icon.pixmap(iconSize));
|
iconLabel->setPixmap(icon.pixmap(iconSize));
|
||||||
|
|
||||||
layout()->addWidget(iconLabel);
|
layout()->addWidget(iconLabel);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user