Files
Sourcetrail/src/lib_gui/qt/window/QtBookmarkBrowser.h
T
Eberhard Graether a72da67d32 logic: Use ControllerProxy in Bookmarking UI classes instead of messaging
* changed ControllerProxy to template class
* allow passing method pointers and arguments to ControllerProxy
* replaced some messages with ControllerProxy calls
* moved logic from BookmarkView into BookmarkController
2017-10-03 07:59:59 +02:00

55 lines
1.3 KiB
C++

#ifndef QT_BOOKMARK_BROWSER_H
#define QT_BOOKMARK_BROWSER_H
#include <QComboBox>
#include <QListWidget>
#include <QTreeWidget>
#include "component/controller/BookmarkController.h"
#include "component/controller/helper/ControllerProxy.h"
#include "data/bookmark/Bookmark.h"
#include "qt/window/QtWindow.h"
class QtBookmark;
class QtBookmarkBrowser
: public QtWindow
{
Q_OBJECT
public:
QtBookmarkBrowser(ControllerProxy<BookmarkController>* controllerProxy, QWidget* parent = nullptr);
~QtBookmarkBrowser();
void setupBookmarkBrowser();
void setBookmarks(const std::vector<std::shared_ptr<Bookmark>>& bookmarks);
protected:
virtual void resizeEvent(QResizeEvent* event) Q_DECL_OVERRIDE;
virtual void handleClose() override;
virtual void handleNext() override;
private slots:
void filterOrOrderChanged(const QString& text);
void treeItemClicked(QTreeWidgetItem* item, int column);
private:
Bookmark::BookmarkFilter getSelectedFilter();
Bookmark::BookmarkOrder getSelectedOrder();
QTreeWidgetItem* findOrCreateTreeCategory(const BookmarkCategory& category);
ControllerProxy<BookmarkController>* m_controllerProxy;
QTreeWidget* m_bookmarkTree;
QComboBox* m_filterComboBox;
QComboBox* m_orderComboBox;
std::vector<std::string> m_orderNames;
QWidget* m_headerBackground;
};
#endif // QT_BOOKMARK_BROWSER_H