MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / create

Method create

launcher/ui/widgets/ModFilterWidget.cpp:6–35  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4#include "Application.h"
5
6unique_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
37ModFilterWidget::ModFilterWidget(Version def, QWidget* parent)
38 : QTabWidget(parent), m_filter(new Filter()), ui(new Ui::ModFilterWidget)

Callers

nothing calls this directly

Calls 10

versionListMethod · 0.80
disableVersionButtonMethod · 0.80
stopMethod · 0.80
isLoadedMethod · 0.45
startMethod · 0.45
getLoadTaskMethod · 0.45
getMethod · 0.45
isRunningMethod · 0.45
execMethod · 0.45
isActiveMethod · 0.45

Tested by

no test coverage detected