Commit 24cf7e30 authored by Urs Fleisch's avatar Urs Fleisch

This commit was manufactured by cvs2svn to create tag 'Rel_0_2'.

parent a38c70e4
Sat Apr 26 08:38:14 CEST 2003 Urs Fleisch <ufleisch@users.sourceforge.net>
* Release 0.2
* Use QScrollView for control widgets at the right side and
separate them from the filelist by a QSplitter, so that the window
can be resized to a small size.
* Show busy cursor while reading and writing files.
Thu Jan 16 19:41:21 CET 2003 Urs Fleisch <ufleisch@users.sourceforge.net>
* Started ChangeLog.
......@@ -15,14 +15,18 @@ endif
# Output directories
OBJECTS_DIR = .obj
UIC_DIR = .ui
MOC_DIR = .moc
# Compiler, tools and options
CC = gcc
CXX = g++
CFLAGS = -pipe -Wall -W -O2 -mcpu=i486 -march=i486 -DNO_DEBUG -DQT_NO_DEBUG
CFLAGS += -I$(KDEDIR)/include -I$(QTDIR)/include -I$(UIC_DIR) -I$(MOC_DIR) -I.
CFLAGS = -pipe -Wall -W -mcpu=i486 -march=i486
ifdef CONFIG_DEBUG
CFLAGS += -O -g
else
CFLAGS += -O2 -DNO_DEBUG -DQT_NO_DEBUG
endif
CFLAGS += -I$(KDEDIR)/include -I$(QTDIR)/include -I$(MOC_DIR) -I.
CXXFLAGS = $(CFLAGS)
LINK = g++
LFLAGS = -Wl,-rpath,$(QTDIR)/lib -L$(QTDIR)/lib -lqt-mt -lid3
......@@ -36,7 +40,6 @@ endif
AR = ar cqs
RANLIB =
MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic
TAR = tar -cf
GZIP = gzip -9f
COPY = cp -f
......@@ -57,19 +60,15 @@ ADDOBJDIR = $(PERL) -ne "s/(\w+\.o)/$(OBJECTS_DIR)\/\1/; print"
FINISH_HTML = $(PERL) -ne "s/ufleisch@/ufleisch at /g; s/common\/fdl-license.html/http:\/\/www.gnu.org\/licenses\/licenses.html\#FDL/g; s/common\/gpl-license.html/http:\/\/www.gnu.org\/licenses\/licenses.html\#GPL/g; s/common\/fdl-translated.html/http:\/\/www.gnu.org\/licenses\/licenses.html\#FDL/g; s/common\/gpl-translated.html/http:\/\/www.gnu.org\/licenses\/licenses.html\#GPL/g; s/<div class=\"toc\">.+?<\/div><div class=\"sect1\">/<div class=\"sect1\">/g; print"
# Files
HEADERS = filelist.h framelist.h genres.h kid3_1.h kid3_2.h mp3file.h \
standardtags.h id3form.ui.h
standardtags.h id3form.h
SOURCES = filelist.cpp framelist.cpp genres.cpp kid3.cpp main.cpp \
mp3file.cpp standardtags.cpp
FORMS = id3form.ui
UICDECLS = $(UIC_DIR)/id3form.h
UICIMPLS = $(UIC_DIR)/id3form.cpp
OBJECTS = $(SOURCES:%.cpp=$(OBJECTS_DIR)/%.o) \
$(UICIMPLS:$(UIC_DIR)/%.cpp=$(OBJECTS_DIR)/%.o)
mp3file.cpp standardtags.cpp id3form.cpp
OBJECTS = $(SOURCES:%.cpp=$(OBJECTS_DIR)/%.o)
SRCMOC = $(MOC_DIR)/moc_framelist.cpp $(MOC_DIR)/moc_kid3.cpp \
$(MOC_DIR)/moc_id3form.cpp
OBJMOC = $(SRCMOC:$(MOC_DIR)/%.cpp=$(OBJECTS_DIR)/%.o)
DIST = AUTHORS COPYING INSTALL LICENSE README ChangeLog \
Makefile config.mk kid3.mak kid3.pro kid3.spec \
Makefile config.mk kid3.mak kid3.spec \
hi16-app-kid3.png hi32-app-kid3.png hi48-app-kid3.png \
kid3.desktop kid3ui.rc
DISTNAME = kid3-$(CONFIG_VERSION:"%"=%)
......@@ -79,24 +78,12 @@ TARGET = kid3
$(OBJECTS_DIR)/%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
$(OBJECTS_DIR)/%.o: $(UIC_DIR)/%.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
$(OBJECTS_DIR)/%.o: $(MOC_DIR)/%.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
$(UIC_DIR)/%.h: %.ui
$(UIC) $< -o $@
$(UIC_DIR)/%.cpp: %.ui
$(UIC) $< -tr i18n -i $(@:.cpp=.h) -o $@
$(MOC_DIR)/moc_%.cpp: %.h
$(MOC) $< -o $@
$(MOC_DIR)/moc_%.cpp: $(UIC_DIR)/%.h
$(MOC) $< -o $@
# Build rules
all: autoconf.h .depend $(TARGET) docs i18n
......@@ -117,16 +104,13 @@ mocclean:
-$(DEL_FILE) $(OBJMOC)
-$(DEL_FILE) $(SRCMOC)
uiclean:
-$(DEL_FILE) $(UICIMPLS) $(UICDECLS)
clean: mocclean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core
-$(DEL_FILE) kid3.h
-$(DEL_FILE) autoconf.h
distclean: clean uiclean
distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) TAGS
-$(DEL_FILE) .depend
......@@ -153,16 +137,17 @@ else
i18n: kid3_de.qm
endif
po/de/kid3.po: $(SOURCES) $(UICIMPLS)
xgettext -j -C -ki18n -kI18N_NOOP -ktr2i18n -ktranslate -x$(KDEDIR)/include/kde.pot -o$@ $(SOURCES) $(UICIMPLS)
po/de/kid3.po: $(SOURCES)
xgettext --omit-header -C -ki18n -kI18N_NOOP -ktr2i18n -ktranslate -x/opt/kde3/include/kde.pot -otmp.po $(SOURCES)
msgmerge -U $@ tmp.po
$(DEL_FILE) tmp.po
po/de/kid3.mo: po/de/kid3.po
msgfmt -o $@ $<
# Translation for Qt (non-KDE) application
kid3_de.qm: po/de/kid3.po po/de/kid3qt.po
$(PERL) -ne "s/ä//g; s/ö//g; s/ü//g; s/Ä//g; s/Ö//g; s/Ü//g; print" po/de/kid3.po >tmp.po; \
cat po/de/kid3qt.po >>tmp.po; \
cat po/de/kid3.po po/de/kid3qt.po >tmp.po; \
$(QTDIR)/bin/msg2qm tmp.po kid3_de.qm; \
$(DEL_FILE) tmp.po
......@@ -255,41 +240,36 @@ qtuninstall:
-$(DEL_DIR) $(DESTDIR)
# Tags
TAGS: $(UICDECLS) $(UICIMPLS) autoconf.h
ctags -e $(HEADERS) autoconf.h $(SOURCES) $(UICIMPLS) $(UICDECLS)
TAGS: autoconf.h
ctags -e $(HEADERS) autoconf.h $(SOURCES)
# Distribution
# As uic, .html and .qm files cannot be generated from Windows,
# As .html and .qm files cannot be generated from Windows,
# they are included in the distribution.
dist: $(UICIMPLS) $(UICDECLS) kid3_en.html kid3_de.html kid3_de.qm
dist: kid3_en.html kid3_de.html kid3_de.qm
mkdir $(DISTNAME) $(DISTNAME)/$(MOC_DIR)
mkdir $(DISTNAME)/$(OBJECTS_DIR) $(DISTNAME)/$(UIC_DIR)
mkdir $(DISTNAME)/$(OBJECTS_DIR)
mkdir $(DISTNAME)/doc $(DISTNAME)/doc/en $(DISTNAME)/doc/de
mkdir $(DISTNAME)/po $(DISTNAME)/po/de
cp $(DIST) $(SOURCES) $(HEADERS) $(FORMS) $(DISTNAME)/
cp doc/en/index.docbook $(DISTNAME)/doc/en/
cp doc/de/index.docbook $(DISTNAME)/doc/de/
cp po/de/kid3.po po/de/kid3qt.po $(DISTNAME)/po/de/
for i in $(UICIMPLS) $(UICDECLS); do cp $$i $(DISTNAME)/$$i; done
cp kid3_en.html kid3_de.html $(DISTNAME)/
cp kid3_de.qm $(DISTNAME)/
tar czf $(DISTNAME).tgz $(DISTNAME)/
rm -rf $(DISTNAME)/
# Dependencies which are needed before automatic generation of dependencies
$(UIC_DIR)/id3form.h: id3form.ui
$(UIC_DIR)/id3form.cpp: id3form.ui $(UIC_DIR)/id3form.h
$(MOC_DIR)/moc_framelist.cpp: framelist.h
$(MOC_DIR)/moc_kid3.cpp: kid3.h autoconf.h config.mk
$(MOC_DIR)/moc_id3form.cpp: $(UIC_DIR)/id3form.h
$(MOC_DIR)/moc_id3form.cpp: id3form.h
# Automatic genertion of dependencies
depend .depend dep: $(UICIMPLS) $(SRCMOC)
$(CC) $(CFLAGS) -MM -MG $(SOURCES) $(UICIMPLS) $(SRCMOC) | $(ADDOBJDIR) > .depend
# Automatic generation of dependencies
depend .depend dep: $(SRCMOC)
$(CC) $(CFLAGS) -MM -MG $(SOURCES) $(SRCMOC) | $(ADDOBJDIR) > .depend
ifeq (.depend,$(wildcard .depend))
include .depend
......
CONFIG_USE_KDE=1
CONFIG_VERSION="0.1"
CONFIG_VERSION="0.2"
#CONFIG_DEBUG=1
......@@ -25,8 +25,8 @@
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>12/01/2003</date>
<releaseinfo>0.1</releaseinfo>
<date>23/04/2003</date>
<releaseinfo>0.2</releaseinfo>
<abstract>
<para>
......@@ -510,6 +510,10 @@ SuSE Linux 7.3: id3lib 3.8.0pre1, id3lib 3.8.0, id3lib 3.8.2, KDE 2.2.2,
KDE 3.0.4, Qt 2.3.2, Qt 3.0.5
</para>
<para>
SuSE Linux 8.1: id3lib 3.8.0, KDE 3.0.5, KDE 3.1.1, Qt 2.3.2, Qt
3.0.5, Qt 3.1.2
</para>
<para>
Windows NT 4.0: id3lib 3.8.0, id3lib 3.8.2, non-commercial Qt version 2.3.0.
</para>
......
......@@ -25,8 +25,8 @@
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>05/01/2003</date>
<releaseinfo>0.1</releaseinfo>
<date>23/04/2003</date>
<releaseinfo>0.2</releaseinfo>
<abstract>
<para>
......@@ -489,6 +489,10 @@ SuSE Linux 7.3: id3lib 3.8.0pre1, id3lib 3.8.0, id3lib 3.8.2, KDE 2.2.2,
KDE 3.0.4, Qt 2.3.2, Qt 3.0.5
</para>
<para>
SuSE Linux 8.1: id3lib 3.8.0, KDE 3.0.5, KDE 3.1.1, Qt 2.3.2, Qt
3.0.5, Qt 3.1.2
</para>
<para>
Windows NT 4.0: id3lib 3.8.0, id3lib 3.8.2, non-commercial Qt version 2.3.0.
</para>
......
......@@ -10,7 +10,6 @@
#include <qfileinfo.h>
#include <qdir.h>
#include <qstringlist.h>
#include <qlistbox.h>
#include "mp3file.h"
#include "filelist.h"
......@@ -18,6 +17,15 @@
/** Default name filter */
const QString FileList::defaultNameFilter("*.mp3 *.MP3");
/**
* Returns the recommended size for the widget.
* @return recommended size.
*/
QSize FileList::sizeHint() const
{
return QSize(fontMetrics().maxWidth() * 25, QListBox::sizeHint().height());
}
/**
* Get the first item in the filelist.
*
......@@ -26,7 +34,7 @@ const QString FileList::defaultNameFilter("*.mp3 *.MP3");
Mp3File *FileList::first()
{
current_item = dynamic_cast<Mp3File *>(listbox->firstItem());
current_item = dynamic_cast<Mp3File *>(firstItem());
return current_item;
}
......@@ -53,7 +61,7 @@ bool FileList::readDir(const QString& name)
{
QFileInfo file(name);
if(file.isDir()) {
listbox->clear();
clear();
dirname = name;
QDir dir(file.filePath());
QStringList dirContents=dir.entryList(namefilter);
......@@ -63,7 +71,7 @@ bool FileList::readDir(const QString& name)
dirname + QDir::separator() + *it).isDir()) {
Mp3File *mp3file = new Mp3File(dirname, *it);
if (mp3file) {
listbox->insertItem(mp3file);
insertItem(mp3file);
}
}
}
......@@ -89,7 +97,7 @@ bool FileList::updateModificationState(void)
}
mp3file = next();
}
listbox->triggerUpdate(TRUE);
triggerUpdate(TRUE);
return modified;
}
......
......@@ -11,20 +11,26 @@
#define FILELIST_H
#include <qstring.h>
#include <qlistbox.h>
#include <qsize.h>
#include "mp3file.h"
class QListBox;
/**
* List of files to operate on.
*/
class FileList
class FileList : public QListBox
{
public:
/**
* Constructor.
*/
FileList() : namefilter(defaultNameFilter) {}
FileList(QWidget *parent = 0, const char *name = 0, WFlags f = 0) :
QListBox(parent, name, f), namefilter(defaultNameFilter) {}
/**
* Returns the recommended size for the widget.
* @return recommended size.
*/
virtual QSize sizeHint() const;
/**
* Get the first item in the filelist.
*
......@@ -49,12 +55,6 @@ class FileList
* @return name filter.
*/
const QString& getNameFilter(void) const { return namefilter; }
/**
* Set the listbox to be used for the filelist.
*
* @param lb listbox
*/
void setListBox(QListBox *lb) { listbox = lb; }
/**
* Fill the filelist with the files found in a directory.
*
......@@ -89,8 +89,6 @@ class FileList
QString namefilter;
/** path of directory */
QString dirname;
/** listbox to be used to hold file names */
QListBox *listbox;
/** current file */
Mp3File *current_item;
};
......
/**
* \file id3form.ui.h
* Functions used by id3form.cpp.
* \file id3form.cpp
* GUI for kid3, originally generated by QT Designer.
*
* \b Project: Kid3
* \author Urs Fleisch
* \date 9 Jan 2003
* \date 8 Apr 2003
*/
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename slots use Qt Designer which will
** update this file, preserving your code. Create an init() slot in place of
** a constructor, and a destroy() slot in place of a destructor.
*****************************************************************************/
//#include <qvariant.h>
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qdragobject.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qlistbox.h>
#include <qpushbutton.h>
#include <qspinbox.h>
#include <qlayout.h>
#include <qtooltip.h>
//#include <qwhatsthis.h>
#include <qvbox.h>
#include <qsplitter.h>
#include "autoconf.h"
#ifdef CONFIG_USE_KDE
#include <klocale.h> /* tr2i18n() */
#include <klocale.h>
#else
// to be replaced in id3form.cpp
#define i18n(s) tr(s)
#endif
#if QT_VERSION < 300
// to be replaced in id3form.cpp
#define QSizePolicy(a,b,c,d,e) QSizePolicy(a,b)
#endif
#define theApp ((Kid3App *)parentWidget())
#include "filelist.h"
#include "genres.h"
#include "kid3.h"
#include "id3form.h"
/**
* A QScrollView which returns the sizeHint of its child.
* This is necessary to get a reasonable default size of the window.
*/
class Kid3ScrollView: public QScrollView {
public:
Kid3ScrollView(QWidget *parent = 0, const char *name = 0, WFlags f = 0);
Kid3ScrollView(QWidget *parent, QWidget *_client);
virtual QSize sizeHint() const;
virtual void addChild(QWidget *child, int x = 0, int y = 0);
private:
QWidget *client;
};
/**
* Constructor.
*
* @param parent parent widget
* @see QScrollView
*/
Kid3ScrollView::Kid3ScrollView(QWidget *parent, const char *name, WFlags f)
: QScrollView(parent, name, f), client(0) {}
/**
* Returns the recommended size for the widget by using the sizeHint of
* the child.
*
* @return recommended size.
*/
QSize Kid3ScrollView::sizeHint() const
{
return client ? client->sizeHint() : QScrollView::sizeHint();
}
/**
* Add a single widget to the ScrollView.
* The widget's parent should be the ScrollView's viewport.
*
* @param child child widget
*/
void Kid3ScrollView::addChild(QWidget *child, int x, int y)
{
client = child;
QScrollView::addChild(child, x, y);
}
/*
* Constructs a id3Form as a child of 'parent', with the
* name 'name' and widget flags set to 'f'.
*/
id3Form::id3Form(QWidget* parent, const char* name)
: QSplitter(parent, name)
{
setAcceptDrops(TRUE);
setCaption(i18n("Kid3"));
mp3ListBox = new FileList(this, "mp3ListBox");
mp3ListBox->setSelectionMode(QListBox::Extended);
scrollView = new Kid3ScrollView(this);
scrollView->setResizePolicy(QScrollView::AutoOneFit);
scrollView->setFrameStyle(QFrame::NoFrame);
rightHalfVBox = new QVBox(scrollView->viewport());
rightHalfVBox->setSpacing(2);
rightHalfVBox->setMargin(2);
filenameGroupBox = new QGroupBox(rightHalfVBox, "filenameGroupBox");
filenameGroupBox->setTitle(i18n("Filename"));
filenameGroupBoxLayout = new QGridLayout(filenameGroupBox, 2, 3, 11, 6);
nameLabel = new QLabel(filenameGroupBox, "nameLabel");
nameLabel->setText(i18n("Name:"));
filenameGroupBoxLayout->addWidget(nameLabel, 0, 0);
nameLineEdit = new QLineEdit(filenameGroupBox, "nameLineEdit");
filenameGroupBoxLayout->addWidget(nameLineEdit, 0, 1);
fnV1Button = new QPushButton(filenameGroupBox, "fnV1Button");
fnV1Button->setText(i18n("From ID3v1"));
filenameGroupBoxLayout->addWidget(fnV1Button, 0, 2);
formatLabel = new QLabel(filenameGroupBox, "formatLabel");
formatLabel->setText(i18n("Format:"));
filenameGroupBoxLayout->addWidget(formatLabel, 1, 0);
formatComboBox = new QComboBox(FALSE, filenameGroupBox, "formatComboBox");
filenameGroupBoxLayout->addWidget(formatComboBox, 1, 1);
fnV2Button = new QPushButton(filenameGroupBox, "fnV2Button");
fnV2Button->setText(i18n("From ID3v2"));
filenameGroupBoxLayout->addWidget(fnV2Button, 1, 2);
idV1GroupBox = new QGroupBox(rightHalfVBox, "idV1GroupBox");
idV1GroupBox->setTitle(i18n("ID3v1.1"));
idV1GroupBoxLayout = new QGridLayout(idV1GroupBox, 6, 3, 11, 6);
titleV1CheckBox = new QCheckBox(idV1GroupBox, "titleV1CheckBox");
titleV1CheckBox->setText(i18n("Title:"));
idV1GroupBoxLayout->addWidget(titleV1CheckBox, 0, 0);
titleV1LineEdit = new QLineEdit(idV1GroupBox, "titleV1LineEdit");
titleV1LineEdit->setMaxLength(30);
idV1GroupBoxLayout->addWidget(titleV1LineEdit, 0, 1);
filenameV1PushButton = new QPushButton(idV1GroupBox, "filenameV1PushButton");
filenameV1PushButton->setText(i18n("From Filename"));
idV1GroupBoxLayout->addWidget(filenameV1PushButton, 0, 2);
artistV1CheckBox = new QCheckBox(idV1GroupBox, "artistV1CheckBox");
artistV1CheckBox->setText(i18n("Artist:"));
idV1GroupBoxLayout->addWidget(artistV1CheckBox, 1, 0);
artistV1LineEdit = new QLineEdit(idV1GroupBox, "artistV1LineEdit");
artistV1LineEdit->setMaxLength(30);
idV1GroupBoxLayout->addWidget(artistV1LineEdit, 1, 1);
id3V1PushButton = new QPushButton(idV1GroupBox, "id3V1PushButton");
id3V1PushButton->setText(i18n("From ID3v2"));
idV1GroupBoxLayout->addWidget(id3V1PushButton, 1, 2);
albumV1CheckBox = new QCheckBox(idV1GroupBox, "albumV1CheckBox");
albumV1CheckBox->setText(i18n("Album:"));
idV1GroupBoxLayout->addWidget(albumV1CheckBox, 2, 0);
albumV1LineEdit = new QLineEdit(idV1GroupBox, "albumV1LineEdit");
albumV1LineEdit->setMaxLength(30);
idV1GroupBoxLayout->addWidget(albumV1LineEdit, 2, 1);
copyV1PushButton = new QPushButton(idV1GroupBox, "copyV1PushButton");
copyV1PushButton->setText(i18n("Copy"));
idV1GroupBoxLayout->addWidget(copyV1PushButton, 2, 2);
removeV1PushButton = new QPushButton(idV1GroupBox, "removeV1PushButton");
removeV1PushButton->setText(i18n("Remove"));
idV1GroupBoxLayout->addWidget(removeV1PushButton, 4, 2);
commentV1CheckBox = new QCheckBox(idV1GroupBox, "commentV1CheckBox");
commentV1CheckBox->setText(i18n("Comment:"));
idV1GroupBoxLayout->addWidget(commentV1CheckBox, 3, 0);
commentV1LineEdit = new QLineEdit(idV1GroupBox, "commentV1LineEdit");
commentV1LineEdit->setMaxLength(28);
idV1GroupBoxLayout->addWidget(commentV1LineEdit, 3, 1);
pasteV1PushButton = new QPushButton(idV1GroupBox, "pasteV1PushButton");
pasteV1PushButton->setText(i18n("Paste"));
idV1GroupBoxLayout->addWidget(pasteV1PushButton, 3, 2);
yearV1CheckBox = new QCheckBox(idV1GroupBox, "yearV1CheckBox");
yearV1CheckBox->setText(i18n("Year:"));
idV1GroupBoxLayout->addWidget(yearV1CheckBox, 4, 0);
trackV1HBox = new QHBox(idV1GroupBox, "trackV1HBox");
trackV1HBox->setSpacing(6);
yearV1SpinBox = new QSpinBox(trackV1HBox, "yearV1SpinBox");
yearV1SpinBox->setMaxValue(9999);
trackV1CheckBox = new QCheckBox(trackV1HBox, "trackV1CheckBox");
trackV1CheckBox->setText(i18n("Track:"));
trackV1SpinBox = new QSpinBox(trackV1HBox, "trackV1SpinBox");
idV1GroupBoxLayout->addWidget(trackV1HBox, 4, 1);
genreV1CheckBox = new QCheckBox(idV1GroupBox, "genreV1CheckBox");
genreV1CheckBox->setText(i18n("Genre:"));
idV1GroupBoxLayout->addWidget(genreV1CheckBox, 5, 0);
genreV1ComboBox = new QComboBox(FALSE, idV1GroupBox, "genreV1ComboBox");
idV1GroupBoxLayout->addWidget(genreV1ComboBox, 5, 1);
idV2GroupBox = new QGroupBox(rightHalfVBox, "idV2GroupBox");
idV2GroupBox->setTitle(i18n("ID3v2.3"));
idV2GroupBoxLayout = new QGridLayout(idV2GroupBox, 7, 3, 11, 6);
idV2GroupBoxLayout->setAlignment(Qt::AlignTop);
titleV2CheckBox = new QCheckBox(idV2GroupBox, "titleV2CheckBox");
titleV2CheckBox->setText(i18n("Title:"));
idV2GroupBoxLayout->addWidget(titleV2CheckBox, 0, 0);
titleV2LineEdit = new QLineEdit(idV2GroupBox, "titleV2LineEdit");
idV2GroupBoxLayout->addWidget(titleV2LineEdit, 0, 1);
filenameV2PushButton = new QPushButton(idV2GroupBox, "filenameV2PushButton");
filenameV2PushButton->setText(i18n("From Filename"));
idV2GroupBoxLayout->addWidget(filenameV2PushButton, 0, 2);
artistV2CheckBox = new QCheckBox(idV2GroupBox, "artistV2CheckBox");
artistV2CheckBox->setText(i18n("Artist:"));
idV2GroupBoxLayout->addWidget(artistV2CheckBox, 1, 0);
artistV2LineEdit = new QLineEdit(idV2GroupBox, "artistV2LineEdit");
idV2GroupBoxLayout->addWidget(artistV2LineEdit, 1, 1);
id3V2PushButton = new QPushButton(idV2GroupBox, "id3V2PushButton");
id3V2PushButton->setText(i18n("From ID3v1"));
idV2GroupBoxLayout->addWidget(id3V2PushButton, 1, 2);
albumV2CheckBox = new QCheckBox(idV2GroupBox, "albumV2CheckBox");
albumV2CheckBox->setText(i18n("Album:"));
idV2GroupBoxLayout->addWidget(albumV2CheckBox, 2, 0);
albumV2LineEdit = new QLineEdit(idV2GroupBox, "albumV2LineEdit");
idV2GroupBoxLayout->addWidget(albumV2LineEdit, 2, 1);
copyV2PushButton = new QPushButton(idV2GroupBox, "copyV2PushButton");
copyV2PushButton->setText(i18n("Copy"));
idV2GroupBoxLayout->addWidget(copyV2PushButton, 2, 2);
commentV2CheckBox = new QCheckBox(idV2GroupBox, "commentV2CheckBox");
commentV2CheckBox->setText(i18n("Comment:"));
idV2GroupBoxLayout->addWidget(commentV2CheckBox, 3, 0);
commentV2LineEdit = new QLineEdit(idV2GroupBox, "commentV2LineEdit");
idV2GroupBoxLayout->addWidget(commentV2LineEdit, 3, 1);
pasteV2PushButton = new QPushButton(idV2GroupBox, "pasteV2PushButton");
pasteV2PushButton->setText(i18n("Paste"));
idV2GroupBoxLayout->addWidget(pasteV2PushButton, 3, 2);
yearV2CheckBox = new QCheckBox(idV2GroupBox, "yearV2CheckBox");
yearV2CheckBox->setText(i18n("Year:"));
idV2GroupBoxLayout->addWidget(yearV2CheckBox, 4, 0);
trackV2HBox = new QHBox(idV2GroupBox, "trackV2HBox");
trackV2HBox->setSpacing(6);
yearV2SpinBox = new QSpinBox(trackV2HBox, "yearV2SpinBox");
yearV2SpinBox->setMaxValue(9999);
trackV2CheckBox = new QCheckBox(trackV2HBox, "trackV2CheckBox");
trackV2CheckBox->setText(i18n("Track:"));
trackV2SpinBox = new QSpinBox(trackV2HBox, "trackV2SpinBox");