Skip to content

Commit 501a7b1

Browse files
committed
Fix regression: Allow searching in all values
1 parent 83abef8 commit 501a7b1

File tree

10 files changed

+1042
-929
lines changed

10 files changed

+1042
-929
lines changed

src/modules/value-editor/valueviewmodel.cpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@ ValueEditor::ValueViewModel::ValueViewModel(QSharedPointer<Model> model)
99
: BaseListModel(),
1010
m_model(model),
1111
m_startFramePosition(0),
12-
m_lastLoadedRowFrameSize(0) {}
12+
m_lastLoadedRowFrameSize(0),
13+
m_singlePageMode(false) {}
1314

1415
int ValueEditor::ValueViewModel::rowCount(const QModelIndex& parent) const {
1516
Q_UNUSED(parent);
1617

17-
return m_lastLoadedRowFrameSize;
18+
if (m_singlePageMode) {
19+
return m_model->rowsCount();
20+
} else {
21+
return m_lastLoadedRowFrameSize;
22+
}
1823
}
1924

2025
QVariant ValueEditor::ValueViewModel::data(const QModelIndex& index,
@@ -99,6 +104,16 @@ void ValueEditor::ValueViewModel::reload() {
99104
});
100105
}
101106

107+
void ValueEditor::ValueViewModel::setSinglePageMode(bool v) {
108+
m_singlePageMode = v;
109+
emit singlePageModeChanged();
110+
}
111+
112+
bool ValueEditor::ValueViewModel::singlePageMode() const
113+
{
114+
return m_singlePageMode;
115+
}
116+
102117
bool ValueEditor::ValueViewModel::isRowLoaded(int i) {
103118
return m_model->isRowLoaded(i);
104119
}

src/modules/value-editor/valueviewmodel.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace ValueEditor {
1111
class ValueViewModel : public BaseListModel {
1212
Q_OBJECT
1313

14+
Q_PROPERTY(bool singlePageMode READ singlePageMode WRITE setSinglePageMode NOTIFY singlePageModeChanged)
1415
Q_PROPERTY(int totalRowCount READ totalRowCount NOTIFY totalRowCountChanged)
1516
Q_PROPERTY(int pageSize READ pageSize NOTIFY pageSizeChanged)
1617
Q_PROPERTY(
@@ -44,6 +45,9 @@ class ValueViewModel : public BaseListModel {
4445
Q_INVOKABLE void loadRows(int start, int limit);
4546
Q_INVOKABLE void reload();
4647

48+
void setSinglePageMode(bool v);
49+
bool singlePageMode() const;
50+
4751
int totalRowCount();
4852
int pageSize();
4953
QVariantList columnNames();
@@ -57,6 +61,7 @@ class ValueViewModel : public BaseListModel {
5761
void keyRenamed();
5862
void keyRemoved();
5963
void keyTTLChanged();
64+
void singlePageModeChanged();
6065

6166
protected:
6267
int mapRowIndex(int i);
@@ -65,6 +70,7 @@ class ValueViewModel : public BaseListModel {
6570
QSharedPointer<Model> m_model;
6671
int m_startFramePosition;
6772
int m_lastLoadedRowFrameSize;
73+
bool m_singlePageMode;
6874
};
6975

7076
} // namespace ValueEditor

src/qml/value-editor/ValueTabs.qml

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ Repeater {
7171
filterSyntax: SortFilterProxyModel.Wildcard
7272
filterCaseSensitivity: Qt.CaseInsensitive
7373
filterRole: keyTab.keyModel ? table.getColumn(1).role : ""
74+
75+
Component.onCompleted: {
76+
if (keyTab.keyModel && keyTab.keyModel.singlePageMode) {
77+
// NOTE(u_glide): disable live search in all values
78+
filterString = table.searchField.text
79+
}
80+
}
7481
}
7582
}
7683

@@ -572,14 +579,48 @@ Repeater {
572579
}
573580
}
574581

575-
TextField {
576-
id: searchField
582+
RowLayout {
583+
Layout.preferredWidth: 195
584+
585+
TextField {
586+
id: searchField
587+
588+
Layout.fillWidth: true
589+
590+
readOnly: keyTab.keyModel.singlePageMode
591+
placeholderText: qsTranslate("RDM","Search on page...")
592+
593+
Component.onCompleted: {
594+
table.searchField = searchField
595+
}
596+
}
597+
598+
Button {
599+
id: clearGlobalSearch
600+
visible: keyTab.keyModel.singlePageMode
601+
602+
iconSource: "qrc:/images/clear.svg"
603+
604+
onClicked: {
605+
wrapper.showLoader()
606+
searchField.text = ""
607+
keyTab.keyModel.singlePageMode = false
608+
reLoadAction.trigger()
609+
}
610+
}
611+
}
612+
613+
Button {
614+
id: globalSearch
577615

578616
Layout.preferredWidth: 195
579-
placeholderText: qsTranslate("RDM","Search on page...")
617+
iconSource: "qrc:/images/execute.svg"
618+
text: qsTranslate("RDM","Search through All values")
580619

581-
Component.onCompleted: {
582-
table.searchField = searchField
620+
onClicked: {
621+
wrapper.showLoader()
622+
keyTab.keyModel.singlePageMode = true
623+
keyTab.keyModel.loadRows(0, keyTab.keyModel.totalRowCount)
583624
}
584625
}
585626

src/resources/images.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<file alias="alert.svg">images/alert.svg</file>
1515
<file alias="add.svg">images/add.svg</file>
1616
<file alias="import.svg">images/import.svg</file>
17+
<file alias="execute.svg">images/execute.svg</file>
1718
<file alias="export.svg">images/export.svg</file>
1819
<file alias="editdb.svg">images/editdb.svg</file>
1920
<file alias="delete.svg">images/delete.svg</file>

0 commit comments

Comments
 (0)