ui: Increased history dropdown list size to 50

This commit is contained in:
Eberhard Graether
2018-01-13 13:37:18 +01:00
parent 3f60f7a83c
commit 2ac430bbe5
3 changed files with 17 additions and 18 deletions
@@ -535,7 +535,8 @@ MessageBase* UndoRedoController::lastMessage() const
void UndoRedoController::updateHistory() void UndoRedoController::updateHistory()
{ {
const size_t historySize = 20; const size_t historySize = 50;
const size_t historyMenuSize = 20;
std::vector<SearchMatch> matches; std::vector<SearchMatch> matches;
bool firstActiveMessage = false; bool firstActiveMessage = false;
@@ -574,7 +575,7 @@ void UndoRedoController::updateHistory()
} }
} }
m_history.push_front(match); m_history.push_front(match);
if (m_history.size() > historySize) if (m_history.size() > historyMenuSize)
{ {
m_history.pop_back(); m_history.pop_back();
} }
+13 -14
View File
@@ -1,7 +1,8 @@
#include "QtHistoryList.h" #include "QtHistoryList.h"
#include <QLabel>
#include <QBoxLayout> #include <QBoxLayout>
#include <QLabel>
#include <QScrollBar>
#include "utility/messaging/type/MessageToUndoRedoPosition.h" #include "utility/messaging/type/MessageToUndoRedoPosition.h"
#include "utility/ResourcePaths.h" #include "utility/ResourcePaths.h"
@@ -113,42 +114,40 @@ void QtHistoryItem::leaveEvent(QEvent *event)
QtHistoryList::QtHistoryList(const std::vector<SearchMatch>& history, size_t currentIndex) QtHistoryList::QtHistoryList(const std::vector<SearchMatch>& history, size_t currentIndex)
: m_currentIndex(currentIndex) : m_currentIndex(currentIndex)
{ {
setObjectName("history");
setWindowFlags(Qt::Popup); setWindowFlags(Qt::Popup);
setObjectName("history_list");
m_list = new QListWidget(this); setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
m_list->setObjectName("history_list"); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
for (size_t i = 0; i < history.size(); i++) 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); QtHistoryItem* line = new QtHistoryItem(history[i], i, i == currentIndex);
item->setSizeHint(line->getSizeHint()); 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()); 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) void QtHistoryList::showPopup(QPoint pos)
{ {
QSize size(50, 0); QSize size(50, 0);
for (int i = 0; i < m_list->count(); i++) for (int i = 0; i < count(); i++)
{ {
QtHistoryItem* it = dynamic_cast<QtHistoryItem*>(m_list->itemWidget(m_list->item(i))); QtHistoryItem* it = dynamic_cast<QtHistoryItem*>(itemWidget(item(i)));
QSize itemSize = it->getSizeHint(); QSize itemSize = it->getSizeHint();
if (itemSize.width() > size.width()) if (itemSize.width() > size.width())
{ {
size.setWidth(itemSize.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()); setGeometry(pos.x(), pos.y(), size.width() + 15, std::min(size.height(), 600));
m_list->setMinimumSize(size);
show(); show();
} }
@@ -159,7 +158,7 @@ void QtHistoryList::closeEvent(QCloseEvent* event)
void QtHistoryList::onItemClicked(QListWidgetItem *item) void QtHistoryList::onItemClicked(QListWidgetItem *item)
{ {
QtHistoryItem* historyItem = dynamic_cast<QtHistoryItem*>(m_list->itemWidget(item)); QtHistoryItem* historyItem = dynamic_cast<QtHistoryItem*>(itemWidget(item));
if (historyItem) if (historyItem)
{ {
if (historyItem->index != m_currentIndex) if (historyItem->index != m_currentIndex)
+1 -2
View File
@@ -33,7 +33,7 @@ private:
class QtHistoryList class QtHistoryList
: public QWidget : public QListWidget
{ {
Q_OBJECT Q_OBJECT
@@ -53,7 +53,6 @@ private slots:
private: private:
size_t m_currentIndex; size_t m_currentIndex;
QListWidget* m_list;
}; };
#endif // QT_HISTORY_LIST_H #endif // QT_HISTORY_LIST_H