Skip to content

Commit 22c5269

Browse files
committed
Minor feature update of audio export dialog
1 parent bac4fa8 commit 22c5269

3 files changed

Lines changed: 32 additions & 5 deletions

File tree

src/plugins/audio/internal/addon/ExportAudioAddOn.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ namespace Audio::Internal {
194194
eventLoop.exec();
195195
}
196196

197-
QStringList ExportAudioAddOn::formatOptions(int fileType) const {
197+
QStringList ExportAudioAddOn::formatOptions(int fileType) {
198198
return AudioExporterConfig::formatOptionsOfType(static_cast<AudioExporterConfig::FileType>(fileType));
199199
}
200200

@@ -269,6 +269,13 @@ namespace Audio::Internal {
269269
return musicTimeline->create(0, 0, range.second).millisecond() - musicTimeline->create(0, 0, range.first).millisecond();
270270
}
271271

272+
void ExportAudioAddOn::appendFileNameTemplate(const QString &templateString) {
273+
auto config = AudioExporterPresets::instance()->currentConfig();
274+
QFileInfo info(config.fileName());
275+
config.setFileName(info.completeBaseName() + "_" + templateString + "." + info.suffix());
276+
AudioExporterPresets::instance()->setCurrentConfig(config);
277+
}
278+
272279
bool ExportAudioAddOn::runExport(AudioExporter *exporter) {
273280
if (!exporter) {
274281
return false;

src/plugins/audio/internal/addon/ExportAudioAddOn.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,14 @@ namespace Audio::Internal {
8383
void setCurrentParameter(const AudioExporterParameter &parameter);
8484

8585
Q_INVOKABLE void exportAudio();
86-
Q_INVOKABLE QStringList formatOptions(int fileType) const;
8786
Q_INVOKABLE void browseFile();
88-
Q_INVOKABLE void setMixingOption(int index);
89-
Q_INVOKABLE void setFileType(int index);
9087
Q_INVOKABLE bool runExport(AudioExporter *exporter);
9188

89+
Q_INVOKABLE static QStringList formatOptions(int fileType) ;
90+
Q_INVOKABLE static void setMixingOption(int index);
91+
Q_INVOKABLE static void setFileType(int index);
92+
Q_INVOKABLE static void appendFileNameTemplate(const QString &templateString);
93+
9294
Q_INVOKABLE double calculateDurationInMsec(AudioExporter *exporter) const;
9395

9496
Q_SIGNALS:

src/plugins/audio/qml/dialogs/AudioExportDialog.qml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ Window {
184184
const msec = dialog.addOn.calculateDurationInMsec(dialog.exporter)
185185
const minutes = Math.floor(msec / 60000);
186186
const seconds = Math.floor((msec % 60000) / 1000);
187-
const milliseconds = msec % 1000;
187+
const milliseconds = Math.floor(msec % 1000);
188188
durationText = `${minutes}:${String(seconds).padStart(2, '0')}.${String(milliseconds).padStart(3, '0')}`;
189189
if (AudioExporterPresets.currentConfig.fileType !== 0) {
190190
sizeText = qsTr("N/A")
@@ -264,6 +264,24 @@ Window {
264264
icon.source: "image://fluent-system-icons/braces"
265265
text: qsTr("Templates")
266266
display: AbstractButton.IconOnly
267+
action: MenuAction {
268+
menu: Menu {
269+
Action {
270+
text: qsTr("Project name")
271+
onTriggered: dialog.addOn.appendFileNameTemplate("${projectName}")
272+
}
273+
Action {
274+
text: qsTr("Track name")
275+
enabled: AudioExporterPresets.currentConfig.mixingOption !== 0
276+
onTriggered: dialog.addOn.appendFileNameTemplate("${trackName}")
277+
}
278+
Action {
279+
text: qsTr("Track number")
280+
enabled: AudioExporterPresets.currentConfig.mixingOption !== 0
281+
onTriggered: dialog.addOn.appendFileNameTemplate("${trackIndex}")
282+
}
283+
}
284+
}
267285
}
268286
AssistantButton {
269287
id: fileNameAssistant

0 commit comments

Comments
 (0)