import QtQuick.tooling 1.2

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
// 'qmlplugindump -notrelocatable Kid3 1.0 /build/kid3/src/build/src/plugins/imports'

Module {
    dependencies: [
        "QtQml 2.2",
        "QtQml.Models 2.15",
        "QtQml.WorkerScript 2.15"
    ]
    Component {
        name: "AudioPlayer"
        prototype: "QObject"
        exports: ["Kid3/AudioPlayer 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal {
            name: "aboutToPlay"
            Parameter { name: "filePath"; type: "string" }
        }
        Signal {
            name: "trackChanged"
            Parameter { name: "filePath"; type: "string" }
            Parameter { name: "hasPrevious"; type: "bool" }
            Parameter { name: "hasNext"; type: "bool" }
        }
        Signal {
            name: "positionChanged"
            Parameter { name: "position"; type: "qlonglong" }
        }
        Signal {
            name: "currentPositionChanged"
            Parameter { name: "position"; type: "qlonglong" }
        }
        Signal {
            name: "stateChanged"
            Parameter { name: "state"; type: "AudioPlayer::State" }
        }
        Signal {
            name: "volumeChanged"
            Parameter { name: "volume"; type: "int" }
        }
        Signal {
            name: "fileCountChanged"
            Parameter { name: "count"; type: "int" }
        }
        Method {
            name: "setFiles"
            Parameter { name: "files"; type: "QStringList" }
            Parameter { name: "fileNr"; type: "int" }
        }
        Method {
            name: "setFiles"
            Parameter { name: "files"; type: "QStringList" }
        }
        Method { name: "playOrPause" }
        Method { name: "play" }
        Method { name: "pause" }
        Method { name: "stop" }
        Method { name: "previous" }
        Method { name: "next" }
    }
    Component {
        name: "BatchImporter"
        prototype: "QObject"
        exports: ["Kid3/BatchImporter 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "ImportEventType"
            values: {
                "ReadingDirectory": 0,
                "Started": 1,
                "SourceSelected": 2,
                "QueryingAlbumList": 3,
                "FetchingTrackList": 4,
                "TrackListReceived": 5,
                "FetchingCoverArt": 6,
                "CoverArtReceived": 7,
                "Finished": 8,
                "Aborted": 9,
                "Error": 10
            }
        }
        Signal {
            name: "reportImportEvent"
            Parameter { name: "type"; type: "int" }
            Parameter { name: "text"; type: "string" }
        }
        Signal { name: "finished" }
        Method { name: "abort" }
    }
    Component {
        name: "CheckableListModel"
        prototype: "QAbstractProxyModel"
        exports: ["Kid3/CheckableListModel 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "sourceModel"; type: "QObject"; isPointer: true }
        Property { name: "selectionModel"; type: "QObject"; isPointer: true }
        Property { name: "rootIndex"; type: "QModelIndex" }
        Property { name: "currentRow"; type: "int" }
        Signal {
            name: "currentRowChanged"
            Parameter { name: "row"; type: "int" }
        }
        Method {
            name: "getDataValue"
            type: "QVariant"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
        }
        Method {
            name: "setDataValue"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
            Parameter { name: "value"; type: "QVariant" }
        }
        Method {
            name: "modelIndex"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
        }
        Method { name: "parentModelIndex"; type: "QModelIndex" }
        Method {
            name: "hasModelChildren"
            type: "bool"
            Parameter { name: "row"; type: "int" }
        }
    }
    Component {
        name: "ConfigObjects"
        prototype: "QObject"
        exports: ["Kid3/ConfigObjects 1.0"]
        exportMetaObjectRevisions: [0]
        Method { name: "batchImportConfig"; type: "QObject*" }
        Method { name: "filterConfig"; type: "QObject*" }
        Method { name: "filenameFormatConfig"; type: "QObject*" }
        Method { name: "tagFormatConfig"; type: "QObject*" }
        Method { name: "importConfig"; type: "QObject*" }
        Method { name: "exportConfig"; type: "QObject*" }
        Method { name: "tagConfig"; type: "QObject*" }
        Method { name: "fileConfig"; type: "QObject*" }
        Method { name: "renDirConfig"; type: "QObject*" }
        Method { name: "numberTracksConfig"; type: "QObject*" }
        Method { name: "userActionsConfig"; type: "QObject*" }
        Method { name: "guiConfig"; type: "QObject*" }
        Method { name: "networkConfig"; type: "QObject*" }
        Method { name: "playlistConfig"; type: "QObject*" }
        Method { name: "findReplaceConfig"; type: "QObject*" }
        Method { name: "mainWindowConfig"; type: "QObject*" }
    }
    Component {
        name: "DirRenamer"
        prototype: "QObject"
        exports: ["Kid3/DirRenamer 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal {
            name: "actionScheduled"
            Parameter { name: "actionStrs"; type: "QStringList" }
        }
        Method { name: "abort" }
    }
    Component {
        name: "DownloadClient"
        prototype: "HttpClient"
        exports: ["Kid3/DownloadClient 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal {
            name: "downloadStarted"
            Parameter { name: "url"; type: "string" }
        }
        Signal {
            name: "downloadFinished"
            Parameter { name: "data"; type: "QByteArray" }
            Parameter { name: "contentType"; type: "string" }
            Parameter { name: "url"; type: "string" }
        }
        Signal { name: "aborted" }
        Method { name: "cancelDownload" }
    }
    Component {
        name: "FileFilter"
        prototype: "QObject"
        exports: ["Kid3/FileFilter 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "FilterEventType"
            values: {
                "Started": 0,
                "Directory": 1,
                "ParseError": 2,
                "FilePassed": 3,
                "FileFilteredOut": 4,
                "Finished": 5,
                "Aborted": 6
            }
        }
        Method { name: "abort" }
    }
    Component {
        name: "FileProxyModel"
        prototype: "QSortFilterProxyModel"
        exports: ["Kid3/FileProxyModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal { name: "sortingFinished" }
        Signal {
            name: "fileModificationChanged"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "modified"; type: "bool" }
        }
        Signal {
            name: "modifiedChanged"
            Parameter { name: "modified"; type: "bool" }
        }
    }
    Component {
        name: "FormatConfig"
        prototype: "GeneralConfig"
        exports: ["Kid3/FormatConfig 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "CaseConversion"
            values: {
                "NoChanges": 0,
                "AllLowercase": 1,
                "AllUppercase": 2,
                "FirstLetterUppercase": 3,
                "AllFirstLettersUppercase": 4,
                "NumCaseConversions": 5
            }
        }
        Property { name: "strRepMap"; type: "QStringList" }
        Property { name: "caseConversion"; type: "int" }
        Property { name: "localeName"; type: "string" }
        Property { name: "maximumLength"; type: "int" }
        Property { name: "enableMaximumLength"; type: "bool" }
        Property { name: "formatWhileEditing"; type: "bool" }
        Property { name: "strRepEnabled"; type: "bool" }
        Property { name: "enableValidation"; type: "bool" }
        Signal {
            name: "strRepMapChanged"
            Parameter { name: "strRepMap"; type: "QList<QPair<QString,QString> >" }
        }
        Signal {
            name: "caseConversionChanged"
            Parameter { name: "caseConversion"; type: "FormatConfig::CaseConversion" }
        }
        Signal {
            name: "localeNameChanged"
            Parameter { name: "localeName"; type: "string" }
        }
        Signal {
            name: "formatWhileEditingChanged"
            Parameter { name: "formatWhileEditing"; type: "bool" }
        }
        Signal {
            name: "strRepEnabledChanged"
            Parameter { name: "strRepEnabled"; type: "bool" }
        }
        Signal {
            name: "enableValidationChanged"
            Parameter { name: "enableValidation"; type: "bool" }
        }
        Signal {
            name: "enableMaximumLengthChanged"
            Parameter { name: "enableMaximumLength"; type: "bool" }
        }
        Signal {
            name: "maximumLengthChanged"
            Parameter { name: "maximumLength"; type: "int" }
        }
        Method { name: "getCaseConversionNames"; type: "QStringList" }
        Method { name: "getLocaleNames"; type: "QStringList" }
    }
    Component {
        name: "Frame"
        exports: ["Kid3/Frame 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Type"
            values: {
                "FT_Title": 0,
                "FT_FirstFrame": 0,
                "FT_Artist": 1,
                "FT_Album": 2,
                "FT_Comment": 3,
                "FT_Date": 4,
                "FT_Track": 5,
                "FT_Genre": 6,
                "FT_LastV1Frame": 6,
                "FT_AlbumArtist": 7,
                "FT_Arranger": 8,
                "FT_Author": 9,
                "FT_Bpm": 10,
                "FT_CatalogNumber": 11,
                "FT_Compilation": 12,
                "FT_Composer": 13,
                "FT_Conductor": 14,
                "FT_Copyright": 15,
                "FT_Disc": 16,
                "FT_EncodedBy": 17,
                "FT_EncoderSettings": 18,
                "FT_EncodingTime": 19,
                "FT_Grouping": 20,
                "FT_InitialKey": 21,
                "FT_Isrc": 22,
                "FT_Language": 23,
                "FT_Lyricist": 24,
                "FT_Lyrics": 25,
                "FT_Media": 26,
                "FT_Mood": 27,
                "FT_OriginalAlbum": 28,
                "FT_OriginalArtist": 29,
                "FT_OriginalDate": 30,
                "FT_Description": 31,
                "FT_Performer": 32,
                "FT_Picture": 33,
                "FT_Publisher": 34,
                "FT_ReleaseCountry": 35,
                "FT_Remixer": 36,
                "FT_SortAlbum": 37,
                "FT_SortAlbumArtist": 38,
                "FT_SortArtist": 39,
                "FT_SortComposer": 40,
                "FT_SortName": 41,
                "FT_Subtitle": 42,
                "FT_Website": 43,
                "FT_WWWAudioFile": 44,
                "FT_WWWAudioSource": 45,
                "FT_ReleaseDate": 46,
                "FT_Rating": 47,
                "FT_Work": 48,
                "FT_LastFrame": 48,
                "FT_Other": 49,
                "FT_UnknownFrame": 50
            }
        }
        Enum {
            name: "FieldId"
            values: {
                "ID_NoField": 0,
                "ID_TextEnc": 1,
                "ID_Text": 2,
                "ID_Url": 3,
                "ID_Data": 4,
                "ID_Description": 5,
                "ID_Owner": 6,
                "ID_Email": 7,
                "ID_Rating": 8,
                "ID_Filename": 9,
                "ID_Language": 10,
                "ID_PictureType": 11,
                "ID_ImageFormat": 12,
                "ID_MimeType": 13,
                "ID_Counter": 14,
                "ID_Id": 15,
                "ID_VolumeAdj": 16,
                "ID_NumBits": 17,
                "ID_VolChgRight": 18,
                "ID_VolChgLeft": 19,
                "ID_PeakVolRight": 20,
                "ID_PeakVolLeft": 21,
                "ID_TimestampFormat": 22,
                "ID_ContentType": 23,
                "ID_Price": 24,
                "ID_Date": 25,
                "ID_Seller": 26,
                "ID_ImageProperties": 27,
                "ID_Subframe": 28
            }
        }
        Enum {
            name: "TextEncoding"
            values: {
                "TE_ISO8859_1": 0,
                "TE_UTF16": 1,
                "TE_UTF16BE": 2,
                "TE_UTF8": 3
            }
        }
        Enum {
            name: "PictureType"
            values: {
                "PT_Other": 0,
                "PT_Png32Icon": 1,
                "PT_OtherIcon": 2,
                "PT_CoverFront": 3,
                "PT_CoverBack": 4,
                "PT_LeafletPage": 5,
                "PT_Media": 6,
                "PT_LeadArtist": 7,
                "PT_Artist": 8,
                "PT_Conductor": 9,
                "PT_Band": 10,
                "PT_Composer": 11,
                "PT_Lyricist": 12,
                "PT_RecordingLocation": 13,
                "PT_DuringRecording": 14,
                "PT_DuringPerformance": 15,
                "PT_Video": 16,
                "PT_Fish": 17,
                "PT_Illustration": 18,
                "PT_ArtistLogo": 19,
                "PT_PublisherLogo": 20
            }
        }
        Enum {
            name: "TagNumber"
            values: {
                "Tag_1": 0,
                "Tag_2": 1,
                "Tag_3": 2,
                "Tag_NumValues": 3,
                "Tag_Id3v1": 0,
                "Tag_Id3v2": 1,
                "Tag_Picture": 1
            }
        }
        Enum {
            name: "TagVersion"
            values: {
                "TagNone": 0,
                "TagV1": 1,
                "TagV2": 2,
                "TagV3": 4,
                "TagV2V1": 3,
                "TagVAll": 7
            }
        }
    }
    Component {
        name: "FrameEditorObject"
        prototype: "QObject"
        exports: ["Kid3/FrameEditorObject 1.0"]
        exportMetaObjectRevisions: [0]
        Signal {
            name: "frameEdited"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
            Parameter { name: "frame"; type: "const Frame"; isPointer: true }
        }
        Signal {
            name: "frameSelected"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
            Parameter { name: "frame"; type: "const Frame"; isPointer: true }
        }
        Signal {
            name: "frameSelectionRequested"
            Parameter { name: "frameNames"; type: "QStringList" }
        }
        Signal {
            name: "frameEditRequested"
            Parameter { name: "frame"; type: "FrameObjectModel"; isPointer: true }
        }
        Method {
            name: "onFrameSelectionFinished"
            Parameter { name: "displayName"; type: "string" }
        }
        Method {
            name: "onFrameEditFinished"
            Parameter { name: "frame"; type: "FrameObjectModel"; isPointer: true }
        }
    }
    Component {
        name: "FrameList"
        prototype: "QObject"
        exports: ["Kid3/FrameList 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal {
            name: "frameEdited"
            Parameter { name: "frame"; type: "const Frame"; isPointer: true }
        }
        Signal {
            name: "frameAdded"
            Parameter { name: "frame"; type: "const Frame"; isPointer: true }
        }
        Method {
            name: "selectByRow"
            type: "bool"
            Parameter { name: "row"; type: "int" }
        }
    }
    Component {
        name: "FrameObjectModel"
        prototype: "QObject"
        exports: ["Kid3/FrameObjectModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "name"; type: "string"; isReadonly: true }
        Property { name: "internalName"; type: "string"; isReadonly: true }
        Property { name: "type"; type: "int"; isReadonly: true }
        Property { name: "value"; type: "string" }
        Property { name: "fields"; type: "QList<QObject*>"; isReadonly: true }
        Signal {
            name: "valueChanged"
            Parameter { name: "value"; type: "string" }
        }
        Method { name: "getBinaryData"; type: "QByteArray" }
    }
    Component {
        name: "FrameTableModel"
        prototype: "QAbstractTableModel"
        exports: ["Kid3/FrameTableModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method { name: "selectAllFrames" }
        Method { name: "deselectAllFrames" }
        Method { name: "selectChangedFrames" }
        Method {
            name: "setFrameOrder"
            Parameter { name: "frameTypes"; type: "QList<int>" }
        }
    }
    Component {
        name: "GeneralConfig"
        prototype: "QObject"
        Method { name: "getTextCodecNames"; type: "QStringList" }
    }
    Component {
        name: "GenreModel"
        prototype: "QStringListModel"
        exports: ["Kid3/GenreModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method {
            name: "getRowForGenre"
            type: "int"
            Parameter { name: "genreStr"; type: "string" }
        }
    }
    Component {
        name: "HttpClient"
        prototype: "QObject"
        Signal {
            name: "progress"
            Parameter { type: "string" }
            Parameter { type: "int" }
            Parameter { type: "int" }
        }
        Signal {
            name: "bytesReceived"
            Parameter { type: "QByteArray" }
        }
    }
    Component {
        name: "Kid3Application"
        prototype: "QObject"
        exports: ["Kid3/Kid3Application 1.1"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "NumberTrackOption"
            values: {
                "NumberTracksEnabled": 1,
                "NumberTracksResetCounterForEachDirectory": 2
            }
        }
        Enum {
            name: "NumberTrackOptions"
            values: {
                "NumberTracksEnabled": 1,
                "NumberTracksResetCounterForEachDirectory": 2
            }
        }
        Property { name: "fileProxyModel"; type: "FileProxyModel"; isReadonly: true; isPointer: true }
        Property { name: "dirProxyModel"; type: "DirProxyModel"; isReadonly: true; isPointer: true }
        Property {
            name: "fileSelectionModel"
            type: "QItemSelectionModel"
            isReadonly: true
            isPointer: true
        }
        Property {
            name: "dirSelectionModel"
            type: "QItemSelectionModel"
            isReadonly: true
            isPointer: true
        }
        Property { name: "selectionInfo"; type: "TaggedFileSelection"; isReadonly: true; isPointer: true }
        Property { name: "fileRootIndex"; type: "QModelIndex"; isReadonly: true }
        Property { name: "dirRootIndex"; type: "QModelIndex"; isReadonly: true }
        Property { name: "dirName"; type: "string"; isReadonly: true }
        Property { name: "modified"; type: "bool"; isReadonly: true }
        Property { name: "filtered"; type: "bool" }
        Property { name: "filterPassedCount"; type: "int"; isReadonly: true }
        Property { name: "filterTotalCount"; type: "int"; isReadonly: true }
        Property { name: "frameEditor"; type: "FrameEditorObject"; isPointer: true }
        Property { name: "coverArtImageId"; type: "string"; isReadonly: true }
        Property { name: "dirRenamer"; type: "DirRenamer"; isReadonly: true; isPointer: true }
        Property { name: "batchImporter"; type: "BatchImporter"; isReadonly: true; isPointer: true }
        Property { name: "downloadClient"; type: "DownloadClient"; isReadonly: true; isPointer: true }
        Signal {
            name: "fileRootIndexChanged"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Signal {
            name: "dirRootIndexChanged"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Signal { name: "directoryOpened" }
        Signal {
            name: "confirmedOpenDirectoryRequested"
            Parameter { name: "paths"; type: "QStringList" }
        }
        Signal { name: "fileSelectionUpdateRequested" }
        Signal { name: "selectedFilesUpdated" }
        Signal {
            name: "selectedFilesChanged"
            Parameter { name: "selected"; type: "QItemSelection" }
            Parameter { name: "deselected"; type: "QItemSelection" }
        }
        Signal {
            name: "frameModified"
            Parameter { name: "taggedFile"; type: "TaggedFile"; isPointer: true }
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Signal {
            name: "modifiedChanged"
            Parameter { name: "modified"; type: "bool" }
        }
        Signal {
            name: "filteredChanged"
            Parameter { name: "filtered"; type: "bool" }
        }
        Signal {
            name: "dirNameChanged"
            Parameter { name: "name"; type: "string" }
        }
        Signal {
            name: "fileFiltered"
            Parameter { name: "type"; type: "int" }
            Parameter { name: "fileName"; type: "string" }
            Parameter { name: "passed"; type: "int" }
            Parameter { name: "total"; type: "int" }
        }
        Signal { name: "aboutToPlayAudio" }
        Signal { name: "renameActionsScheduled" }
        Signal {
            name: "toggleExpandedRequested"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Signal { name: "expandFileListRequested" }
        Signal { name: "expandFileListFinished" }
        Signal { name: "fileSelectionChanged" }
        Signal {
            name: "coverArtImageIdChanged"
            Parameter { name: "id"; type: "string" }
        }
        Signal {
            name: "longRunningOperationProgress"
            Parameter { name: "name"; type: "string" }
            Parameter { name: "done"; type: "int" }
            Parameter { name: "total"; type: "int" }
            Parameter { name: "abort"; type: "bool"; isPointer: true }
        }
        Method {
            name: "openDrop"
            Parameter { name: "paths"; type: "QStringList" }
        }
        Method {
            name: "openDropUrls"
            Parameter { name: "urlList"; type: "QList<QUrl>" }
        }
        Method { name: "unloadAllTags" }
        Method { name: "revertFileModifications" }
        Method {
            name: "setFileNameOfSelectedFile"
            Parameter { name: "name"; type: "string" }
        }
        Method { name: "applyFilenameFormat" }
        Method { name: "applyTagFormat" }
        Method { name: "applyTextEncoding" }
        Method { name: "convertToId3v24" }
        Method { name: "convertToId3v23" }
        Method {
            name: "copyTags"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "pasteTags"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "copyToOtherTag"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "copyTag"
            Parameter { name: "srcTagNr"; type: "Frame::TagNumber" }
            Parameter { name: "dstTagNr"; type: "Frame::TagNumber" }
        }
        Method {
            name: "removeTags"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "getTagsFromFilename"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "getFilenameFromTags"
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
        }
        Method {
            name: "editFrame"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Method {
            name: "deleteFrame"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
            Parameter { name: "frameName"; type: "string" }
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "deleteFrame"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
            Parameter { name: "frameName"; type: "string" }
        }
        Method {
            name: "deleteFrame"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Method {
            name: "selectAndAddFrame"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Method { name: "editOrAddPicture" }
        Method {
            name: "imageDownloaded"
            Parameter { name: "data"; type: "QByteArray" }
            Parameter { name: "mimeType"; type: "string" }
            Parameter { name: "url"; type: "string" }
        }
        Method {
            name: "firstFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
            Parameter { name: "onlyTaggedFiles"; type: "bool" }
        }
        Method {
            name: "firstFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
        }
        Method { name: "firstFile"; type: "bool" }
        Method {
            name: "nextFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
            Parameter { name: "onlyTaggedFiles"; type: "bool" }
        }
        Method {
            name: "nextFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
        }
        Method { name: "nextFile"; type: "bool" }
        Method {
            name: "previousFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
            Parameter { name: "onlyTaggedFiles"; type: "bool" }
        }
        Method {
            name: "previousFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
        }
        Method { name: "previousFile"; type: "bool" }
        Method {
            name: "selectCurrentFile"
            type: "bool"
            Parameter { name: "select"; type: "bool" }
        }
        Method { name: "selectCurrentFile"; type: "bool" }
        Method { name: "selectAllFiles" }
        Method { name: "deselectAllFiles" }
        Method { name: "selectAllInDirectory" }
        Method {
            name: "selectFile"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
            Parameter { name: "select"; type: "bool" }
        }
        Method {
            name: "selectFile"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "fetchDirectory"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "expandDirectory"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method { name: "requestExpandFileList" }
        Method { name: "notifyExpandFileListFinished" }
        Method {
            name: "fileSelected"
            Parameter { name: "selected"; type: "QItemSelection" }
            Parameter { name: "deselected"; type: "QItemSelection" }
        }
        Method {
            name: "findText"
            Parameter { name: "params"; type: "TagSearcher::Parameters" }
        }
        Method {
            name: "replaceText"
            Parameter { name: "params"; type: "TagSearcher::Parameters" }
        }
        Method {
            name: "replaceAll"
            Parameter { name: "params"; type: "TagSearcher::Parameters" }
        }
        Method { name: "scheduleRenameActions" }
        Method {
            name: "applyFilter"
            Parameter { name: "fileFilter"; type: "FileFilter&" }
        }
        Method {
            name: "applyFilter"
            Parameter { name: "expression"; type: "string" }
        }
        Method { name: "abortFilter" }
        Method {
            name: "batchImport"
            Parameter { name: "profile"; type: "BatchImportProfile" }
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
        }
        Method {
            name: "batchImport"
            type: "bool"
            Parameter { name: "profileName"; type: "string" }
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
        }
        Method { name: "playAudio" }
        Method { name: "showAudioPlayer" }
        Method { name: "activateMprisInterface" }
        Method { name: "deactivateMprisInterface" }
        Method {
            name: "closeFileHandle"
            Parameter { name: "filePath"; type: "string" }
        }
        Method { name: "getServerImporterNames"; type: "QStringList" }
        Method { name: "getAudioPlayer"; type: "QObject*" }
        Method {
            name: "tag"
            type: "Kid3ApplicationTagContext*"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Method { name: "applyChangedConfiguration" }
        Method { name: "saveConfig" }
        Method { name: "readConfig" }
        Method {
            name: "openDirectory"
            type: "bool"
            Parameter { name: "paths"; type: "QStringList" }
            Parameter { name: "fileCheck"; type: "bool" }
        }
        Method {
            name: "openDirectory"
            type: "bool"
            Parameter { name: "paths"; type: "QStringList" }
        }
        Method { name: "saveDirectory"; type: "QStringList" }
        Method { name: "frameModelsToTags" }
        Method { name: "tagsToFrameModels" }
        Method {
            name: "importTags"
            type: "bool"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "path"; type: "string" }
            Parameter { name: "fmtIdx"; type: "int" }
        }
        Method {
            name: "importFromTags"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "source"; type: "string" }
            Parameter { name: "extraction"; type: "string" }
        }
        Method {
            name: "importFromTagsToSelection"
            type: "QStringList"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "source"; type: "string" }
            Parameter { name: "extraction"; type: "string" }
        }
        Method {
            name: "exportTags"
            type: "bool"
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
            Parameter { name: "path"; type: "string" }
            Parameter { name: "fmtIdx"; type: "int" }
        }
        Method { name: "writePlaylist"; type: "bool" }
        Method {
            name: "getPlaylistItems"
            type: "QStringList"
            Parameter { name: "path"; type: "string" }
        }
        Method {
            name: "setPlaylistItems"
            type: "bool"
            Parameter { name: "path"; type: "string" }
            Parameter { name: "items"; type: "QStringList" }
        }
        Method { name: "performRenameActions"; type: "string" }
        Method {
            name: "renameDirectory"
            type: "bool"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "format"; type: "string" }
            Parameter { name: "create"; type: "bool" }
        }
        Method {
            name: "numberTracks"
            Parameter { name: "nr"; type: "int" }
            Parameter { name: "total"; type: "int" }
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
            Parameter { name: "options"; type: "Kid3Application::NumberTrackOptions" }
        }
        Method {
            name: "numberTracks"
            Parameter { name: "nr"; type: "int" }
            Parameter { name: "total"; type: "int" }
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
        }
        Method {
            name: "downloadImage"
            Parameter { name: "url"; type: "string" }
            Parameter { name: "allFilesInDir"; type: "bool" }
        }
        Method {
            name: "getFrame"
            type: "string"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "getAllFrames"
            type: "QVariantMap"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
        }
        Method {
            name: "setFrame"
            type: "bool"
            Parameter { name: "tagMask"; type: "Frame::TagVersion" }
            Parameter { name: "name"; type: "string" }
            Parameter { name: "value"; type: "string" }
        }
        Method { name: "getPictureData"; type: "QByteArray" }
        Method {
            name: "setPictureData"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method { name: "getTotalNumberOfTracksInDir"; type: "int" }
        Method { name: "createFilterString"; type: "string" }
        Method { name: "getFileSelectionRows"; type: "QVariantList" }
        Method {
            name: "setFileSelectionIndexes"
            Parameter { name: "indexes"; type: "QVariantList" }
        }
        Method {
            name: "getSelectedFilePaths"
            type: "QStringList"
            Parameter { name: "onlyTaggedFiles"; type: "bool" }
        }
        Method { name: "getSelectedFilePaths"; type: "QStringList" }
        Method {
            name: "setCoverArtImageData"
            Parameter { name: "picture"; type: "QByteArray" }
        }
        Method {
            name: "selectFileName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
            Parameter { name: "dir"; type: "string" }
            Parameter { name: "filter"; type: "string" }
            Parameter { name: "saveFile"; type: "bool" }
        }
        Method {
            name: "selectFileName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
            Parameter { name: "dir"; type: "string" }
            Parameter { name: "filter"; type: "string" }
        }
        Method {
            name: "selectFileName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
            Parameter { name: "dir"; type: "string" }
        }
        Method {
            name: "selectFileName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
        }
        Method { name: "selectFileName"; type: "string" }
        Method {
            name: "selectDirName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
            Parameter { name: "dir"; type: "string" }
        }
        Method {
            name: "selectDirName"
            type: "string"
            Parameter { name: "caption"; type: "string" }
        }
        Method { name: "selectDirName"; type: "string" }
    }
    Component {
        name: "Kid3ApplicationTagContext"
        prototype: "QObject"
        exports: ["Kid3/Kid3ApplicationTagContext 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "genreModel"; type: "GenreModel"; isReadonly: true; isPointer: true }
        Property { name: "frameModel"; type: "FrameTableModel"; isReadonly: true; isPointer: true }
        Property {
            name: "frameSelectionModel"
            type: "QItemSelectionModel"
            isReadonly: true
            isPointer: true
        }
        Property { name: "frameList"; type: "FrameList"; isReadonly: true; isPointer: true }
        Method { name: "copyTags" }
        Method { name: "pasteTags" }
        Method { name: "copyToOtherTag" }
        Method { name: "removeTags" }
        Method { name: "getTagsFromFilename" }
        Method { name: "getFilenameFromTags" }
        Method { name: "editFrame" }
        Method { name: "deleteFrame" }
        Method { name: "addFrame" }
    }
    Component {
        name: "PlaylistConfig"
        prototype: "GeneralConfig"
        exports: ["Kid3/PlaylistConfig 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "PlaylistFormat"
            values: {
                "PF_M3U": 0,
                "PF_PLS": 1,
                "PF_XSPF": 2
            }
        }
        Enum {
            name: "PlaylistLocation"
            values: {
                "PL_CurrentDirectory": 0,
                "PL_EveryDirectory": 1,
                "PL_TopLevelDirectory": 2
            }
        }
        Property { name: "location"; type: "int" }
        Property { name: "format"; type: "int" }
        Property { name: "fileNameFormat"; type: "string" }
        Property { name: "sortTagField"; type: "string" }
        Property { name: "infoFormat"; type: "string" }
        Property { name: "useFileNameFormat"; type: "bool" }
        Property { name: "onlySelectedFiles"; type: "bool" }
        Property { name: "useSortTagField"; type: "bool" }
        Property { name: "useFullPath"; type: "bool" }
        Property { name: "writeInfo"; type: "bool" }
        Property { name: "windowGeometry"; type: "QByteArray" }
        Signal {
            name: "locationChanged"
            Parameter { name: "location"; type: "PlaylistConfig::PlaylistLocation" }
        }
        Signal {
            name: "formatChanged"
            Parameter { name: "format"; type: "PlaylistConfig::PlaylistFormat" }
        }
        Signal {
            name: "fileNameFormatChanged"
            Parameter { name: "fileNameFormat"; type: "string" }
        }
        Signal {
            name: "sortTagFieldChanged"
            Parameter { name: "sortTagField"; type: "string" }
        }
        Signal {
            name: "infoFormatChanged"
            Parameter { name: "infoFormat"; type: "string" }
        }
        Signal {
            name: "useFileNameFormatChanged"
            Parameter { name: "useFileNameFormat"; type: "bool" }
        }
        Signal {
            name: "onlySelectedFilesChanged"
            Parameter { name: "onlySelectedFiles"; type: "bool" }
        }
        Signal {
            name: "useSortTagFieldChanged"
            Parameter { name: "useSortTagField"; type: "bool" }
        }
        Signal {
            name: "useFullPathChanged"
            Parameter { name: "useFullPath"; type: "bool" }
        }
        Signal {
            name: "writeInfoChanged"
            Parameter { name: "writeInfo"; type: "bool" }
        }
        Signal {
            name: "windowGeometryChanged"
            Parameter { name: "windowGeometry"; type: "QByteArray" }
        }
    }
    Component {
        name: "QAbstractItemModel"
        prototype: "QObject"
        Enum {
            name: "LayoutChangeHint"
            values: {
                "NoLayoutChangeHint": 0,
                "VerticalSortHint": 1,
                "HorizontalSortHint": 2
            }
        }
        Enum {
            name: "CheckIndexOption"
            values: {
                "NoOption": 0,
                "IndexIsValid": 1,
                "DoNotUseParent": 2,
                "ParentIsInvalid": 4
            }
        }
        Signal {
            name: "dataChanged"
            Parameter { name: "topLeft"; type: "QModelIndex" }
            Parameter { name: "bottomRight"; type: "QModelIndex" }
            Parameter { name: "roles"; type: "QVector<int>" }
        }
        Signal {
            name: "dataChanged"
            Parameter { name: "topLeft"; type: "QModelIndex" }
            Parameter { name: "bottomRight"; type: "QModelIndex" }
        }
        Signal {
            name: "headerDataChanged"
            Parameter { name: "orientation"; type: "Qt::Orientation" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "layoutChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
            Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
        }
        Signal {
            name: "layoutChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
        }
        Signal { name: "layoutChanged" }
        Signal {
            name: "layoutAboutToBeChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
            Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
        }
        Signal {
            name: "layoutAboutToBeChanged"
            Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
        }
        Signal { name: "layoutAboutToBeChanged" }
        Signal {
            name: "rowsAboutToBeInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsAboutToBeRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "rowsRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsInserted"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal {
            name: "columnsRemoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "last"; type: "int" }
        }
        Signal { name: "modelAboutToBeReset" }
        Signal { name: "modelReset" }
        Signal {
            name: "rowsAboutToBeMoved"
            Parameter { name: "sourceParent"; type: "QModelIndex" }
            Parameter { name: "sourceStart"; type: "int" }
            Parameter { name: "sourceEnd"; type: "int" }
            Parameter { name: "destinationParent"; type: "QModelIndex" }
            Parameter { name: "destinationRow"; type: "int" }
        }
        Signal {
            name: "rowsMoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "start"; type: "int" }
            Parameter { name: "end"; type: "int" }
            Parameter { name: "destination"; type: "QModelIndex" }
            Parameter { name: "row"; type: "int" }
        }
        Signal {
            name: "columnsAboutToBeMoved"
            Parameter { name: "sourceParent"; type: "QModelIndex" }
            Parameter { name: "sourceStart"; type: "int" }
            Parameter { name: "sourceEnd"; type: "int" }
            Parameter { name: "destinationParent"; type: "QModelIndex" }
            Parameter { name: "destinationColumn"; type: "int" }
        }
        Signal {
            name: "columnsMoved"
            Parameter { name: "parent"; type: "QModelIndex" }
            Parameter { name: "start"; type: "int" }
            Parameter { name: "end"; type: "int" }
            Parameter { name: "destination"; type: "QModelIndex" }
            Parameter { name: "column"; type: "int" }
        }
        Method { name: "submit"; type: "bool" }
        Method { name: "revert" }
        Method {
            name: "hasIndex"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "hasIndex"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "index"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "index"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "parent"
            type: "QModelIndex"
            Parameter { name: "child"; type: "QModelIndex" }
        }
        Method {
            name: "sibling"
            type: "QModelIndex"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "column"; type: "int" }
            Parameter { name: "idx"; type: "QModelIndex" }
        }
        Method {
            name: "rowCount"
            type: "int"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "rowCount"; type: "int" }
        Method {
            name: "columnCount"
            type: "int"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "columnCount"; type: "int" }
        Method {
            name: "hasChildren"
            type: "bool"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method { name: "hasChildren"; type: "bool" }
        Method {
            name: "data"
            type: "QVariant"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "data"
            type: "QVariant"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "setData"
            type: "bool"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "setData"
            type: "bool"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "value"; type: "QVariant" }
        }
        Method {
            name: "headerData"
            type: "QVariant"
            Parameter { name: "section"; type: "int" }
            Parameter { name: "orientation"; type: "Qt::Orientation" }
            Parameter { name: "role"; type: "int" }
        }
        Method {
            name: "headerData"
            type: "QVariant"
            Parameter { name: "section"; type: "int" }
            Parameter { name: "orientation"; type: "Qt::Orientation" }
        }
        Method {
            name: "fetchMore"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "canFetchMore"
            type: "bool"
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "flags"
            type: "Qt::ItemFlags"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "hits"; type: "int" }
            Parameter { name: "flags"; type: "Qt::MatchFlags" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "hits"; type: "int" }
        }
        Method {
            name: "match"
            type: "QModelIndexList"
            Parameter { name: "start"; type: "QModelIndex" }
            Parameter { name: "role"; type: "int" }
            Parameter { name: "value"; type: "QVariant" }
        }
    }
    Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
    Component {
        name: "QAbstractProxyModel"
        prototype: "QAbstractItemModel"
        Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
        Method {
            name: "mapToSource"
            type: "QModelIndex"
            Parameter { name: "proxyIndex"; type: "QModelIndex" }
        }
        Method {
            name: "mapFromSource"
            type: "QModelIndex"
            Parameter { name: "sourceIndex"; type: "QModelIndex" }
        }
        Method {
            name: "mapSelectionToSource"
            type: "QItemSelection"
            Parameter { name: "selection"; type: "QItemSelection" }
        }
        Method {
            name: "mapSelectionFromSource"
            type: "QItemSelection"
            Parameter { name: "selection"; type: "QItemSelection" }
        }
    }
    Component { name: "QAbstractTableModel"; prototype: "QAbstractItemModel" }
    Component {
        name: "QItemSelectionModel"
        prototype: "QObject"
        exports: ["Kid3/QItemSelectionModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "SelectionFlags"
            values: {
                "NoUpdate": 0,
                "Clear": 1,
                "Select": 2,
                "Deselect": 4,
                "Toggle": 8,
                "Current": 16,
                "Rows": 32,
                "Columns": 64,
                "SelectCurrent": 18,
                "ToggleCurrent": 24,
                "ClearAndSelect": 3
            }
        }
        Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
        Property { name: "hasSelection"; type: "bool"; isReadonly: true }
        Property { name: "currentIndex"; type: "QModelIndex"; isReadonly: true }
        Property { name: "selection"; type: "QItemSelection"; isReadonly: true }
        Property { name: "selectedIndexes"; type: "QModelIndexList"; isReadonly: true }
        Signal {
            name: "selectionChanged"
            Parameter { name: "selected"; type: "QItemSelection" }
            Parameter { name: "deselected"; type: "QItemSelection" }
        }
        Signal {
            name: "currentChanged"
            Parameter { name: "current"; type: "QModelIndex" }
            Parameter { name: "previous"; type: "QModelIndex" }
        }
        Signal {
            name: "currentRowChanged"
            Parameter { name: "current"; type: "QModelIndex" }
            Parameter { name: "previous"; type: "QModelIndex" }
        }
        Signal {
            name: "currentColumnChanged"
            Parameter { name: "current"; type: "QModelIndex" }
            Parameter { name: "previous"; type: "QModelIndex" }
        }
        Signal {
            name: "modelChanged"
            Parameter { name: "model"; type: "QAbstractItemModel"; isPointer: true }
        }
        Method {
            name: "setCurrentIndex"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
        }
        Method {
            name: "select"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
        }
        Method {
            name: "select"
            Parameter { name: "selection"; type: "QItemSelection" }
            Parameter { name: "command"; type: "QItemSelectionModel::SelectionFlags" }
        }
        Method { name: "clear" }
        Method { name: "reset" }
        Method { name: "clearSelection" }
        Method { name: "clearCurrentIndex" }
        Method {
            name: "isSelected"
            type: "bool"
            Parameter { name: "index"; type: "QModelIndex" }
        }
        Method {
            name: "isRowSelected"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "isRowSelected"
            type: "bool"
            Parameter { name: "row"; type: "int" }
        }
        Method {
            name: "isColumnSelected"
            type: "bool"
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "isColumnSelected"
            type: "bool"
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "rowIntersectsSelection"
            type: "bool"
            Parameter { name: "row"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "rowIntersectsSelection"
            type: "bool"
            Parameter { name: "row"; type: "int" }
        }
        Method {
            name: "columnIntersectsSelection"
            type: "bool"
            Parameter { name: "column"; type: "int" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "columnIntersectsSelection"
            type: "bool"
            Parameter { name: "column"; type: "int" }
        }
        Method {
            name: "selectedRows"
            type: "QModelIndexList"
            Parameter { name: "column"; type: "int" }
        }
        Method { name: "selectedRows"; type: "QModelIndexList" }
        Method {
            name: "selectedColumns"
            type: "QModelIndexList"
            Parameter { name: "row"; type: "int" }
        }
        Method { name: "selectedColumns"; type: "QModelIndexList" }
    }
    Component {
        name: "QSortFilterProxyModel"
        prototype: "QAbstractProxyModel"
        exports: ["Kid3/DirProxyModel 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "filterRegExp"; type: "QRegExp" }
        Property { name: "filterRegularExpression"; type: "QRegularExpression" }
        Property { name: "filterKeyColumn"; type: "int" }
        Property { name: "dynamicSortFilter"; type: "bool" }
        Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
        Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
        Property { name: "isSortLocaleAware"; type: "bool" }
        Property { name: "sortRole"; type: "int" }
        Property { name: "filterRole"; type: "int" }
        Property { name: "recursiveFilteringEnabled"; type: "bool" }
        Signal {
            name: "dynamicSortFilterChanged"
            Parameter { name: "dynamicSortFilter"; type: "bool" }
        }
        Signal {
            name: "filterCaseSensitivityChanged"
            Parameter { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
        }
        Signal {
            name: "sortCaseSensitivityChanged"
            Parameter { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
        }
        Signal {
            name: "sortLocaleAwareChanged"
            Parameter { name: "sortLocaleAware"; type: "bool" }
        }
        Signal {
            name: "sortRoleChanged"
            Parameter { name: "sortRole"; type: "int" }
        }
        Signal {
            name: "filterRoleChanged"
            Parameter { name: "filterRole"; type: "int" }
        }
        Signal {
            name: "recursiveFilteringEnabledChanged"
            Parameter { name: "recursiveFilteringEnabled"; type: "bool" }
        }
        Method {
            name: "setFilterRegExp"
            Parameter { name: "pattern"; type: "string" }
        }
        Method {
            name: "setFilterRegExp"
            Parameter { name: "regExp"; type: "QRegExp" }
        }
        Method {
            name: "setFilterRegularExpression"
            Parameter { name: "pattern"; type: "string" }
        }
        Method {
            name: "setFilterRegularExpression"
            Parameter { name: "regularExpression"; type: "QRegularExpression" }
        }
        Method {
            name: "setFilterWildcard"
            Parameter { name: "pattern"; type: "string" }
        }
        Method {
            name: "setFilterFixedString"
            Parameter { name: "pattern"; type: "string" }
        }
        Method { name: "clear" }
        Method { name: "invalidate" }
    }
    Component { name: "QStringListModel"; prototype: "QAbstractListModel" }
    Component {
        name: "ScriptUtils"
        prototype: "QObject"
        exports: ["Kid3/ScriptUtils 1.0"]
        exportMetaObjectRevisions: [0]
        Method {
            name: "toStringList"
            type: "QStringList"
            Parameter { name: "urls"; type: "QList<QUrl>" }
        }
        Method {
            name: "toPersistentModelIndexList"
            type: "QList<QPersistentModelIndex>"
            Parameter { name: "lst"; type: "QVariantList" }
        }
        Method {
            name: "toTagVersion"
            type: "Frame::TagVersion"
            Parameter { name: "nr"; type: "int" }
        }
        Method {
            name: "toTagNumber"
            type: "Frame::TagNumber"
            Parameter { name: "nr"; type: "int" }
        }
        Method {
            name: "getRoleData"
            type: "QVariant"
            Parameter { name: "modelObj"; type: "QObject"; isPointer: true }
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "getRoleData"
            type: "QVariant"
            Parameter { name: "modelObj"; type: "QObject"; isPointer: true }
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
        }
        Method {
            name: "setRoleData"
            type: "bool"
            Parameter { name: "modelObj"; type: "QObject"; isPointer: true }
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
            Parameter { name: "value"; type: "QVariant" }
            Parameter { name: "parent"; type: "QModelIndex" }
        }
        Method {
            name: "setRoleData"
            type: "bool"
            Parameter { name: "modelObj"; type: "QObject"; isPointer: true }
            Parameter { name: "row"; type: "int" }
            Parameter { name: "roleName"; type: "QByteArray" }
            Parameter { name: "value"; type: "QVariant" }
        }
        Method {
            name: "getIndexRoleData"
            type: "QVariant"
            Parameter { name: "index"; type: "QModelIndex" }
            Parameter { name: "roleName"; type: "QByteArray" }
        }
        Method {
            name: "properties"
            type: "string"
            Parameter { name: "obj"; type: "QObject"; isPointer: true }
        }
        Method { name: "getFieldIdNames"; type: "QStringList" }
        Method { name: "getTextEncodingNames"; type: "QStringList" }
        Method { name: "getTimestampFormatNames"; type: "QStringList" }
        Method { name: "getPictureTypeNames"; type: "QStringList" }
        Method { name: "getContentTypeNames"; type: "QStringList" }
        Method {
            name: "writeFile"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "readFile"
            type: "QByteArray"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "removeFile"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "fileExists"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "fileIsWritable"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "getFilePermissions"
            type: "int"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "setFilePermissions"
            type: "bool"
            Parameter { name: "filePath"; type: "string" }
            Parameter { name: "modeBits"; type: "int" }
        }
        Method {
            name: "classifyFile"
            type: "string"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "renameFile"
            type: "bool"
            Parameter { name: "oldName"; type: "string" }
            Parameter { name: "newName"; type: "string" }
        }
        Method {
            name: "copyFile"
            type: "bool"
            Parameter { name: "source"; type: "string" }
            Parameter { name: "dest"; type: "string" }
        }
        Method {
            name: "makeDir"
            type: "bool"
            Parameter { name: "path"; type: "string" }
        }
        Method {
            name: "removeDir"
            type: "bool"
            Parameter { name: "path"; type: "string" }
        }
        Method { name: "tempPath"; type: "string" }
        Method { name: "musicPath"; type: "string" }
        Method { name: "mountedVolumes"; type: "QVariantList" }
        Method {
            name: "listDir"
            type: "QStringList"
            Parameter { name: "path"; type: "string" }
            Parameter { name: "nameFilters"; type: "QStringList" }
            Parameter { name: "classify"; type: "bool" }
        }
        Method {
            name: "listDir"
            type: "QStringList"
            Parameter { name: "path"; type: "string" }
            Parameter { name: "nameFilters"; type: "QStringList" }
        }
        Method {
            name: "listDir"
            type: "QStringList"
            Parameter { name: "path"; type: "string" }
        }
        Method {
            name: "system"
            type: "QVariantList"
            Parameter { name: "program"; type: "string" }
            Parameter { name: "args"; type: "QStringList" }
            Parameter { name: "msecs"; type: "int" }
        }
        Method {
            name: "system"
            type: "QVariantList"
            Parameter { name: "program"; type: "string" }
            Parameter { name: "args"; type: "QStringList" }
        }
        Method {
            name: "system"
            type: "QVariantList"
            Parameter { name: "program"; type: "string" }
        }
        Method {
            name: "systemAsync"
            Parameter { name: "program"; type: "string" }
            Parameter { name: "args"; type: "QStringList" }
            Parameter { name: "callback"; type: "QJSValue" }
        }
        Method {
            name: "systemAsync"
            Parameter { name: "program"; type: "string" }
            Parameter { name: "args"; type: "QStringList" }
        }
        Method {
            name: "systemAsync"
            Parameter { name: "program"; type: "string" }
        }
        Method {
            name: "getEnv"
            type: "QByteArray"
            Parameter { name: "varName"; type: "QByteArray" }
        }
        Method {
            name: "setEnv"
            type: "bool"
            Parameter { name: "varName"; type: "QByteArray" }
            Parameter { name: "value"; type: "QByteArray" }
        }
        Method { name: "getKid3Version"; type: "string" }
        Method { name: "getKid3ReleaseYear"; type: "string" }
        Method { name: "getQtVersion"; type: "string" }
        Method {
            name: "getDataMd5"
            type: "string"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "getDataSize"
            type: "int"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "dataToImage"
            type: "QVariant"
            Parameter { name: "data"; type: "QByteArray" }
            Parameter { name: "format"; type: "QByteArray" }
        }
        Method {
            name: "dataToImage"
            type: "QVariant"
            Parameter { name: "data"; type: "QByteArray" }
        }
        Method {
            name: "dataFromImage"
            type: "QByteArray"
            Parameter { name: "var"; type: "QVariant" }
            Parameter { name: "format"; type: "QByteArray" }
        }
        Method {
            name: "dataFromImage"
            type: "QByteArray"
            Parameter { name: "var"; type: "QVariant" }
        }
        Method {
            name: "loadImage"
            type: "QVariant"
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "saveImage"
            type: "bool"
            Parameter { name: "var"; type: "QVariant" }
            Parameter { name: "filePath"; type: "string" }
            Parameter { name: "format"; type: "QByteArray" }
        }
        Method {
            name: "saveImage"
            type: "bool"
            Parameter { name: "var"; type: "QVariant" }
            Parameter { name: "filePath"; type: "string" }
        }
        Method {
            name: "imageProperties"
            type: "QVariantMap"
            Parameter { name: "var"; type: "QVariant" }
        }
        Method {
            name: "scaleImage"
            type: "QVariant"
            Parameter { name: "var"; type: "QVariant" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
        Method {
            name: "scaleImage"
            type: "QVariant"
            Parameter { name: "var"; type: "QVariant" }
            Parameter { name: "width"; type: "int" }
        }
    }
    Component {
        name: "TagConfig"
        prototype: "GeneralConfig"
        exports: ["Kid3/TagConfig 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Id3v2Version"
            values: {
                "ID3v2_3_0": 0,
                "ID3v2_4_0": 1
            }
        }
        Enum {
            name: "TextEncoding"
            values: {
                "TE_ISO8859_1": 0,
                "TE_UTF16": 1,
                "TE_UTF8": 2
            }
        }
        Enum {
            name: "VorbisPictureName"
            values: {
                "VP_METADATA_BLOCK_PICTURE": 0,
                "VP_COVERART": 1
            }
        }
        Property { name: "taggedFileFeatures"; type: "int" }
        Property { name: "markTruncations"; type: "bool" }
        Property { name: "markOversizedPictures"; type: "bool" }
        Property { name: "maximumPictureSize"; type: "int" }
        Property { name: "markStandardViolations"; type: "bool" }
        Property { name: "enableTotalNumberOfTracks"; type: "bool" }
        Property { name: "genreNotNumeric"; type: "bool" }
        Property { name: "lowercaseId3RiffChunk"; type: "bool" }
        Property { name: "commentName"; type: "string" }
        Property { name: "pictureNameIndex"; type: "int" }
        Property { name: "riffTrackName"; type: "string" }
        Property { name: "customGenres"; type: "QStringList" }
        Property { name: "id3v2Version"; type: "int" }
        Property { name: "textEncodingV1"; type: "string" }
        Property { name: "textEncodingV1Index"; type: "int" }
        Property { name: "textEncoding"; type: "int" }
        Property { name: "quickAccessFrames"; type: "qulonglong" }
        Property { name: "quickAccessFrameOrder"; type: "QList<int>" }
        Property { name: "trackNumberDigits"; type: "int" }
        Property { name: "onlyCustomGenres"; type: "bool" }
        Property { name: "pluginOrder"; type: "QStringList" }
        Property { name: "disabledPlugins"; type: "QStringList" }
        Property { name: "availablePlugins"; type: "QStringList" }
        Property { name: "starRatingMappingStrings"; type: "QStringList" }
        Property { name: "defaultPopmEmail"; type: "string"; isReadonly: true }
        Signal {
            name: "taggedFileFeaturesChanged"
            Parameter { name: "taggedFileFeatures"; type: "int" }
        }
        Signal {
            name: "markTruncationsChanged"
            Parameter { name: "markTruncations"; type: "bool" }
        }
        Signal {
            name: "maximumPictureSizeChanged"
            Parameter { name: "maximumPictureSize"; type: "int" }
        }
        Signal {
            name: "markOversizedPicturesChanged"
            Parameter { name: "markOversizedPictures"; type: "bool" }
        }
        Signal {
            name: "markStandardViolationsChanged"
            Parameter { name: "markStandardViolations"; type: "bool" }
        }
        Signal {
            name: "enableTotalNumberOfTracksChanged"
            Parameter { name: "enableTotalNumberOfTracks"; type: "bool" }
        }
        Signal {
            name: "genreNotNumericChanged"
            Parameter { name: "genreNotNumeric"; type: "bool" }
        }
        Signal {
            name: "lowercaseId3RiffChunkChanged"
            Parameter { name: "lowercaseId3RiffChunk"; type: "bool" }
        }
        Signal {
            name: "commentNameChanged"
            Parameter { name: "commentName"; type: "string" }
        }
        Signal {
            name: "pictureNameIndexChanged"
            Parameter { name: "pictureNameIndex"; type: "int" }
        }
        Signal {
            name: "riffTrackNameChanged"
            Parameter { name: "riffTrackName"; type: "string" }
        }
        Signal {
            name: "customGenresChanged"
            Parameter { name: "customGenres"; type: "QStringList" }
        }
        Signal {
            name: "id3v2VersionChanged"
            Parameter { name: "id3v2Version"; type: "int" }
        }
        Signal {
            name: "textEncodingV1Changed"
            Parameter { name: "textEncodingV1"; type: "string" }
        }
        Signal {
            name: "textEncodingChanged"
            Parameter { name: "textEncoding"; type: "int" }
        }
        Signal {
            name: "quickAccessFramesChanged"
            Parameter { name: "quickAccessFrames"; type: "qulonglong" }
        }
        Signal {
            name: "quickAccessFrameOrderChanged"
            Parameter { name: "frameTypes"; type: "QList<int>" }
        }
        Signal {
            name: "trackNumberDigitsChanged"
            Parameter { name: "trackNumberDigits"; type: "int" }
        }
        Signal {
            name: "onlyCustomGenresChanged"
            Parameter { name: "onlyCustomGenres"; type: "bool" }
        }
        Signal {
            name: "pluginOrderChanged"
            Parameter { name: "pluginOrder"; type: "QStringList" }
        }
        Signal {
            name: "disabledPluginsChanged"
            Parameter { name: "disabledPlugins"; type: "QStringList" }
        }
        Signal {
            name: "availablePluginsChanged"
            Parameter { name: "availablePlugins"; type: "QStringList" }
        }
        Signal { name: "starRatingMappingsChanged" }
        Method {
            name: "starCountFromRating"
            type: "int"
            Parameter { name: "rating"; type: "int" }
            Parameter { name: "type"; type: "string" }
        }
        Method {
            name: "starCountToRating"
            type: "int"
            Parameter { name: "starCount"; type: "int" }
            Parameter { name: "type"; type: "string" }
        }
        Method { name: "getTextEncodingNames"; type: "QStringList" }
        Method { name: "getId3v2VersionNames"; type: "QStringList" }
        Method { name: "getCommentNames"; type: "QStringList" }
        Method { name: "getPictureNames"; type: "QStringList" }
        Method { name: "getRiffTrackNames"; type: "QStringList" }
    }
    Component {
        name: "TaggedFileSelection"
        prototype: "QObject"
        exports: ["Kid3/TaggedFileSelection 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "empty"; type: "bool"; isReadonly: true }
        Property { name: "singleFileSelected"; type: "bool"; isReadonly: true }
        Property { name: "fileNameChanged"; type: "bool"; isReadonly: true }
        Property { name: "fileName"; type: "string" }
        Property { name: "filePath"; type: "string"; isReadonly: true }
        Property { name: "detailInfo"; type: "string"; isReadonly: true }
        Property { name: "tagFormatV1"; type: "string"; isReadonly: true }
        Property { name: "tagFormatV2"; type: "string"; isReadonly: true }
        Property { name: "picture"; type: "QByteArray"; isReadonly: true }
        Signal {
            name: "emptyChanged"
            Parameter { name: "empty"; type: "bool" }
        }
        Signal {
            name: "singleFileSelectedChanged"
            Parameter { name: "single"; type: "bool" }
        }
        Signal { name: "singleFileChanged" }
        Signal { name: "fileNameModified" }
        Method {
            name: "tag"
            type: "TaggedFileSelectionTagContext*"
            Parameter { name: "tagNr"; type: "Frame::TagNumber" }
        }
        Method {
            name: "formatString"
            type: "string"
            Parameter { name: "tagVersion"; type: "Frame::TagVersion" }
            Parameter { name: "fmt"; type: "string" }
        }
    }
    Component {
        name: "TaggedFileSelectionTagContext"
        prototype: "QObject"
        exports: ["Kid3/TaggedFileSelectionTagContext 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "hasTag"; type: "bool"; isReadonly: true }
        Property { name: "tagUsed"; type: "bool"; isReadonly: true }
        Property { name: "tagFormat"; type: "string"; isReadonly: true }
        Signal {
            name: "hasTagChanged"
            Parameter { name: "hasTag"; type: "bool" }
        }
        Signal {
            name: "tagUsedChanged"
            Parameter { name: "used"; type: "bool" }
        }
    }
}
