32 , m_history(
mApp->history())
34 , m_type(HistoryManagerViewType)
37 setUniformRowHeights(
true);
38 setAllColumnsShowFocus(
true);
42 m_header->setSectionHidden(4,
true);
60 setColumnHidden(1,
false);
61 setColumnHidden(2,
false);
62 setColumnHidden(3,
false);
63 setHeaderHidden(
false);
64 setMouseTracking(
false);
65 setSelectionMode(QAbstractItemView::ExtendedSelection);
68 setColumnHidden(1,
true);
69 setColumnHidden(2,
true);
70 setColumnHidden(3,
true);
71 setHeaderHidden(
true);
72 setMouseTracking(
true);
73 setSelectionMode(QAbstractItemView::SingleSelection);
82 const QList<QModelIndex> indexes = selectionModel()->selectedRows();
84 if (indexes.count() != 1)
104 QApplication::setOverrideCursor(Qt::WaitCursor);
106 QList<QPersistentModelIndex> topLevelIndexes;
108 const auto indexes = selectedIndexes();
109 for (
const QModelIndex &index : indexes) {
110 if (index.column() > 0) {
120 topLevelIndexes.append(index);
124 if (!list.contains(
id)) {
133 QApplication::restoreOverrideCursor();
143 QTreeView::mouseMoveEvent(event);
146 QCursor cursor = Qt::ArrowCursor;
147 if (event->buttons() == Qt::NoButton) {
148 QModelIndex index = indexAt(event->position().toPoint());
150 cursor = Qt::PointingHandCursor;
153 viewport()->setCursor(cursor);
159 QTreeView::mousePressEvent(event);
161 if (selectionModel()->selectedRows().count() == 1) {
162 QModelIndex index = indexAt(event->position().toPoint());
163 Qt::MouseButtons buttons =
event->buttons();
164 Qt::KeyboardModifiers modifiers =
event->modifiers();
169 if (buttons == Qt::LeftButton && modifiers == Qt::ShiftModifier) {
172 else if (buttons == Qt::MiddleButton || (buttons == Qt::LeftButton && modifiers == Qt::ControlModifier)) {
181 QTreeView::mouseReleaseEvent(event);
183 if (selectionModel()->selectedRows().count() == 1) {
184 QModelIndex index = indexAt(event->position().toPoint());
190 if (m_type ==
HistorySidebarViewType && event->button() == Qt::LeftButton && event->modifiers() == Qt::NoModifier) {
199 QTreeView::mouseDoubleClickEvent(event);
201 if (selectionModel()->selectedRows().count() == 1) {
202 QModelIndex index = indexAt(event->position().toPoint());
206 Qt::MouseButtons buttons =
event->buttons();
207 Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers();
209 if (buttons == Qt::LeftButton && modifiers == Qt::NoModifier) {
212 else if (buttons == Qt::LeftButton && modifiers == Qt::ShiftModifier) {
221 QTreeView::keyPressEvent(event);
223 if (selectionModel()->selectedRows().count() == 1) {
224 QModelIndex index = selectionModel()->selectedRows().at(0);
228 switch (event->key()) {
231 if (isTopLevel && (event->modifiers() == Qt::NoModifier || event->modifiers() == Qt::KeypadModifier)) {
232 setExpanded(index, !isExpanded(index));
235 Qt::KeyboardModifiers modifiers =
event->modifiers();
237 if (modifiers == Qt::NoModifier || modifiers == Qt::KeypadModifier) {
240 else if (modifiers == Qt::ControlModifier) {
243 else if (modifiers == Qt::ShiftModifier) {
261 if (index.isValid() && !itemTopLevel && !iconLoaded) {
262 const QPersistentModelIndex idx = index;
266 QTreeView::drawRow(painter, options, index);
bool isPatternEmpty() const
void setFilterFixedString(const QString &pattern)
QList< int > indexesFromTimeRange(qint64 start, qint64 end)
void deleteHistoryEntry(int index)
void removeTopLevelIndexes(const QList< QPersistentModelIndex > &indexes)
void setViewType(ViewType type)
void mousePressEvent(QMouseEvent *event) override
void urlCtrlActivated(const QUrl &url)
void mouseReleaseEvent(QMouseEvent *event) override
void urlShiftActivated(const QUrl &url)
HeaderView * header() const
void removeSelectedItems()
HistoryTreeView(QWidget *parent=nullptr)
void contextMenuRequested(const QPoint &point)
void keyPressEvent(QKeyEvent *event) override
void drawRow(QPainter *painter, const QStyleOptionViewItem &options, const QModelIndex &index) const override
ViewType viewType() const
void urlActivated(const QUrl &url)
void search(const QString &string)
void contextMenuEvent(QContextMenuEvent *event) override
void mouseMoveEvent(QMouseEvent *event) override
void mouseDoubleClickEvent(QMouseEvent *event) override
static QIcon iconForUrl(const QUrl &url, bool allowNull=false)