MCPcopy Create free account
hub / github.com/KDE/kdevelop / prepareForm

Method prepareForm

plugins/filetemplates/outputpage.cpp:141–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

139}
140
141void OutputPage::prepareForm(const SourceFileTemplate& fileTemplate)
142{
143 // First clear any existing file configurations
144 // This can happen when going back and forth between assistant pages
145 d->fileIdentifiers.clear();
146 d->defaultUrls.clear();
147 d->lowerCaseUrls.clear();
148
149 while (d->output->urlFormLayout->count() > 0)
150 {
151 d->output->urlFormLayout->takeAt(0);
152 }
153 while (d->output->positionFormLayout->count() > 0)
154 {
155 d->output->positionFormLayout->takeAt(0);
156 }
157
158 qDeleteAll(d->outputFiles);
159 qDeleteAll(d->outputLines);
160 qDeleteAll(d->outputColumns);
161 qDeleteAll(d->labels);
162
163 d->outputFiles.clear();
164 d->outputLines.clear();
165 d->outputColumns.clear();
166 d->labels.clear();
167
168 const auto outputFiles = fileTemplate.outputFiles();
169
170 const int outputFilesCount = outputFiles.count();
171 d->output->urlGroupBox->setTitle(i18ncp("@title:group", "Output File", "Output Files", outputFilesCount));
172 d->output->positionGroupBox->setTitle(i18ncp("@title:group", "Location within Existing File", "Location within Existing Files", outputFilesCount));
173
174 for (const SourceFileTemplate::OutputFile& file : outputFiles) {
175 const QString id = file.identifier;
176 d->fileIdentifiers << id;
177
178 const QString fileLabelText = i18nc("@label:chooser file name arg", "%1:", file.label);
179 auto* label = new QLabel(fileLabelText, this);
180 d->labels << label;
181 auto* requester = new KUrlRequester(this);
182 requester->setMode( KFile::File | KFile::LocalOnly );
183
184 connect(requester, &KUrlRequester::textChanged, this, [this, id] () { d->updateFileRange(id); });
185
186 d->output->urlFormLayout->addRow(label, requester);
187 d->outputFiles.insert(file.identifier, requester);
188
189 label = new QLabel(fileLabelText, this);
190 d->labels << label;
191 auto* layout = new QHBoxLayout;
192
193 auto line = new QSpinBox(this);
194 line->setPrefix(i18n("Line: "));
195 line->setValue(0);
196 line->setMinimum(0);
197 layout->addWidget(line);
198

Callers 1

templateChosenMethod · 0.80

Calls 9

outputFilesMethod · 0.80
updateFileRangeMethod · 0.80
clearMethod · 0.45
countMethod · 0.45
setTitleMethod · 0.45
setModeMethod · 0.45
insertMethod · 0.45
setValueMethod · 0.45
addWidgetMethod · 0.45

Tested by

no test coverage detected