| 143 | } |
| 144 | |
| 145 | void ModUploader::loadDirectory() { |
| 146 | QProgressDialog progress("Loading mod directory...", "", 0, 0, this); |
| 147 | progress.setWindowModality(Qt::WindowModal); |
| 148 | progress.setCancelButton(nullptr); |
| 149 | progress.setAutoReset(false); |
| 150 | progress.show(); |
| 151 | |
| 152 | if (m_modDirectory && !File::isDirectory(*m_modDirectory)) |
| 153 | m_modDirectory.reset(); |
| 154 | |
| 155 | if (!m_modDirectory) { |
| 156 | m_reloadButton->setEnabled(false); |
| 157 | m_directoryLabel->setText(""); |
| 158 | m_editorSection->setEnabled(false); |
| 159 | m_assetSource.reset(); |
| 160 | return; |
| 161 | } |
| 162 | |
| 163 | m_reloadButton->setEnabled(true); |
| 164 | m_directoryLabel->setText(toQString(*m_modDirectory)); |
| 165 | m_editorSection->setEnabled(true); |
| 166 | m_assetSource = DirectoryAssetSource(*m_modDirectory); |
| 167 | |
| 168 | JsonObject metadata = m_assetSource->metadata(); |
| 169 | m_nameEditor->setText(toQString(metadata.value("name", "").toString())); |
| 170 | m_titleEditor->setText(toQString(metadata.value("friendlyName", "").toString())); |
| 171 | m_authorEditor->setText(toQString(metadata.value("author", "").toString())); |
| 172 | m_versionEditor->setText(toQString(metadata.value("version", "").toString())); |
| 173 | m_descriptionEditor->setPlainText(toQString(metadata.value("description", "").toString())); |
| 174 | |
| 175 | for (auto pair : m_categorySelectors) |
| 176 | pair.second->setChecked(false); |
| 177 | |
| 178 | auto tagString = metadata.value("tags", "").toString(); |
| 179 | auto tagList = tagString.split('|'); |
| 180 | for (auto tag : tagList) { |
| 181 | if (m_categorySelectors.contains(tag)) |
| 182 | m_categorySelectors[tag]->setChecked(true); |
| 183 | } |
| 184 | |
| 185 | String modId = metadata.value("steamContentId", "").toString(); |
| 186 | m_modIdLabel->setText(toQString(strf("<a href=\"steam://url/CommunityFilePage/{}\">{}</a>", modId, modId))); |
| 187 | |
| 188 | String previewFile = File::relativeTo(*m_modDirectory, "_previewimage"); |
| 189 | if (File::isFile(previewFile)) { |
| 190 | m_modPreview = QImage(toQString(previewFile), "PNG"); |
| 191 | m_previewImageLabel->setPixmap(QPixmap::fromImage(m_modPreview)); |
| 192 | } else { |
| 193 | m_modPreview = {}; |
| 194 | m_previewImageLabel->setPixmap({}); |
| 195 | } |
| 196 | } |
| 197 | |
| 198 | void ModUploader::selectPreview() { |
| 199 | QString image = QFileDialog::getOpenFileName(this, "Select a mod preview image", "", "Images (*.png *.jpg)"); |
nothing calls this directly
no test coverage detected