File indexing completed on 2023-05-30 11:30:44
0001 /** 0002 * Copyright (C) 2004 Michael Pyne <mpyne@kde.org> 0003 * 0004 * This program is free software; you can redistribute it and/or modify it under 0005 * the terms of the GNU General Public License as published by the Free Software 0006 * Foundation; either version 2 of the License, or (at your option) any later 0007 * version. 0008 * 0009 * This program is distributed in the hope that it will be useful, but WITHOUT ANY 0010 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 0011 * PARTICULAR PURPOSE. See the GNU General Public License for more details. 0012 * 0013 * You should have received a copy of the GNU General Public License along with 0014 * this program. If not, see <http://www.gnu.org/licenses/>. 0015 */ 0016 0017 #include "categoryreaderinterface.h" 0018 #include "filerenameroptions.h" 0019 0020 #include <QString> 0021 0022 QString CategoryReaderInterface::value(const CategoryID &category) const 0023 { 0024 QString value = categoryValue(category.category).trimmed(); 0025 0026 if(category.category == Track) 0027 value = fixupTrack(value, category.categoryNumber).trimmed(); 0028 0029 if(value.isEmpty()) { 0030 switch(emptyAction(category)) { 0031 case TagRenamerOptions::UseReplacementValue: 0032 value = emptyText(category); 0033 break; 0034 0035 case TagRenamerOptions::IgnoreEmptyTag: 0036 return QString(); 0037 0038 default: 0039 // No extra action needed. 0040 break; 0041 } 0042 } 0043 0044 return prefix(category) + value + suffix(category); 0045 } 0046 0047 bool CategoryReaderInterface::isRequired(const CategoryID &category) const 0048 { 0049 return emptyAction(category) != TagRenamerOptions::IgnoreEmptyTag; 0050 } 0051 0052 bool CategoryReaderInterface::isEmpty(TagType category) const 0053 { 0054 return categoryValue(category).isEmpty(); 0055 } 0056 0057 QString CategoryReaderInterface::fixupTrack(const QString &track, int categoryNum) const 0058 { 0059 QString str(track); 0060 CategoryID trackId(Track, categoryNum); 0061 0062 if(track == "0") { 0063 if(emptyAction(trackId) == TagRenamerOptions::UseReplacementValue) 0064 str = emptyText(trackId); 0065 else 0066 return QString(); 0067 } 0068 0069 int minimumWidth = trackWidth(categoryNum); 0070 0071 if(str.length() < minimumWidth) { 0072 QString prefix; 0073 prefix.fill('0', minimumWidth - str.length()); 0074 return prefix + str; 0075 } 0076 0077 return str; 0078 } 0079 0080 // vim: set et sw=4 tw=0 sta: