Warning, /multimedia/kid3/src/qml/app/NumberTracksDialog.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * \file NumberTracksDialog.qml
0003  * Number tracks dialog.
0004  *
0005  * \b Project: Kid3
0006  * \author Urs Fleisch
0007  * \date 16 Feb 2015
0008  *
0009  * Copyright (C) 2015-2018  Urs Fleisch
0010  *
0011  * This program is free software; you can redistribute it and/or modify
0012  * it under the terms of the GNU Lesser General Public License as published by
0013  * the Free Software Foundation; version 3.
0014  *
0015  * This program is distributed in the hope that it will be useful,
0016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  * GNU Lesser General Public License for more details.
0019  *
0020  * You should have received a copy of the GNU Lesser General Public License
0021  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  */
0023 
0024 import QtQuick 2.11
0025 import QtQuick.Layouts 1.11
0026 import QtQuick.Controls 2.4
0027 import Kid3 1.1 as Kid3
0028 
0029 Dialog {
0030   id: page
0031 
0032   title: qsTr("Number Tracks")
0033   standardButtons: Dialog.Ok | Dialog.Cancel
0034   modal: true
0035   x: (parent.width - width) / 2
0036   y: parent.height / 6
0037 
0038   ColumnLayout {
0039   Row {
0040     spacing: constants.spacing
0041     CheckBox {
0042       id: numberCheckBox
0043       checked: true
0044     }
0045     Label {
0046       height: totalRow.height
0047       verticalAlignment: Text.AlignVCenter
0048       text: qsTr("Start number:")
0049     }
0050   }
0051   TextField {
0052     id: startNumberEdit
0053     text: "1"
0054     selectByMouse: true
0055   }
0056   Label {
0057     text: qsTr("Destination:")
0058     width: parent.labelWidth
0059   }
0060   ComboBox {
0061     id: destinationComboBox
0062     width: parent.valueWidth
0063     model: [ qsTr("Tag 1"),
0064              qsTr("Tag 2"),
0065              qsTr("Tag 3"),
0066              qsTr("Tag 1 and Tag 2"),
0067              qsTr("All Tags") ]
0068     function getTagVersion() {
0069       return [ Kid3.Frame.TagV1, Kid3.Frame.TagV2, Kid3.Frame.TagV3,
0070                Kid3.Frame.TagV2V1, Kid3.Frame.TagVAll ][currentIndex]
0071     }
0072   }
0073   Row {
0074     spacing: constants.spacing
0075     CheckBox {
0076       id: resetCounterCheckBox
0077       checked: true
0078     }
0079     Label {
0080       height: totalRow.height
0081       verticalAlignment: Text.AlignVCenter
0082       text: qsTr("Reset counter for each folder")
0083     }
0084   }
0085   Row {
0086     id: totalRow
0087     spacing: constants.spacing
0088     CheckBox {
0089       id: totalCheckBox
0090       checked: configs.tagConfig().enableTotalNumberOfTracks
0091     }
0092     Label {
0093       height: totalRow.height
0094       verticalAlignment: Text.AlignVCenter
0095       text: qsTr("Total number of tracks")
0096     }
0097   }
0098   TextField {
0099     id: totalEdit
0100     selectByMouse: true
0101   }
0102   }
0103 
0104   onAccepted: {
0105     var startNr = parseInt(startNumberEdit.text)
0106     if (!isNaN(startNr)) {
0107       var total = totalCheckBox.checked ? parseInt(totalEdit.text) : -1
0108       if (isNaN(total)) {
0109         total = -1
0110       }
0111       var options = 0
0112       if (numberCheckBox.checked)
0113         options |= Kid3.Kid3Application.NumberTracksEnabled
0114       if (resetCounterCheckBox.checked)
0115         options |= Kid3.Kid3Application.NumberTracksResetCounterForEachDirectory
0116       app.numberTracks(startNr, total,
0117                    script.toTagVersion(destinationComboBox.getTagVersion()),
0118                    options)
0119     }
0120   }
0121 
0122   onVisibleChanged: if (visible) {
0123     totalEdit.text = app.getTotalNumberOfTracksInDir()
0124   }
0125 }