* 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
55 lines
1.3 KiB
C++
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
|