Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions resources/SettingsTab.qml
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,8 @@ MainTab {

SettingsTabData {
id: settingsTabData
}

Timer {
interval: Utils.hzToMilliseconds(Constants.staticTimerIntervalRate)
running: true
repeat: true
onTriggered: {
function update() {
settings_tab_model.fill_data(settingsTabData);
if (settingsTabData.notification !== "") {
settingsNotification.text = settingsTabData.notification;
Expand Down
91 changes: 41 additions & 50 deletions resources/SettingsTabComponents/SettingsTable.qml
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,7 @@ Rectangle {
}

onVisibleChanged: {
if (visible)
clearTableModel();
else
if (!visible)
selectedRowIdx = -1;
}
Keys.onUpPressed: {
Expand Down Expand Up @@ -121,6 +119,46 @@ Rectangle {

SettingsTableEntries {
id: settingsTableEntries

function update() {
settings_table_model.fill_console_points(settingsTableEntries);
var entries = settingsTableEntries.entries;
if (!entries.length) {
settingsHealthy = false;
return;
}
settingsHealthy = true;
if (lastShowExpert != showExpert) {
tableView._currentSelectedIndex = -1;
tableView.model.clear();
rowOffsets = {};
lastShowExpert = showExpert;
}
if (entries.length != lastEntriesLen) {
lastEntriesLen = entries.length;
tableView.model.clear();
}
var offset = 0;
entries.forEach((entry, idx, entries) => {
var new_row;
if (!isHeader(entry)) {
if (!showExpert && entry.expert === true) {
offset++;
return;
}
new_row = row(entry);
} else {
if (!showExpert && !groupHasNonExpertSetting(entries, idx)) {
offset++;
return;
}
new_row = headerRow(entry);
}
rowOffsets[idx - offset] = idx;
tableView.model.setRow(idx - offset, new_row);
});
tableView.forceLayout();
}
}

ColumnLayout {
Expand Down Expand Up @@ -257,52 +295,5 @@ Rectangle {
}
}
}

Timer {
interval: Utils.hzToMilliseconds(Constants.staticTableTimerIntervalRate)
running: parent.visible
repeat: true
onTriggered: {
settings_table_model.fill_console_points(settingsTableEntries);
var entries = settingsTableEntries.entries;
if (!entries.length) {
settingsHealthy = false;
return;
}
settingsHealthy = true;
if (lastShowExpert != showExpert) {
tableView._currentSelectedIndex = -1;
tableView.model.clear();
rowOffsets = {};
lastShowExpert = showExpert;
}
if (entries.length != lastEntriesLen) {
lastEntriesLen = entries.length;
tableView.model.clear();
}
var offset = 0;
entries.forEach((entry, idx, entries) => {
var new_row;
if (!isHeader(entry)) {
if (showExpert || entry.expert === false) {
new_row = row(entry);
} else {
offset++;
return;
}
} else {
if (showExpert || groupHasNonExpertSetting(entries, idx)) {
new_row = headerRow(entry);
} else {
offset++;
return;
}
}
rowOffsets[idx - offset] = idx;
tableView.model.setRow(idx - offset, new_row);
});
tableView.forceLayout();
}
}
}
}
2 changes: 2 additions & 0 deletions swiftnav_console/settings_tab.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ def handle_data_updated(self) -> None:
self.settings_import_status = SETTINGS_IMPORT_STATUS[0]
self.settings_ins = SETTINGS_INS[0]
self.settings_notification = SETTINGS_NOTIFICATION[0]
self.update() # type: ignore

def get_import_status(self) -> str:
return self._import_status
Expand Down Expand Up @@ -166,6 +167,7 @@ def post_data_update(cls, update_data: Dict[str, Any]) -> None:
@Slot() # type: ignore
def handle_data_updated(self) -> None:
self.settings_table = SETTINGS_TABLE[0]
self.update() # type: ignore

def get_entries(self) -> List[dict]:
return self._entries
Expand Down