Skip to content

Commit 1c81ef6

Browse files
committed
Make strings view a sortable table
1 parent 9ab2eb5 commit 1c81ef6

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

ui/stringsview.h

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22

33
#include <QtCore/QSettings>
4-
#include <QtWidgets/QListView>
4+
#include <QtWidgets/QTableView>
55
#include <QtWidgets/QStyledItemDelegate>
66
#include <QtWidgets/QAbstractScrollArea>
77
#include <mutex>
@@ -53,6 +53,13 @@ class BINARYNINJAUIAPI StringsListModel : public QAbstractItemModel, public Bina
5353
std::vector<StringUpdateEvent> getQueuedStringUpdates();
5454

5555
public:
56+
enum {
57+
COL_ADDRESS = 0,
58+
COL_TYPE,
59+
COL_VALUE,
60+
COLUMN_COUNT,
61+
};
62+
5663
StringsListModel(QWidget* parent, BinaryViewRef data);
5764
virtual ~StringsListModel();
5865

@@ -62,6 +69,7 @@ class BINARYNINJAUIAPI StringsListModel : public QAbstractItemModel, public Bina
6269
virtual int rowCount(const QModelIndex& parent) const override;
6370
virtual int columnCount(const QModelIndex& parent) const override;
6471
virtual QVariant data(const QModelIndex& i, int role) const override;
72+
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
6573

6674
BNStringReference getStringAt(const QModelIndex& i);
6775
QModelIndex findString(const BNStringReference& ref);
@@ -70,6 +78,8 @@ class BINARYNINJAUIAPI StringsListModel : public QAbstractItemModel, public Bina
7078
virtual void OnStringRemoved(BinaryNinja::BinaryView* data, BNStringType type, uint64_t offset, size_t len) override;
7179
void updateStrings();
7280

81+
virtual void sort(int col, Qt::SortOrder order) override;
82+
7383
void setFilter(const std::string& filter);
7484

7585
void updateFilter() { setFilter(m_filter); };
@@ -110,7 +120,6 @@ class BINARYNINJAUIAPI StringItemDelegate : public QStyledItemDelegate
110120
void updateFonts();
111121

112122
virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& idx) const override;
113-
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& idx) const override;
114123
QFont getFont() const { return m_font; }
115124
};
116125

@@ -121,7 +130,7 @@ class StringsViewSidebarWidget;
121130
122131
\ingroup stringsview
123132
*/
124-
class BINARYNINJAUIAPI StringsView : public QListView, public View, public FilterTarget
133+
class BINARYNINJAUIAPI StringsView : public QTableView, public View, public FilterTarget
125134
{
126135
Q_OBJECT
127136

0 commit comments

Comments
 (0)