| 4 | #include "Application.h" |
| 5 | |
| 6 | unique_qobject_ptr<ModFilterWidget> ModFilterWidget::create(Version default_version, QWidget* parent) |
| 7 | { |
| 8 | auto filter_widget = new ModFilterWidget(default_version, parent); |
| 9 | |
| 10 | if (!filter_widget->versionList()->isLoaded()) { |
| 11 | QEventLoop load_version_list_loop; |
| 12 | |
| 13 | QTimer time_limit_for_list_load; |
| 14 | time_limit_for_list_load.setTimerType(Qt::TimerType::CoarseTimer); |
| 15 | time_limit_for_list_load.setSingleShot(true); |
| 16 | time_limit_for_list_load.callOnTimeout(&load_version_list_loop, &QEventLoop::quit); |
| 17 | time_limit_for_list_load.start(4000); |
| 18 | |
| 19 | auto task = filter_widget->versionList()->getLoadTask(); |
| 20 | |
| 21 | connect(task.get(), &Task::failed, [filter_widget]{ |
| 22 | filter_widget->disableVersionButton(VersionButtonID::Major, tr("failed to get version index")); |
| 23 | }); |
| 24 | connect(task.get(), &Task::finished, &load_version_list_loop, &QEventLoop::quit); |
| 25 | |
| 26 | if (!task->isRunning()) |
| 27 | task->start(); |
| 28 | |
| 29 | load_version_list_loop.exec(); |
| 30 | if (time_limit_for_list_load.isActive()) |
| 31 | time_limit_for_list_load.stop(); |
| 32 | } |
| 33 | |
| 34 | return unique_qobject_ptr<ModFilterWidget>(filter_widget); |
| 35 | } |
| 36 | |
| 37 | ModFilterWidget::ModFilterWidget(Version def, QWidget* parent) |
| 38 | : QTabWidget(parent), m_filter(new Filter()), ui(new Ui::ModFilterWidget) |
nothing calls this directly
no test coverage detected