67 inline static std::string_view logger_name =
"ores.qt.entity_list_mdi_window";
69 [[nodiscard]]
static auto& lg() {
71 static auto instance = make_logger(logger_name);
79 QSize sizeHint()
const override;
96 void clearStaleIndicator();
123 virtual void saveSettings();
126 void closeEvent(QCloseEvent* event)
override;
142 void initializeTableSettings(QTableView* tableView,
143 QAbstractItemModel* sourceModel,
144 std::string_view settingsGroup,
145 const QVector<int>& defaultHiddenColumns = {},
146 const QSize& defaultSize = {900, 400},
147 int settingsVersion = 1,
148 QSplitter* splitter =
nullptr);
158 void initializeStaleIndicator(QAction* refreshAction,
const QString& iconPath);
169 QProgressBar* loadingBar();
192 void connectModel(AbstractClientModel* model);
207 return tr(
"Data changed on server - click to reload");
211 void onPulseTimeout();
214 void startPulseAnimation();
215 void setupColumnVisibility();
216 void showHeaderContextMenu(
const QPoint& pos);
217 void restoreTableSettings();
220 QAction* refreshAction_{
nullptr};
221 QTimer* pulseTimer_{
nullptr};
222 QIcon normalReloadIcon_;
223 QIcon pulseReloadIcon_;
224 bool pulseState_{
false};
228 QProgressBar* loadingBar_{
nullptr};
231 QTableView* settingsTableView_{
nullptr};
232 QAbstractItemModel* settingsModel_{
nullptr};
233 QString settingsGroup_;
234 QVector<int> defaultHiddenColumns_;
235 QSize defaultSize_{900, 400};
236 int settingsVersion_{1};
237 QSplitter* settingsSplitter_{
nullptr};