MCPcopy Create free account
hub / github.com/MultiMC/Launcher / NewInstanceDialog

Method NewInstanceDialog

launcher/ui/dialogs/NewInstanceDialog.cpp:46–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44
45
46NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString & url, QWidget *parent)
47 : QDialog(parent), ui(new Ui::NewInstanceDialog)
48{
49 ui->setupUi(this);
50
51 setWindowIcon(APPLICATION->getThemedIcon("new"));
52
53 InstIconKey = "default";
54 ui->iconButton->setIcon(APPLICATION->icons()->getIcon(InstIconKey));
55
56 auto groups = APPLICATION->instances()->getGroups().toSet();
57 auto groupList = QStringList(groups.toList());
58 groupList.sort(Qt::CaseInsensitive);
59 groupList.removeOne("");
60 groupList.push_front(initialGroup);
61 groupList.push_front("");
62 ui->groupBox->addItems(groupList);
63 int index = groupList.indexOf(initialGroup);
64 if(index == -1)
65 {
66 index = 0;
67 }
68 ui->groupBox->setCurrentIndex(index);
69 ui->groupBox->lineEdit()->setPlaceholderText(tr("No group"));
70
71
72 // NOTE: m_buttons must be initialized before PageContainer, because it indirectly accesses m_buttons through setSuggestedPack! Do not move this below.
73 m_buttons = new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
74
75 m_container = new PageContainer(this);
76 m_container->setSizePolicy(QSizePolicy::Policy::Preferred, QSizePolicy::Policy::Expanding);
77 m_container->layout()->setContentsMargins(0, 0, 0, 0);
78 ui->verticalLayout->insertWidget(2, m_container);
79
80 m_container->addButtons(m_buttons);
81
82 // Bonk Qt over its stupid head and make sure it understands which button is the default one...
83 // See: https://stackoverflow.com/questions/24556831/qbuttonbox-set-default-button
84 auto OkButton = m_buttons->button(QDialogButtonBox::Ok);
85 OkButton->setDefault(true);
86 OkButton->setAutoDefault(true);
87 connect(OkButton, &QPushButton::clicked, this, &NewInstanceDialog::accept);
88
89 auto CancelButton = m_buttons->button(QDialogButtonBox::Cancel);
90 CancelButton->setDefault(false);
91 CancelButton->setAutoDefault(false);
92 connect(CancelButton, &QPushButton::clicked, this, &NewInstanceDialog::reject);
93
94 auto HelpButton = m_buttons->button(QDialogButtonBox::Help);
95 HelpButton->setDefault(false);
96 HelpButton->setAutoDefault(false);
97 connect(HelpButton, &QPushButton::clicked, m_container, &PageContainer::help);
98
99 if(!url.isEmpty())
100 {
101 QUrl actualUrl(url);
102 m_container->selectPage("import");
103 importPage->setUrl(url);

Callers

nothing calls this directly

Calls 13

getThemedIconMethod · 0.80
getIconMethod · 0.80
iconsMethod · 0.80
getGroupsMethod · 0.80
instancesMethod · 0.80
addButtonsMethod · 0.80
isEmptyMethod · 0.80
setUrlMethod · 0.80
setupUiMethod · 0.45
setIconMethod · 0.45
selectPageMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected