From 2ac430bbe5ccfb9da7ad2e3057aa8ebd39a0b773 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Sat, 13 Jan 2018 13:37:18 +0100 Subject: [PATCH] ui: Increased history dropdown list size to 50 --- .../controller/UndoRedoController.cpp | 5 ++-- src/lib_gui/qt/element/QtHistoryList.cpp | 27 +++++++++---------- src/lib_gui/qt/element/QtHistoryList.h | 3 +-- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/lib/component/controller/UndoRedoController.cpp b/src/lib/component/controller/UndoRedoController.cpp index 51690ab1..d2a8a65b 100644 --- a/src/lib/component/controller/UndoRedoController.cpp +++ b/src/lib/component/controller/UndoRedoController.cpp @@ -535,7 +535,8 @@ MessageBase* UndoRedoController::lastMessage() const void UndoRedoController::updateHistory() { - const size_t historySize = 20; + const size_t historySize = 50; + const size_t historyMenuSize = 20; std::vector matches; bool firstActiveMessage = false; @@ -574,7 +575,7 @@ void UndoRedoController::updateHistory() } } m_history.push_front(match); - if (m_history.size() > historySize) + if (m_history.size() > historyMenuSize) { m_history.pop_back(); } diff --git a/src/lib_gui/qt/element/QtHistoryList.cpp b/src/lib_gui/qt/element/QtHistoryList.cpp index 48ed2440..eecc8528 100644 --- a/src/lib_gui/qt/element/QtHistoryList.cpp +++ b/src/lib_gui/qt/element/QtHistoryList.cpp @@ -1,7 +1,8 @@ #include "QtHistoryList.h" -#include #include +#include +#include #include "utility/messaging/type/MessageToUndoRedoPosition.h" #include "utility/ResourcePaths.h" @@ -113,42 +114,40 @@ void QtHistoryItem::leaveEvent(QEvent *event) QtHistoryList::QtHistoryList(const std::vector& history, size_t currentIndex) : m_currentIndex(currentIndex) { - setObjectName("history"); setWindowFlags(Qt::Popup); - - m_list = new QListWidget(this); - m_list->setObjectName("history_list"); + setObjectName("history_list"); + setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); for (size_t i = 0; i < history.size(); i++) { - QListWidgetItem *item = new QListWidgetItem(m_list); + QListWidgetItem *item = new QListWidgetItem(this); QtHistoryItem* line = new QtHistoryItem(history[i], i, i == currentIndex); item->setSizeHint(line->getSizeHint()); - m_list->setItemWidget(item, line); + setItemWidget(item, line); } setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath().concatenate(FilePath("history_list/history_list.css"))).c_str()); - connect(m_list, &QListWidget::itemClicked, this, &QtHistoryList::onItemClicked); + connect(this, &QListWidget::itemClicked, this, &QtHistoryList::onItemClicked); } void QtHistoryList::showPopup(QPoint pos) { QSize size(50, 0); - for (int i = 0; i < m_list->count(); i++) + for (int i = 0; i < count(); i++) { - QtHistoryItem* it = dynamic_cast(m_list->itemWidget(m_list->item(i))); + QtHistoryItem* it = dynamic_cast(itemWidget(item(i))); QSize itemSize = it->getSizeHint(); if (itemSize.width() > size.width()) { size.setWidth(itemSize.width()); } - size.setHeight(size.height() + m_list->item(i)->sizeHint().height()); + size.setHeight(size.height() + item(i)->sizeHint().height()); } - setGeometry(pos.x(), pos.y(), size.width(), size.height()); - m_list->setMinimumSize(size); + setGeometry(pos.x(), pos.y(), size.width() + 15, std::min(size.height(), 600)); show(); } @@ -159,7 +158,7 @@ void QtHistoryList::closeEvent(QCloseEvent* event) void QtHistoryList::onItemClicked(QListWidgetItem *item) { - QtHistoryItem* historyItem = dynamic_cast(m_list->itemWidget(item)); + QtHistoryItem* historyItem = dynamic_cast(itemWidget(item)); if (historyItem) { if (historyItem->index != m_currentIndex) diff --git a/src/lib_gui/qt/element/QtHistoryList.h b/src/lib_gui/qt/element/QtHistoryList.h index 6e24347a..d36d8068 100644 --- a/src/lib_gui/qt/element/QtHistoryList.h +++ b/src/lib_gui/qt/element/QtHistoryList.h @@ -33,7 +33,7 @@ private: class QtHistoryList - : public QWidget + : public QListWidget { Q_OBJECT @@ -53,7 +53,6 @@ private slots: private: size_t m_currentIndex; - QListWidget* m_list; }; #endif // QT_HISTORY_LIST_H