[SCM] dvbcut/master: apply patch from upstream to support qt4
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sat May 7 07:02:16 UTC 2011
The following commit has been merged in the master branch:
commit d01b6bd01c00febca4ceadacc9fcd1dafce35d2e
Author: Reinhard Tartler <siretart at tauware.de>
Date: Sat May 7 08:40:47 2011 +0200
apply patch from upstream to support qt4
diff --git a/debian/patches/port-to-qt4.patch b/debian/patches/port-to-qt4.patch
new file mode 100644
index 0000000..4bf98cc
--- /dev/null
+++ b/debian/patches/port-to-qt4.patch
@@ -0,0 +1,6457 @@
+From: Raik Bieniek
+Subject: qt4 support
+Origin: upstream, http://www.mail-archive.com/dvbcut-devel@lists.sourceforge.net/msg00196.html
+
+Hi,
+
+i've created a patch for SVN revision 170 that makes it possible to build
+dvbcut with Qt4 libraries. I don't know much about autotools so i used cmake
+as build system.
+
+Regards,
+Raik
+
+
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,5 @@
++project(dvbcut) # the name of your project
++
++cmake_minimum_required(VERSION 2.4.0)
++
++add_subdirectory(src)
+\ No newline at end of file
+--- /dev/null
++++ b/icons/icons.qrc
+@@ -0,0 +1,8 @@
++<RCC>
++ <qresource prefix="/icons/" >
++ <file>bookmark.png</file>
++ <file>chapter.png</file>
++ <file>play.png</file>
++ <file>stop.png</file>
++ </qresource>
++</RCC>
+--- /dev/null
++++ b/src/CMakeLists.txt
+@@ -0,0 +1,87 @@
++find_package(Qt4 REQUIRED)
++
++set(QT_USE_QTGUI true)
++set(QT_USE_QTCORE true)
++set(QT_USE_QTXML true)
++set(QT_USE_QT3SUPPORT true)
++include(${QT_USE_FILE})
++
++include_directories(/usr/include/libavcodec)
++include_directories(/usr/include/libavformat)
++include_directories(/usr/include/libswscale)
++include_directories(${CMAKE_CURRENT_BINARY_DIR})
++
++find_library(LIB_AVCODEC avcodec)
++find_library(LIB_AVFORMAT avformat)
++find_library(LIB_SWSCALE swscale)
++set(FFMPEG_LIBRARIES
++ ${LIB_AVCODEC}
++ ${LIB_AVFORMAT}
++ ${LIB_SWSCALE}
++)
++
++find_library(LIB_AO ao)
++find_library(LIB_MAD mad)
++set(MISC_LIBRARIES
++ ${LIB_AO}
++ ${LIB_MAD}
++)
++
++add_definitions(-D__STDC_CONSTANT_MACROS)
++add_definitions(-D__STDC_LIMIT_MACROS)
++
++add_definitions(-DHAVE_LIB_SWSCALE)
++add_definitions(-DHAVE_LIB_AO)
++add_definitions(-DHAVE_LIB_MAD)
++
++set(dvbcut_SRCS
++ avframe.cpp
++ buffer.cpp
++ differenceimageprovider.cpp
++ dvbcut.cpp
++ eventlistitem.cpp
++ exception.cpp
++ exportdialog.cpp
++ imageprovider.cpp
++ index.cpp
++ lavfmuxer.cpp
++ logoutput.cpp
++ main.cpp
++ mpegmuxer.cpp
++ mpgfile.cpp
++ mplayererrorbase.cpp
++ playaudio.cpp
++ progressstatusbar.cpp
++ progresswindow.cpp
++ psfile.cpp
++ pts.cpp
++ settings.cpp
++ streamdata.cpp
++ tsfile.cpp
++)
++
++set(dvbcut_MOC_SRCS
++ dvbcut.h
++ exportdialog.h
++ mplayererrorbase.h
++ progresswindow.h
++ progressstatusbar.h
++)
++
++set(dvbcut_UIS
++ dvbcutbase.ui
++ exportdialogbase.ui
++ mplayererrorbase.ui
++ progresswindowbase.ui
++)
++
++qt4_automoc(${dvbcut_SRCS})
++qt4_wrap_ui(dvbcut_UIS_H ${dvbcut_UIS})
++qt4_wrap_cpp(dvbcut_MOC_SRCS ${dvbcut_MOC_SRCS})
++qt4_add_resources(dvbcut_RCC_SRCS ../icons/icons.qrc)
++
++add_executable(dvbcut ${dvbcut_SRCS} ${dvbcut_UIS_H} ${dvbcut_MOC_SRCS} ${dvbcut_RCC_SRCS})
++target_link_libraries(dvbcut ${QT_LIBRARIES} ${FFMPEG_LIBRARIES} ${MISC_LIBRARIES})
++install(TARGETS dvbcut
++ RUNTIME DESTINATION bin
++)
+\ No newline at end of file
+--- a/src/avframe.cpp
++++ b/src/avframe.cpp
+@@ -116,9 +116,9 @@ QImage avframe::getqimage(bool scaled, d
+
+ if ((scaled && w!=dw)||(viewscalefactor!=1.0)) {
+ #ifdef SMOOTHSCALE
+- im = im.smoothScale(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5));
++ im = im.scaled(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ #else
+- im = im.scale(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5));
++ im = im.scaled(int((scaled?dw:w)/viewscalefactor+0.5), int(h/viewscalefactor+0.5));
+ #endif
+ }
+
+--- a/src/differenceimageprovider.cpp
++++ b/src/differenceimageprovider.cpp
+@@ -63,7 +63,7 @@ void differenceimageprovider::decodepict
+ delete *it;
+
+ if (im.size()!=baseimg.size())
+- im=im.scale(baseimg.size());
++ im=im.scaled(baseimg.size());
+
+ if (im.depth()==32 && baseimg.depth()==32)
+ for (int y=0;y<baseimg.height();++y) {
+@@ -84,7 +84,7 @@ void differenceimageprovider::decodepict
+
+
+ if ((RTTI!=IMAGEPROVIDER_DIFFERENCE_UNSCALED && displaywidth!=im.width())||(viewscalefactor!=1.0))
+- im=im.scale(int(((RTTI!=IMAGEPROVIDER_DIFFERENCE_UNSCALED)?displaywidth:im.width())/viewscalefactor+0.5),
++ im=im.scaled(int(((RTTI!=IMAGEPROVIDER_DIFFERENCE_UNSCALED)?displaywidth:im.width())/viewscalefactor+0.5),
+ int(im.height()/viewscalefactor+0.5));
+ framecache.push_front(framecacheitem(startpic++,im));
+ }
+--- a/src/dvbcut.cpp
++++ b/src/dvbcut.cpp
+@@ -39,7 +39,7 @@
+ #include <qstring.h>
+ #include <qlineedit.h>
+ #include <qprocess.h>
+-#include <qpopupmenu.h>
++#include <q3popupmenu.h>
+ #include <qpushbutton.h>
+ #include <qaction.h>
+ #include <qtextbrowser.h>
+@@ -122,9 +122,9 @@ void dvbcut::setbusy(bool b)
+ // **************************************************************************
+ // *** dvbcut::dvbcut (private constructor)
+
+-dvbcut::dvbcut(QWidget *parent, const char *name, WFlags fl)
+- :dvbcutbase(parent, name, fl),
+- audiotrackpopup(0), recentfilespopup(0), editconvertpopup(0), audiotrackmenuid(-1),
++dvbcut::dvbcut(QWidget *parent, const char *name, Qt::WFlags fl)
++ :Q3MainWindow(parent),
++ audiotrackpopup(0), recentfilespopup(0), editconvertpopup(0), audiotrackmenu(0),
+ buf(8 << 20, 128 << 20),
+ mpg(0), pictures(0),
+ curpic(~0), showimage(true), fine(false),
+@@ -132,35 +132,46 @@ dvbcut::dvbcut(QWidget *parent, const ch
+ mplayer_process(0), imgp(0), busy(0),
+ viewscalefactor(1.0),
+ nogui(false)
+-{
++ {
++ ui = new Ui::dvbcutbase();
++ ui->setupUi(this);
+ #ifndef HAVE_LIB_AO
+- playAudio1Action->setEnabled(false);
+- playAudio2Action->setEnabled(false);
+- playAudio1Action->removeFrom(playToolbar);
+- playAudio2Action->removeFrom(playToolbar);
+- playAudio1Action->removeFrom(playMenu);
+- playAudio2Action->removeFrom(playMenu);
++ ui->playAudio1Action->setEnabled(false);
++ ui->playAudio2Action->setEnabled(false);
++ ui->playToolbar->removeAction(ui->playAudio1Action);
++ ui->playToolbar->removeAction(ui->playAudio2Action);
++ ui->playMenu->removeAction(ui->playAudio1Action);
++ ui->playMenu->removeAction(ui->playAudio2Action);
+ #endif // ! HAVE_LIB_AO
+
+- audiotrackpopup=new QPopupMenu(this);
+- playMenu->insertSeparator();
+- audiotrackmenuid=playMenu->insertItem(QString("Audio track"),audiotrackpopup);
++ audiotrackpopup=new QMenu(QString("Audio track"), this);
++ ui->playMenu->insertSeparator();
++ audiotrackmenu=ui->playMenu->addMenu(audiotrackpopup);
+ connect( audiotrackpopup, SIGNAL( activated(int) ), this, SLOT( audiotrackchosen(int) ) );
+
+- recentfilespopup=new QPopupMenu(this);
+- fileMenu->insertItem(QString("Open recent..."),recentfilespopup,-1,2);
++ recentfilespopup=new QMenu(QString("Open recent..."), this);
++ ui->fileMenu->insertMenu(ui->fileSaveAction, recentfilespopup);
+ connect( recentfilespopup, SIGNAL( activated(int) ), this, SLOT( loadrecentfile(int) ) );
+ connect( recentfilespopup, SIGNAL( aboutToShow() ), this, SLOT( abouttoshowrecentfiles() ) );
+
+- editconvertpopup=new QPopupMenu(this);
+- editMenu->insertItem(QString("Convert bookmarks"),editconvertpopup,-1,8);
++ editconvertpopup=new QMenu(QString("Convert bookmarks"), this);
++ ui->editMenu->insertMenu(ui->editBookmarkAction, editconvertpopup);
+ connect( editconvertpopup, SIGNAL( activated(int) ), this, SLOT( editConvert(int) ) );
+ connect( editconvertpopup, SIGNAL( aboutToShow() ), this, SLOT( abouttoshoweditconvert() ) );
++
++ ui->fileOpenAction->setIcon(QIcon::fromTheme("document-open"));
++ ui->fileSaveAction->setIcon(QIcon::fromTheme("document-save"));
++ ui->fileSaveAsAction->setIcon(QIcon::fromTheme("document-save-as"));
++ ui->snapshotSaveAction->setIcon(QIcon::fromTheme("camera-photo"));
++ ui->playPlayAction->setIcon(QIcon::fromTheme("media-playback-start"));
++ ui->playStopAction->setIcon(QIcon::fromTheme("media-playback-pause"));
++ ui->playAudio1Action->setIcon(QIcon::fromTheme("media-seek-backward"));
++ ui->playAudio2Action->setIcon(QIcon::fromTheme("media-seek-forward"));
+
+ setviewscalefactor(settings().viewscalefactor);
+
+ // install event handler
+- linslider->installEventFilter(this);
++ ui->linslider->installEventFilter(this);
+
+ // set caption
+ setCaption(QString(VERSION_STRING));
+@@ -172,7 +183,7 @@ dvbcut::dvbcut(QWidget *parent, const ch
+ dvbcut::~dvbcut()
+ {
+ if (mplayer_process) {
+- mplayer_process->tryTerminate();
++ mplayer_process->terminate();
+ delete mplayer_process;
+ }
+
+@@ -187,6 +198,8 @@ dvbcut::~dvbcut()
+ delete imgp;
+ if (mpg)
+ delete mpg;
++ if(ui)
++ delete ui;
+ }
+
+ // **************************************************************************
+@@ -213,18 +226,18 @@ void dvbcut::fileSaveAs()
+ prefix = prefix.substr(0, lastdot);
+ prjfilen = prefix + ".dvbcut";
+ int nr = 0;
+- while (QFileInfo(QString(prjfilen)).exists())
++ while (QFileInfo(QString::fromStdString(prjfilen)).exists())
+ prjfilen = prefix + "_" + ((const char*)QString::number(++nr)) + ".dvbcut";
+ }
+
+ QString s=QFileDialog::getSaveFileName(
+- prjfilen,
++ QString::fromStdString(prjfilen),
+ settings().prjfilter,
+ this,
+ "Save project as...",
+ "Choose the name of the project file" );
+
+- if (!s)
++ if (s.isNull())
+ return;
+
+ if (QFileInfo(s).exists() && question(
+@@ -245,10 +258,12 @@ void dvbcut::fileSave()
+ return;
+ }
+
+- QFile outfile(prjfilen);
+- if (!outfile.open(IO_WriteOnly)) {
+- critical("Failed to write project file - dvbcut",
+- QString(prjfilen) + ":\nCould not open file");
++ QFile outfile(QString::fromStdString(prjfilen));
++ if (!outfile.open(QIODevice::WriteOnly)) {
++ QMessageBox::critical(this,"Failed to write project file - dvbcut",QString::fromStdString(prjfilen)+
++ ":\nCould not open file",
++ QMessageBox::Abort,
++ QMessageBox::NoButton);
+ return;
+ }
+
+@@ -264,18 +279,18 @@ void dvbcut::fileSave()
+ std::list<std::string>::const_iterator it = mpgfilen.begin();
+ while (it != mpgfilen.end()) {
+ QDomElement elem = doc.createElement("mpgfile");
+- elem.setAttribute("path", *it);
++ elem.setAttribute("path", QString::fromStdString(*it));
+ root.appendChild(elem);
+ ++it;
+ }
+
+ if (!idxfilen.empty()) {
+ QDomElement elem = doc.createElement("idxfile");
+- elem.setAttribute("path", idxfilen);
++ elem.setAttribute("path", QString::fromStdString(idxfilen));
+ root.appendChild(elem);
+ }
+
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ QString elemname;
+ EventListItem *eli=(EventListItem*)item;
+@@ -300,7 +315,7 @@ void dvbcut::fileSave()
+ QTextStream stream(&outfile);
+ stream.setEncoding(QTextStream::Latin1);
+ stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+- stream << doc.toCString();
++ stream << doc.toString().toStdString().c_str();
+ outfile.close();
+ }
+
+@@ -316,7 +331,7 @@ void dvbcut::chapterSnapshotsSave()
+ {
+ int found=0;
+ std::vector<int> piclist;
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ EventListItem *eli=(EventListItem*)item;
+ if (eli->geteventtype()==EventListItem::chapter) {
+@@ -345,15 +360,15 @@ void dvbcut::snapshotSave(std::vector<in
+ if (picfilen.isEmpty()) {
+ if(settings().snapshot_prefix.isEmpty()) {
+ if (!prjfilen.empty())
+- prefix = QString(prjfilen);
++ prefix = QString::fromStdString(prjfilen);
+ else if (!mpgfilen.empty() && !mpgfilen.front().empty())
+- prefix = QString(mpgfilen.front());
++ prefix = QString::fromStdString(mpgfilen.front());
+ } else
+ prefix = settings().snapshot_prefix;
+
+ if (!prefix.isEmpty()) {
+- int lastdot = prefix.findRev('.');
+- int lastslash = prefix.findRev('/');
++ int lastdot = prefix.lastIndexOf('.');
++ int lastslash = prefix.lastIndexOf('/');
+ if (lastdot >= 0 && lastdot > lastslash)
+ prefix = prefix.left(lastdot);
+ int nr = first;
+@@ -395,13 +410,13 @@ void dvbcut::snapshotSave(std::vector<in
+ else
+ p = imageprovider(*mpg, new dvbcutbusy(this), false, viewscalefactor).getimage(pic,fine);
+ if(p.save(s,type,quality))
+- statusBar()->message("Saved snapshot: " + s);
++ statusBar()->showMessage("Saved snapshot: " + s);
+ else
+- statusBar()->message("*** Unable to save snapshot: " + s + "! ***");
++ statusBar()->showMessage("*** Unable to save snapshot: " + s + "! ***");
+
+ // try to "increment" the choosen filename for next snapshot (or use old name as default)
+ // No usage of "delim", so it's possible to choose any prefix in front of the number field!
+- i = s.findRev(QRegExp("\\d{"+QString::number(width)+","+QString::number(width)+"}\\."+ext+"$"));
++ i = s.lastIndexOf(QRegExp("\\d{"+QString::number(width)+","+QString::number(width)+"}\\."+ext+"$"));
+ if (i>0) {
+ nr = s.mid(i,width).toInt(&ok,10);
+ if (ok)
+@@ -512,31 +527,31 @@ void dvbcut::fileExport()
+ newexpfilen=newexpfilen.substr(0,lastdot);
+ expfilen=newexpfilen+".mpg";
+ int nr=0;
+- while (QFileInfo(QString(expfilen)).exists())
++ while (QFileInfo(QString::fromStdString(expfilen)).exists())
+ expfilen=newexpfilen+"_"+((const char*)QString::number(++nr))+".mpg";
+ }
+ }
+
+- std::auto_ptr<exportdialog> expd(new exportdialog(expfilen,this));
+- expd->muxercombo->insertItem("MPEG program stream/DVD (DVBCUT multiplexer)");
+- expd->muxercombo->insertItem("MPEG program stream (DVBCUT multiplexer)");
+- expd->muxercombo->insertItem("MPEG program stream/DVD (libavformat)");
+- expd->muxercombo->insertItem("MPEG transport stream (libavformat)");
++ std::auto_ptr<exportdialog> expd(new exportdialog(QString::fromStdString(expfilen),this));
++ expd->ui->muxercombo->insertItem("MPEG program stream/DVD (DVBCUT multiplexer)");
++ expd->ui->muxercombo->insertItem("MPEG program stream (DVBCUT multiplexer)");
++ expd->ui->muxercombo->insertItem("MPEG program stream/DVD (libavformat)");
++ expd->ui->muxercombo->insertItem("MPEG transport stream (libavformat)");
+ #ifndef __WIN32__
+ // add possible user configured pipe commands
+- int pipe_items_start=expd->muxercombo->count();
++ int pipe_items_start=expd->ui->muxercombo->count();
+ for (unsigned int i = 0; i < settings().pipe_command.size(); ++i)
+- expd->muxercombo->insertItem(settings().pipe_label[i]);
++ expd->ui->muxercombo->insertItem(settings().pipe_label[i]);
+ #endif
+
+ if (settings().export_format < 0
+- || settings().export_format >= expd->muxercombo->count())
++ || settings().export_format >= expd->ui->muxercombo->count())
+ settings().export_format = 0;
+- expd->muxercombo->setCurrentItem(settings().export_format);
++ expd->ui->muxercombo->setCurrentItem(settings().export_format);
+
+ for(int a=0;a<mpg->getaudiostreams();++a) {
+- expd->audiolist->insertItem(mpg->getstreaminfo(audiostream(a)).c_str());
+- expd->audiolist->setSelected(a,true);
++ expd->ui->audiolist->insertItem(mpg->getstreaminfo(audiostream(a)).c_str());
++ expd->ui->audiolist->setSelected(a,true);
+ }
+
+ int expfmt = 0;
+@@ -545,14 +560,14 @@ void dvbcut::fileExport()
+ if (!expd->exec())
+ return;
+
+- settings().export_format = expd->muxercombo->currentItem();
+- expfmt = expd->muxercombo->currentItem();
++ settings().export_format = expd->ui->muxercombo->currentItem();
++ expfmt = expd->ui->muxercombo->currentItem();
+
+- expfilen=(const char *)(expd->filenameline->text());
++ expfilen=(const char *)(expd->ui->filenameline->text());
+ if (expfilen.empty())
+ return;
+ expd->hide();
+- } else if (exportformat > 0 && exportformat < expd->muxercombo->count())
++ } else if (exportformat > 0 && exportformat < expd->ui->muxercombo->count())
+ expfmt = exportformat;
+
+ // create usable chapter lists
+@@ -641,9 +656,9 @@ void dvbcut::fileExport()
+ }
+ } else
+ #endif
+- if (QFileInfo(expfilen).exists() && question(
++ if (QFileInfo(QString::fromStdString(expfilen)).exists() && question(
+ "File exists - dvbcut",
+- expfilen+"\nalready exists. "
++ QString::fromStdString(expfilen)+"\nalready exists. "
+ "Overwrite?") !=
+ QMessageBox::Yes)
+ return;
+@@ -655,7 +670,7 @@ void dvbcut::fileExport()
+ }
+ else {
+ prgwin = new progresswindow(this);
+- prgwin->setCaption(QString("export - " + expfilen));
++ prgwin->setCaption(QString("export - " + QString::fromStdString(expfilen)));
+ log = prgwin;
+ }
+
+@@ -665,7 +680,7 @@ void dvbcut::fileExport()
+ uint32_t audiostreammask(0);
+
+ for(int a=0;a<mpg->getaudiostreams();++a)
+- if (expd->audiolist->isSelected(a))
++ if (expd->ui->audiolist->isSelected(a))
+ audiostreammask|=1u<<a;
+
+ std::string out_file = (child_pid < 0) ? expfilen :
+@@ -763,7 +778,7 @@ void dvbcut::fileExport()
+ int irc = system(expcmd.c_str());
+ if(irc!=0) {
+ critical("Post processing error - dvbcut","Post processing command:\n"+
+- expcmd+"\n returned non-zero exit code: " +QString::number(irc));
++ QString::fromStdString(expcmd)+"\n returned non-zero exit code: " +QString::number(irc));
+ log->print("Command reported some problems... please check!");
+ }
+ //else
+@@ -816,7 +831,7 @@ void dvbcut::fileClose()
+ void dvbcut::addEventListItem(int pic, EventListItem::eventtype type)
+ {
+ //check if requested EventListItem is already in list to avoid doubles!
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ EventListItem *eli=(EventListItem*)item;
+ if (pic==eli->getpicture() && type==eli->geteventtype())
+@@ -828,8 +843,8 @@ void dvbcut::addEventListItem(int pic, E
+ p = imgp->getimage(pic);
+ else
+ p = imageprovider(*mpg, new dvbcutbusy(this), false, 4).getimage(pic);
+-
+- new EventListItem(eventlist, p, type, pic, (*mpg)[pic].getpicturetype(),
++
++ new EventListItem(ui->eventlist, p, type, pic, (*mpg)[pic].getpicturetype(),
+ (*mpg)[pic].getpts() - firstpts);
+ }
+
+@@ -897,7 +912,7 @@ void dvbcut::editAutoChapters()
+ p1 = p2;
+ p2 = imgp->getimage(pic,fine);
+ if (p2.size()!=p1.size())
+- p2=p2.scale(p1.size());
++ p2=p2.scaled(p1.size());
+
+ // calculate color distance between two consecutive frames
+ double dist=0.;
+@@ -920,7 +935,7 @@ void dvbcut::editAutoChapters()
+ //fprintf(stderr,"%d, DIST=%f\n",pic,dist);
+ if(dist>settings().chapter_threshold) {
+ inpic=pic;
+- statusBar()->message(QString().sprintf("%d. Scene change @ %d, DIST=%f\n",chapters+1,inpic,dist));
++ statusBar()->showMessage(QString().sprintf("%d. Scene change @ %d, DIST=%f\n",chapters+1,inpic,dist));
+ break;
+ }
+ }
+@@ -943,7 +958,7 @@ void dvbcut::editSuggest()
+ found++;
+ }
+ if (!found)
+- statusBar()->message(QString("*** No aspect ratio changes detected! ***"));
++ statusBar()->showMessage(QString("*** No aspect ratio changes detected! ***"));
+ }
+
+ void dvbcut::editImport()
+@@ -955,7 +970,7 @@ void dvbcut::editImport()
+ found++;
+ }
+ if (!found)
+- statusBar()->message(QString("*** No valid bookmarks available/found! ***"));
++ statusBar()->showMessage(QString("*** No valid bookmarks available/found! ***"));
+ }
+
+
+@@ -975,7 +990,7 @@ void dvbcut::editConvert(int option)
+
+ int found=0;
+ std::vector<int> cutlist;
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ EventListItem *eli=(EventListItem*)item;
+ if (eli->geteventtype()==EventListItem::bookmark) {
+@@ -988,10 +1003,10 @@ void dvbcut::editConvert(int option)
+ addStartStopItems(cutlist, option);
+
+ if (found%2)
+- statusBar()->message(QString("*** No matching stop marker!!! ***"));
++ statusBar()->showMessage(QString("*** No matching stop marker!!! ***"));
+ }
+ else
+- statusBar()->message(QString("*** No bookmarks to convert! ***"));
++ statusBar()->showMessage(QString("*** No bookmarks to convert! ***"));
+ }
+
+ void dvbcut::addStartStopItems(std::vector<int> cutlist, int option)
+@@ -1005,10 +1020,10 @@ void dvbcut::addStartStopItems(std::vect
+ alternate=false;
+
+ // make sure list is sorted...
+- sort(cutlist.begin(),cutlist.end());
++ std::sort(cutlist.begin(),cutlist.end());
+
+ // ...AND there are no old START/STOP pairs!!!
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ EventListItem *eli=(EventListItem*)item;
+ if (eli->geteventtype()==EventListItem::start || eli->geteventtype()==EventListItem::stop)
+@@ -1040,9 +1055,9 @@ void dvbcut::addStartStopItems(std::vect
+
+ void dvbcut::viewDifference()
+ {
+- viewNormalAction->setOn(false);
+- viewUnscaledAction->setOn(false);
+- viewDifferenceAction->setOn(true);
++ ui->viewNormalAction->setChecked(false);
++ ui->viewUnscaledAction->setChecked(false);
++ ui->viewDifferenceAction->setChecked(true);
+
+ if (imgp)
+ delete imgp;
+@@ -1053,9 +1068,9 @@ void dvbcut::viewDifference()
+
+ void dvbcut::viewUnscaled()
+ {
+- viewNormalAction->setOn(false);
+- viewUnscaledAction->setOn(true);
+- viewDifferenceAction->setOn(false);
++ ui->viewNormalAction->setChecked(false);
++ ui->viewUnscaledAction->setChecked(true);
++ ui->viewDifferenceAction->setChecked(false);
+
+ if (!imgp || imgp->rtti()!=IMAGEPROVIDER_UNSCALED) {
+ if (imgp)
+@@ -1068,9 +1083,9 @@ void dvbcut::viewUnscaled()
+
+ void dvbcut::viewNormal()
+ {
+- viewNormalAction->setOn(true);
+- viewUnscaledAction->setOn(false);
+- viewDifferenceAction->setOn(false);
++ ui->viewNormalAction->setChecked(true);
++ ui->viewUnscaledAction->setChecked(false);
++ ui->viewDifferenceAction->setChecked(false);
+
+ if (!imgp || imgp->rtti()!=IMAGEPROVIDER_STANDARD) {
+ if (imgp)
+@@ -1115,88 +1130,81 @@ void dvbcut::playPlay()
+ if (mplayer_process)
+ return;
+
+- eventlist->setEnabled(false);
+- linslider->setEnabled(false);
+- jogslider->setEnabled(false);
+- gobutton->setEnabled(false);
+- goinput->setEnabled(false);
+- gobutton2->setEnabled(false);
+- goinput2->setEnabled(false);
++
++ ui->eventlist->setEnabled(false);
++ ui->linslider->setEnabled(false);
++ ui->jogslider->setEnabled(false);
++ ui->gobutton->setEnabled(false);
++ ui->goinput->setEnabled(false);
++ ui->gobutton2->setEnabled(false);
++ ui->goinput2->setEnabled(false);
+
+ #ifdef HAVE_LIB_AO
+
+- playAudio1Action->setEnabled(false);
+- playAudio2Action->setEnabled(false);
++ ui->playAudio1Action->setEnabled(false);
++ ui->playAudio2Action->setEnabled(false);
+ #endif // HAVE_LIB_AO
+
+- playPlayAction->setEnabled(false);
+- playStopAction->setEnabled(true);
+- menubar->setItemEnabled(audiotrackmenuid,false);
+-
+- fileOpenAction->setEnabled(false);
+- fileSaveAction->setEnabled(false);
+- fileSaveAsAction->setEnabled(false);
+- snapshotSaveAction->setEnabled(false);
+- chapterSnapshotsSaveAction->setEnabled(false);
+- fileExportAction->setEnabled(false);
++ ui->playPlayAction->setEnabled(false);
++ ui->playStopAction->setEnabled(true);
++ audiotrackmenu->setEnabled(false);
++
++ ui->fileOpenAction->setEnabled(false);
++ ui->fileSaveAction->setEnabled(false);
++ ui->fileSaveAsAction->setEnabled(false);
++ ui->snapshotSaveAction->setEnabled(false);
++ ui->chapterSnapshotsSaveAction->setEnabled(false);
++ ui->fileExportAction->setEnabled(false);
+
+ showimage=false;
+- imagedisplay->setPixmap(QPixmap());
+- imagedisplay->grabKeyboard();
++ ui->imagedisplay->setPixmap(QPixmap());
++ ui->imagedisplay->grabKeyboard();
+
+ fine=true;
+- linslider->setValue(mpg->lastiframe(curpic));
++ ui->linslider->setValue(mpg->lastiframe(curpic));
+ dvbcut_off_t offset=(*mpg)[curpic].getpos().packetposition();
+ mplayer_curpts=(*mpg)[curpic].getpts();
+
++ QString process("mplayer");
++ QStringList arguments;
++
++ arguments << "-noconsolecontrols";
+ dvbcut_off_t partoffset;
+ int partindex = buf.getfilenum(offset, partoffset);
+ if (partindex == -1)
+ return; // what else can we do?
+
+- mplayer_process=new QProcess(QString("mplayer"));
+- mplayer_process->addArgument("-noconsolecontrols");
+ #ifdef __WIN32__
+- mplayer_process->addArgument("-vo");
+- mplayer_process->addArgument("directx:noaccel");
++ arguments << "-vo" << "directx:noaccel";
+ #endif
+- mplayer_process->addArgument("-wid");
+- mplayer_process->addArgument(QString().sprintf("0x%x",int(imagedisplay->winId())));
+- mplayer_process->addArgument("-sb");
+- mplayer_process->addArgument(QString::number(offset - partoffset));
+- mplayer_process->addArgument("-geometry");
+- mplayer_process->addArgument(QString().sprintf("%dx%d+0+0",int(imagedisplay->width()),int(imagedisplay->height())));
++ arguments << "-wid" << QString().sprintf("0x%x",int(ui->imagedisplay->winId()));
++ arguments << "-sb" << QString::number(offset - partoffset);
++ arguments << "-geometry" << QString().sprintf("%dx%d+0+0",int(ui->imagedisplay->width()),int(ui->imagedisplay->height()));
+
+ if (currentaudiotrack>=0 && currentaudiotrack<mpg->getaudiostreams()) {
+- mplayer_process->addArgument("-aid");
+- mplayer_process->addArgument(QString().sprintf("0x%x",int(mpg->mplayeraudioid(currentaudiotrack))));
+- }
+-
++ arguments << "-aid" << QString().sprintf("0x%x",int(mpg->mplayeraudioid(currentaudiotrack)));
++ }
++
+ // for now, pass all filenames from the current one up to the last one
+ std::list<std::string>::const_iterator it = mpgfilen.begin();
+ for (int i = 0; it != mpgfilen.end(); ++i, ++it)
+ if (i >= partindex)
+- mplayer_process->addArgument(QString(*it));
+-
+- mplayer_process->setCommunication(QProcess::Stdout|QProcess::Stderr|QProcess::DupStderr);
+-
+- connect(mplayer_process, SIGNAL(processExited()), this, SLOT(mplayer_exited()));
+- connect(mplayer_process, SIGNAL(readyReadStdout()), this, SLOT(mplayer_readstdout()));
++ arguments << QString::fromStdString(*it);
++
++ mplayer_process=new QProcess(this);
++ mplayer_process->setReadChannel(QProcess::StandardOutput);
++ mplayer_process->setProcessChannelMode(QProcess::MergedChannels);
++ connect(mplayer_process, SIGNAL(finished(int)), this, SLOT(mplayer_exited()));
++ connect(mplayer_process, SIGNAL(readyReadStandardOutput()), this, SLOT(mplayer_readstdout()));
+
+ mplayer_success=false;
+-
+- if (!mplayer_process->start()) {
+- delete mplayer_process;
+- mplayer_process=0;
+- mplayer_exited();
+- return;
+- }
++ mplayer_process->start(process, arguments);
+ }
+
+ void dvbcut::playStop()
+ {
+ if (mplayer_process)
+- mplayer_process->tryTerminate();
++ mplayer_process->terminate();
+ }
+
+ void dvbcut::playAudio1()
+@@ -1255,7 +1263,7 @@ void dvbcut::jogsliderreleased()
+ {
+ jogsliding=false;
+ jogmiddlepic=curpic;
+- jogslider->setValue(0);
++ ui->jogslider->setValue(0);
+ }
+
+ void dvbcut::jogslidervalue(int v)
+@@ -1301,24 +1309,23 @@ void dvbcut::jogslidervalue(int v)
+ } else
+ fine=true;
+
+- if (curpic!=newpic)
+- linslider->setValue(newpic);
++ if (curpic!=newpic)
++ ui->linslider->setValue(newpic);
+
+ fine=false;
+ }
+
+-
+-void dvbcut::doubleclickedeventlist(QListBoxItem *lbi)
++void dvbcut::doubleclickedeventlist(Q3ListBoxItem *lbi)
+ {
+ if (lbi->rtti()!=EventListItem::RTTI())
+ return;
+
+ fine=true;
+- linslider->setValue(((EventListItem*)lbi)->getpicture());
++ ui->linslider->setValue(((EventListItem*)lbi)->getpicture());
+ fine=false;
+ }
+
+-void dvbcut::eventlistcontextmenu(QListBoxItem *lbi, const QPoint &point)
++void dvbcut::eventlistcontextmenu(Q3ListBoxItem *lbi, const QPoint &point)
+ {
+ if (!lbi)
+ return;
+@@ -1327,7 +1334,7 @@ void dvbcut::eventlistcontextmenu(QListB
+ // is it a problem to have no "const EventListItem &eli=..."? Needed for seteventtype()...!
+ EventListItem &eli=*static_cast<EventListItem*>(lbi);
+
+- QPopupMenu popup(eventlist);
++ Q3PopupMenu popup(ui->eventlist);
+ popup.insertItem("Go to",1);
+ popup.insertItem("Delete",2);
+ popup.insertItem("Delete others",3);
+@@ -1341,14 +1348,14 @@ void dvbcut::eventlistcontextmenu(QListB
+ popup.insertItem("Convert to bookmark",11);
+ popup.insertItem("Display difference from this picture",12);
+
+- QListBox *lb=lbi->listBox();
+- QListBoxItem *first=lb->firstItem(),*current,*next;
++ Q3ListBox *lb=lbi->listBox();
++ Q3ListBoxItem *first=lb->firstItem(),*current,*next;
+ EventListItem::eventtype cmptype=EventListItem::none, cmptype2=EventListItem::none;
+
+ switch (popup.exec(point)) {
+ case 1:
+ fine=true;
+- linslider->setValue(eli.getpicture());
++ ui->linslider->setValue(eli.getpicture());
+ fine=false;
+ break;
+
+@@ -1418,9 +1425,9 @@ void dvbcut::eventlistcontextmenu(QListB
+ delete imgp;
+ imgp=new differenceimageprovider(*mpg,eli.getpicture(),new dvbcutbusy(this),false,viewscalefactor);
+ updateimagedisplay();
+- viewNormalAction->setOn(false);
+- viewUnscaledAction->setOn(false);
+- viewDifferenceAction->setOn(true);
++ ui->viewNormalAction->setChecked(false);
++ ui->viewUnscaledAction->setChecked(false);
++ ui->viewDifferenceAction->setChecked(true);
+ break;
+ }
+
+@@ -1428,19 +1435,19 @@ void dvbcut::eventlistcontextmenu(QListB
+
+ void dvbcut::clickedgo()
+ {
+- QString text=goinput->text();
+- text.stripWhiteSpace();
++ QString text=ui->goinput->text();
++ text.trimmed();
+ bool okay=false;
+ int inpic;
+ if (text.contains(':') || text.contains('.')) {
+ okay=true;
+- inpic=string2pts(text)/getTimePerFrame();
++ inpic=string2pts(text.toStdString())/getTimePerFrame();
+ }
+ else
+ inpic=text.toInt(&okay,0);
+ if (okay) {
+ fine=true;
+- linslider->setValue(inpic);
++ ui->linslider->setValue(inpic);
+ fine=false;
+ }
+ //goinput->clear();
+@@ -1448,13 +1455,13 @@ void dvbcut::clickedgo()
+
+ void dvbcut::clickedgo2()
+ {
+- QString text=goinput2->text();
+- text.stripWhiteSpace();
++ QString text=ui->goinput2->text();
++ text.trimmed();
+ bool okay=false;
+ int inpic, outpic;
+ if (text.contains(':') || text.contains('.')) {
+ okay=true;
+- outpic=string2pts(text)/getTimePerFrame();
++ outpic=string2pts(text.toStdString())/getTimePerFrame();
+ }
+ else
+ outpic=text.toInt(&okay,0);
+@@ -1464,7 +1471,7 @@ void dvbcut::clickedgo2()
+ std::upper_bound(quick_picture_lookup.begin(),quick_picture_lookup.end(),outpic,quick_picture_lookup_s::cmp_outpicture());
+ inpic=outpic-it->outpicture+it->stoppicture;
+ fine=true;
+- linslider->setValue(inpic);
++ ui->linslider->setValue(inpic);
+ fine=false;
+ }
+ //goinput2->clear();
+@@ -1475,42 +1482,44 @@ void dvbcut::mplayer_exited()
+ if (mplayer_process) {
+ if (!mplayer_success)// && !mplayer_process->normalExit())
+ {
+- mplayererrorbase *meb=new mplayererrorbase(this,0,false,WDestructiveClose);
+- meb->textbrowser->setText(mplayer_out);
+- meb->show();
++ mplayererrorbase *meb=new mplayererrorbase(this);
++ meb->setText(mplayer_out);
+ }
+-
+-
+- delete mplayer_process;
++ mplayer_process->deleteLater();
+ mplayer_process=0;
+ }
+-
+- eventlist->setEnabled(true);
+- linslider->setEnabled(true);
+- jogslider->setEnabled(true);
+- gobutton->setEnabled(true);
+- goinput->setEnabled(true);
+- gobutton2->setEnabled(true);
+- goinput2->setEnabled(true);
++
++ ui->eventlist->setEnabled(true);
++ ui->linslider->setEnabled(true);
++ ui->jogslider->setEnabled(true);
++ ui->gobutton->setEnabled(true);
++ ui->goinput->setEnabled(true);
++ ui->eventlist->setEnabled(true);
++ ui->linslider->setEnabled(true);
++ ui->jogslider->setEnabled(true);
++ ui->gobutton->setEnabled(true);
++ ui->goinput->setEnabled(true);
++ ui->gobutton2->setEnabled(true);
++ ui->goinput2->setEnabled(true);
+
+ #ifdef HAVE_LIB_AO
+
+- playAudio1Action->setEnabled(true);
+- playAudio2Action->setEnabled(true);
++ ui->playAudio1Action->setEnabled(true);
++ ui->playAudio2Action->setEnabled(true);
+ #endif // HAVE_LIB_AO
+
+- playPlayAction->setEnabled(true);
+- playStopAction->setEnabled(false);
+- menubar->setItemEnabled(audiotrackmenuid,true);
+-
+- fileOpenAction->setEnabled(true);
+- fileSaveAction->setEnabled(true);
+- fileSaveAsAction->setEnabled(true);
+- snapshotSaveAction->setEnabled(true);
+- chapterSnapshotsSaveAction->setEnabled(true);
+- fileExportAction->setEnabled(true);
++ ui->playPlayAction->setEnabled(true);
++ ui->playStopAction->setEnabled(false);
++ audiotrackmenu->setEnabled(true);
++
++ ui->fileOpenAction->setEnabled(true);
++ ui->fileSaveAction->setEnabled(true);
++ ui->fileSaveAsAction->setEnabled(true);
++ ui->snapshotSaveAction->setEnabled(true);
++ ui->chapterSnapshotsSaveAction->setEnabled(true);
++ ui->fileExportAction->setEnabled(true);
+
+- imagedisplay->releaseKeyboard();
++ ui->imagedisplay->releaseKeyboard();
+
+ int cp=curpic;
+ jogmiddlepic=curpic;
+@@ -1518,7 +1527,7 @@ void dvbcut::mplayer_exited()
+ showimage=true;
+ fine=true;
+ linslidervalue(cp);
+- linslider->setValue(cp);
++ ui->linslider->setValue(cp);
+ fine=false;
+ }
+
+@@ -1527,19 +1536,19 @@ void dvbcut::mplayer_readstdout()
+ if (!mplayer_process)
+ return;
+
+- QString line(mplayer_process->readStdout());
++ QString line(mplayer_process->readAllStandardOutput());
+ if (!line.length())
+ return;
+
+ if (!mplayer_success)
+ mplayer_out += line;
+
+- int pos=line.find("V:");
++ int pos=line.indexOf("V:");
+ if (pos<0)
+ return;
+
+ line.remove(0,pos+2);
+- line=line.stripWhiteSpace();
++ line=line.trimmed();
+ for(pos=0;pos<(signed)line.length();++pos)
+ if ((line[pos]<'0' || line[pos]>'9')&&line[pos]!='.')
+ break;
+@@ -1572,7 +1581,7 @@ void dvbcut::mplayer_readstdout()
+ mplayer_curpts=(*mpg)[--cp].getpts();
+ }
+
+- linslider->setValue(cp);
++ ui->linslider->setValue(cp);
+ }
+
+ void dvbcut::updateimagedisplay()
+@@ -1580,9 +1589,9 @@ void dvbcut::updateimagedisplay()
+ if (showimage) {
+ if (!imgp)
+ imgp=new imageprovider(*mpg,new dvbcutbusy(this),false,viewscalefactor);
+- QPixmap px=imgp->getimage(curpic,fine);
+- imagedisplay->setMinimumSize(px.size());
+- imagedisplay->setPixmap(px);
++ QImage px=imgp->getimage(curpic,fine);
++ ui->imagedisplay->setMinimumSize(px.size());
++ ui->imagedisplay->setPixmap(QPixmap::fromImage(px));
+ qApp->processEvents();
+ }
+ }
+@@ -1601,10 +1610,10 @@ void dvbcut::abouttoshowrecentfiles()
+ recentfilespopup->clear();
+ QString menuitem;
+ for(unsigned int id=0; id<settings().recentfiles.size(); id++) {
+- menuitem=QString(settings().recentfiles[id].first.front());
++ menuitem=QString(QString::fromStdString(settings().recentfiles[id].first.front()));
+ if(settings().recentfiles[id].first.size()>1)
+ menuitem += " ... (+" + QString::number(settings().recentfiles[id].first.size()-1) + ")";
+- recentfilespopup->insertItem(menuitem,(signed)id);
++ recentfilespopup->addAction(menuitem);
+ }
+ }
+
+@@ -1638,7 +1647,7 @@ void dvbcut::open(std::list<std::string>
+ // remember last directory if requested
+ if (settings().lastdir_update) {
+ QString dir = fn.front();
+- int n = dir.findRev('/');
++ int n = dir.lastIndexOf('/');
+ if (n > 0)
+ dir = dir.left(n);
+ // adding a slash is NEEDED for top level directories (win or linux), and doesn't matter otherwise!
+@@ -1656,7 +1665,7 @@ void dvbcut::open(std::list<std::string>
+ std::string filename = filenames.front();
+
+ // a valid file name has been entered
+- setCaption(QString(VERSION_STRING " - " + filename));
++ setCaption(QString(VERSION_STRING " - " + QString::fromStdString(filename)));
+
+ // reset inbuffer
+ buf.reset();
+@@ -1672,76 +1681,75 @@ void dvbcut::open(std::list<std::string>
+ delete imgp;
+ imgp=0;
+ }
+- eventlist->clear();
+- imagedisplay->setBackgroundMode(Qt::PaletteBackground);
+- imagedisplay->setMinimumSize(QSize(0,0));
+- imagedisplay->setPixmap(QPixmap());
+- pictimelabel->clear();
+- pictimelabel2->clear();
+- picinfolabel->clear();
+- picinfolabel2->clear();
+- linslider->setValue(0);
+- jogslider->setValue(0);
+-
+- viewNormalAction->setOn(true);
+- viewUnscaledAction->setOn(false);
+- viewDifferenceAction->setOn(false);
+-
+- fileOpenAction->setEnabled(false);
+- fileSaveAction->setEnabled(false);
+- fileSaveAsAction->setEnabled(false);
+- snapshotSaveAction->setEnabled(false);
+- chapterSnapshotsSaveAction->setEnabled(false);
++ ui->eventlist->clear();
++ ui->imagedisplay->setBackgroundMode(Qt::PaletteBackground);
++ ui->imagedisplay->setMinimumSize(QSize(0,0));
++ ui->imagedisplay->setPixmap(QPixmap());
++ ui->pictimelabel->clear();
++ ui->pictimelabel2->clear();
++ ui->picinfolabel->clear();
++ ui->picinfolabel2->clear();
++ ui->linslider->setValue(0);
++ ui->jogslider->setValue(0);
++
++ ui->viewNormalAction->setChecked(true);
++ ui->viewUnscaledAction->setChecked(false);
++ ui->viewDifferenceAction->setChecked(false);
++
++ ui->fileOpenAction->setEnabled(false);
++ ui->fileSaveAction->setEnabled(false);
++ ui->fileSaveAsAction->setEnabled(false);
++ ui->snapshotSaveAction->setEnabled(false);
++ ui->chapterSnapshotsSaveAction->setEnabled(false);
+ // enable closing even if no file was loaded (mr)
+ //fileCloseAction->setEnabled(false);
+- fileExportAction->setEnabled(false);
+- playPlayAction->setEnabled(false);
+- playStopAction->setEnabled(false);
+- menubar->setItemEnabled(audiotrackmenuid,false);
++ ui->fileExportAction->setEnabled(false);
++ ui->playPlayAction->setEnabled(false);
++ ui->playStopAction->setEnabled(false);
++ audiotrackmenu->setEnabled(false);
+ audiotrackpopup->clear();
+- editStartAction->setEnabled(false);
+- editStopAction->setEnabled(false);
+- editChapterAction->setEnabled(false);
+- editBookmarkAction->setEnabled(false);
+- editAutoChaptersAction->setEnabled(false);
+- editSuggestAction->setEnabled(false);
+- editImportAction->setEnabled(false);
++ ui->editStartAction->setEnabled(false);
++ ui->editStopAction->setEnabled(false);
++ ui->editChapterAction->setEnabled(false);
++ ui->editBookmarkAction->setEnabled(false);
++ ui->editAutoChaptersAction->setEnabled(false);
++ ui->editSuggestAction->setEnabled(false);
++ ui->editImportAction->setEnabled(false);
+ //editConvertAction->setEnabled(false);
+
+ #ifdef HAVE_LIB_AO
+
+- playAudio1Action->setEnabled(false);
+- playAudio2Action->setEnabled(false);
++ ui->playAudio1Action->setEnabled(false);
++ ui->playAudio2Action->setEnabled(false);
+ #endif // HAVE_LIB_AO
+
+- viewNormalAction->setEnabled(false);
+- viewUnscaledAction->setEnabled(false);
+- viewDifferenceAction->setEnabled(false);
+-
+- eventlist->setEnabled(false);
+- imagedisplay->setEnabled(false);
+- pictimelabel->setEnabled(false);
+- pictimelabel2->setEnabled(false);
+- picinfolabel->setEnabled(false);
+- picinfolabel2->setEnabled(false);
+- goinput->setEnabled(false);
+- gobutton->setEnabled(false);
+- goinput2->setEnabled(false);
+- gobutton2->setEnabled(false);
+- linslider->setEnabled(false);
+- jogslider->setEnabled(false);
++ ui->viewNormalAction->setEnabled(false);
++ ui->viewUnscaledAction->setEnabled(false);
++ ui->viewDifferenceAction->setEnabled(false);
++
++ ui->eventlist->setEnabled(false);
++ ui->imagedisplay->setEnabled(false);
++ ui->pictimelabel->setEnabled(false);
++ ui->pictimelabel2->setEnabled(false);
++ ui->picinfolabel->setEnabled(false);
++ ui->picinfolabel2->setEnabled(false);
++ ui->goinput->setEnabled(false);
++ ui->gobutton->setEnabled(false);
++ ui->goinput2->setEnabled(false);
++ ui->gobutton2->setEnabled(false);
++ ui->linslider->setEnabled(false);
++ ui->jogslider->setEnabled(false);
+
+ std::string prjfilename;
+ QDomDocument domdoc;
+ {
+- QFile infile(filename);
+- if (infile.open(IO_ReadOnly)) {
++ QFile infile(QString::fromStdString(filename));
++ if (infile.open(QIODevice::ReadOnly)) {
++ char buff[512];
+ QString line;
+- while (line.length()==0) {
+- if (infile.readLine(line,512)<=0)
+- break;
+- line=line.stripWhiteSpace();
+- }
++ qint64 readBytes = infile.readLine(buff,512);
++ if(readBytes>0)
++ line = QString::fromAscii(buff, readBytes);
+ if (line.startsWith(QString("<!DOCTYPE"))
+ || line.startsWith(QString("<?xml"))) {
+ infile.at(0);
+@@ -1750,8 +1758,8 @@ void dvbcut::open(std::list<std::string>
+ QDomElement docelem = domdoc.documentElement();
+ if (docelem.tagName() != "dvbcut") {
+ critical("Failed to read project file - dvbcut",
+- QString(filename) + ":\nNot a valid dvbcut project file");
+- fileOpenAction->setEnabled(true);
++ QString::fromStdString(filename) + ":\nNot a valid dvbcut project file");
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ // parse elements, new-style first
+@@ -1807,16 +1815,16 @@ void dvbcut::open(std::list<std::string>
+ // sanity check
+ if (filenames.empty()) {
+ critical("Failed to read project file - dvbcut",
+- QString(filename) + ":\nNo MPEG filename given in project file");
+- fileOpenAction->setEnabled(true);
++ QString::fromStdString(filename) + ":\nNo MPEG filename given in project file");
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ prjfilename = filename;
+ }
+ else {
+ critical("Failed to read project file - dvbcut",
+- QString(filename) + ":\n" + errormsg);
+- fileOpenAction->setEnabled(true);
++ QString::fromStdString(filename) + ":\n" + errormsg);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ }
+@@ -1842,7 +1850,7 @@ void dvbcut::open(std::list<std::string>
+
+ if (!mpg) {
+ critical("Failed to open file - dvbcut", errormessage);
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+
+@@ -1859,7 +1867,7 @@ void dvbcut::open(std::list<std::string>
+ */
+ QUrl u;
+ u.setProtocol(QString("file"));
+- u.setPath(QString(idxfilename));
++ u.setPath(QString::fromStdString(idxfilename));
+ if (chdir((const char*)u.dirPath()) == -1) chdir("/");
+ QString relname = QString("file:") + u.fileName();
+ QString s=QFileDialog::getSaveFileName(
+@@ -1868,10 +1876,10 @@ void dvbcut::open(std::list<std::string>
+ this,
+ "Choose index file...",
+ "Choose the name of the index file" );
+- if (!s) {
++ if (s.isEmpty()) {
+ delete mpg;
+ mpg=0;
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ idxfilename=(const char*)s;
+@@ -1895,21 +1903,21 @@ void dvbcut::open(std::list<std::string>
+ delete mpg;
+ mpg=0;
+ critical("Failed to open file - dvbcut",errorstring);
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ if (pictures==-2) {
+ delete mpg;
+ mpg=0;
+ critical("Invalid index file - dvbcut", errorstring);
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ if (pictures<=-3) {
+ delete mpg;
+ mpg=0;
+ critical("Index file mismatch - dvbcut", errorstring);
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+ }
+@@ -1928,7 +1936,7 @@ void dvbcut::open(std::list<std::string>
+ if (psb.cancelled()) {
+ delete mpg;
+ mpg=0;
+- fileOpenAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+
+@@ -1936,11 +1944,11 @@ void dvbcut::open(std::list<std::string>
+ delete mpg;
+ mpg=0;
+ critical("Error creating index - dvbcut",
+- QString("Cannot create index for\n")+filename+":\n"+errorstring);
+- fileOpenAction->setEnabled(true);
++ QString("Cannot create index for\n")+QString::fromStdString(filename)+":\n"+QString::fromStdString(errorstring));
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ } else if (!errorstring.empty()) {
+- critical("Error saving index file - dvbcut", QString(errorstring));
++ critical("Error saving index file - dvbcut", QString::fromStdString(errorstring));
+ }
+ }
+
+@@ -1948,8 +1956,8 @@ void dvbcut::open(std::list<std::string>
+ delete mpg;
+ mpg=0;
+ critical("Invalid MPEG file - dvbcut",
+- QString("The chosen file\n")+filename+"\ndoes not contain any video");
+- fileOpenAction->setEnabled(true);
++ QString("The chosen file\n")+QString::fromStdString(filename)+"\ndoes not contain any video");
++ ui->fileOpenAction->setEnabled(true);
+ return;
+ }
+
+@@ -1973,19 +1981,19 @@ void dvbcut::open(std::list<std::string>
+ timeperframe=(*mpg)[1].getpts()-(*mpg)[0].getpts();
+
+ double fps=27.e6/double(mpgfile::frameratescr[(*mpg)[0].getframerate()]);
+- linslider->setMaxValue(pictures-1);
+- linslider->setLineStep(int(300*fps));
+- linslider->setPageStep(int(900*fps));
++ ui->linslider->setMaximum(pictures-1);
++ ui->linslider->setSingleStep(int(300*fps));
++ ui->linslider->setPageStep(int(900*fps));
+ if (settings().lin_interval > 0)
+- linslider->setTickInterval(int(settings().lin_interval*fps));
++ ui->linslider->setTickInterval(int(settings().lin_interval*fps));
+
+ //alpha=log(jog_maximum)/double(100000-jog_offset);
+ // with alternative function
+ alpha=log(settings().jog_maximum)/100000.;
+ if (settings().jog_interval > 0 && settings().jog_interval <= 100000)
+- jogslider->setTickInterval(int(100000/settings().jog_interval));
++ ui->jogslider->setTickInterval(int(100000/settings().jog_interval));
+
+- imagedisplay->setBackgroundMode(Qt::NoBackground);
++ ui->imagedisplay->setBackgroundMode(Qt::NoBackground);
+ curpic=~0;
+ showimage=true;
+ fine=false;
+@@ -1994,12 +2002,12 @@ void dvbcut::open(std::list<std::string>
+ imgp=new imageprovider(*mpg,new dvbcutbusy(this),false,viewscalefactor);
+
+ linslidervalue(0);
+- linslider->setValue(0);
+- jogslider->setValue(0);
++ ui->linslider->setValue(0);
++ ui->jogslider->setValue(0);
+
+ {
+- EventListItem *eli=new EventListItem(0,imgp->getimage(0),EventListItem::start,9999999,2,0);
+- eventlist->setMinimumWidth(eli->width(eventlist)+24);
++ EventListItem *eli=new EventListItem(0,QPixmap::fromImage(imgp->getimage(0)),EventListItem::start,9999999,2,0);
++ ui->eventlist->setMinimumWidth(eli->width(ui->eventlist)+24);
+ delete eli;
+ }
+
+@@ -2023,12 +2031,12 @@ void dvbcut::open(std::list<std::string>
+ QString str=e.attribute("picture","-1");
+ if (str.contains(':') || str.contains('.')) {
+ okay=true;
+- picnum=string2pts(str)/getTimePerFrame();
++ picnum=string2pts(str.toStdString())/getTimePerFrame();
+ }
+ else
+ picnum=str.toInt(&okay,0);
+ if (okay && picnum>=0 && picnum<pictures) {
+- new EventListItem(eventlist,imgp->getimage(picnum),evt,picnum,(*mpg)[picnum].getpicturetype(),(*mpg)[picnum].getpts()-firstpts);
++ new EventListItem(ui->eventlist,QPixmap::fromImage(imgp->getimage(picnum)),evt,picnum,(*mpg)[picnum].getpicturetype(),(*mpg)[picnum].getpts()-firstpts);
+ qApp->processEvents();
+ }
+ }
+@@ -2036,56 +2044,56 @@ void dvbcut::open(std::list<std::string>
+
+ update_quick_picture_lookup_table();
+
+- fileOpenAction->setEnabled(true);
+- fileSaveAction->setEnabled(true);
+- fileSaveAsAction->setEnabled(true);
+- snapshotSaveAction->setEnabled(true);
+- chapterSnapshotsSaveAction->setEnabled(true);
+- fileCloseAction->setEnabled(true);
+- fileExportAction->setEnabled(true);
+- playPlayAction->setEnabled(true);
+- menubar->setItemEnabled(audiotrackmenuid,true);
+- playStopAction->setEnabled(false);
+- editStartAction->setEnabled(true);
+- editStopAction->setEnabled(true);
+- editChapterAction->setEnabled(true);
+- editBookmarkAction->setEnabled(true);
+- editAutoChaptersAction->setEnabled(true);
+- editSuggestAction->setEnabled(true);
+- editImportAction->setEnabled(true);
++ ui->fileOpenAction->setEnabled(true);
++ ui->fileSaveAction->setEnabled(true);
++ ui->fileSaveAsAction->setEnabled(true);
++ ui->snapshotSaveAction->setEnabled(true);
++ ui->chapterSnapshotsSaveAction->setEnabled(true);
++ ui->fileCloseAction->setEnabled(true);
++ ui->fileExportAction->setEnabled(true);
++ ui->playPlayAction->setEnabled(true);
++ audiotrackmenu->setEnabled(true);
++ ui->playStopAction->setEnabled(false);
++ ui->editStartAction->setEnabled(true);
++ ui->editStopAction->setEnabled(true);
++ ui->editChapterAction->setEnabled(true);
++ ui->editBookmarkAction->setEnabled(true);
++ ui->editAutoChaptersAction->setEnabled(true);
++ ui->editSuggestAction->setEnabled(true);
++ ui->editImportAction->setEnabled(true);
+ //editConvertAction->setEnabled(true);
+- viewNormalAction->setEnabled(true);
+- viewUnscaledAction->setEnabled(true);
+- viewDifferenceAction->setEnabled(true);
++ ui->viewNormalAction->setEnabled(true);
++ ui->viewUnscaledAction->setEnabled(true);
++ ui->viewDifferenceAction->setEnabled(true);
+
+ #ifdef HAVE_LIB_AO
+
+ if (mpg->getaudiostreams()) {
+- playAudio1Action->setEnabled(true);
+- playAudio2Action->setEnabled(true);
++ ui->playAudio1Action->setEnabled(true);
++ ui->playAudio2Action->setEnabled(true);
+ }
+ #endif // HAVE_LIB_AO
+
+- eventlist->setEnabled(true);
+- imagedisplay->setEnabled(true);
+- pictimelabel->setEnabled(true);
+- pictimelabel2->setEnabled(true);
+- picinfolabel->setEnabled(true);
+- picinfolabel2->setEnabled(true);
+- goinput->setEnabled(true);
+- gobutton->setEnabled(true);
+- goinput2->setEnabled(true);
+- gobutton2->setEnabled(true);
+- linslider->setEnabled(true);
+- jogslider->setEnabled(true);
++ ui->eventlist->setEnabled(true);
++ ui->imagedisplay->setEnabled(true);
++ ui->pictimelabel->setEnabled(true);
++ ui->pictimelabel2->setEnabled(true);
++ ui->picinfolabel->setEnabled(true);
++ ui->picinfolabel2->setEnabled(true);
++ ui->goinput->setEnabled(true);
++ ui->gobutton->setEnabled(true);
++ ui->goinput2->setEnabled(true);
++ ui->gobutton2->setEnabled(true);
++ ui->linslider->setEnabled(true);
++ ui->jogslider->setEnabled(true);
+
+ // audiotrackmenuids.clear();
+ for(int a=0;a<mpg->getaudiostreams();++a) {
+ // audiotrackmenuids.push_back(audiotrackpopup->insertItem(QString(mpg->getstreaminfo(audiostream(a)))));
+- audiotrackpopup->insertItem(QString(mpg->getstreaminfo(audiostream(a))),a);
++ audiotrackpopup->insertItem(QString::fromStdString(mpg->getstreaminfo(audiostream(a))),a);
+ }
+ if (mpg->getaudiostreams()>0) {
+- audiotrackpopup->setItemChecked(0,true);
++ audiotrackpopup->actions().at(0)->setChecked(true);
+ currentaudiotrack=0;
+ } else
+ currentaudiotrack=-1;
+@@ -2115,10 +2123,10 @@ void dvbcut::setviewscalefactor(double f
+ {
+ if (factor<=0.0)
+ factor=1.0;
+- viewFullSizeAction->setOn(factor==1.0);
+- viewHalfSizeAction->setOn(factor==2.0);
+- viewQuarterSizeAction->setOn(factor==4.0);
+- viewCustomSizeAction->setOn(factor==settings().viewscalefactor_custom);
++ ui->viewFullSizeAction->setChecked(factor==1.0);
++ ui->viewHalfSizeAction->setChecked(factor==2.0);
++ ui->viewQuarterSizeAction->setChecked(factor==4.0);
++ ui->viewCustomSizeAction->setChecked(factor==settings().viewscalefactor_custom);
+
+ settings().viewscalefactor = factor;
+
+@@ -2136,32 +2144,32 @@ bool dvbcut::eventFilter(QObject *watche
+ int delta = 0;
+ int incr = WHEEL_INCR_NORMAL;
+
+- if (e->type() == QEvent::Wheel && watched != jogslider) {
++ if (e->type() == QEvent::Wheel && watched != ui->jogslider) {
+ QWheelEvent *we = (QWheelEvent*)e;
+ // Note: delta is a multiple of 120 (see Qt documentation)
+ delta = we->delta();
+- if (we->state() & AltButton)
++ if (we->state() & Qt::Key_Alt)
+ incr = WHEEL_INCR_ALT;
+- else if (we->state() & ControlButton)
++ else if (we->state() & Qt::Key_Control)
+ incr = WHEEL_INCR_CTRL;
+- else if (we->state() & ShiftButton)
++ else if (we->state() & Qt::Key_Shift)
+ incr = WHEEL_INCR_SHIFT;
+ }
+ else if (e->type() == QEvent::KeyPress) {
+ QKeyEvent *ke = (QKeyEvent*)e;
+ delta = ke->count() * settings().wheel_delta;
+- if (ke->key() == Key_Right)
++ if (ke->key() == Qt::Key_Right)
+ delta = -delta;
+- else if (ke->key() != Key_Left)
++ else if (ke->key() != Qt::Key_Left)
+ myEvent = false;
+- if (ke->state() & AltButton)
++ if (ke->state() & Qt::Key_Alt)
+ incr = WHEEL_INCR_ALT;
+- else if (ke->state() & ControlButton)
++ else if (ke->state() & Qt::Key_Control)
+ incr = WHEEL_INCR_CTRL;
+- else if (ke->state() & ShiftButton)
++ else if (ke->state() & Qt::Key_Shift)
+ incr = WHEEL_INCR_SHIFT;
+ }
+- else
++ else
+ myEvent = false;
+
+ if (myEvent) {
+@@ -2177,14 +2185,14 @@ bool dvbcut::eventFilter(QObject *watche
+ newpos = 0;
+ else if (newpos >= pictures)
+ newpos = pictures - 1;
+- linslider->setValue(newpos);
++ ui->linslider->setValue(newpos);
+ fine = save;
+ }
+ return true;
+ }
+
+ // propagate to base class
+- return dvbcutbase::eventFilter(watched, e);
++ //return ui->eventFilter(watched, e);
+ }
+
+ int
+@@ -2199,6 +2207,11 @@ dvbcut::question(const QString & caption
+ }
+
+ int
++dvbcut::critical(const QString & caption, const std::string & text) {
++ return critical(caption, QString::fromStdString(text));
++}
++
++int
+ dvbcut::critical(const QString & caption, const QString & text)
+ {
+ if (nogui) {
+@@ -2281,24 +2294,24 @@ void dvbcut::update_time_display()
+ + " " + timestr(pts);
+ QString outtime =
+ QString(mark) + " " + timestr(outpts);
+- pictimelabel->setText(curtime);
+- pictimelabel2->setText(outtime);
+- goinput->setText(QString::number(curpic));
+- goinput2->setText(QString::number(outpic));
++ ui->pictimelabel->setText(curtime);
++ ui->pictimelabel2->setText(outtime);
++ ui->goinput->setText(QString::number(curpic));
++ ui->goinput2->setText(QString::number(outpic));
+
+ int res=idx.getresolution(); // are found video resolutions stored in index?
+ if (res) {
+ // new index with resolution bits set and lookup table at the end
+- picinfolabel->setText(QString::number(mpg->getwidth(res)) + "x"
++ ui->picinfolabel->setText(QString::number(mpg->getwidth(res)) + "x"
+ + QString::number(mpg->getheight(res)));
+ } else {
+ // in case of an old index file type (or if we don't want to change the index format/encoding?)
+ // ==> get info directly from each image (which could be somewhat slower?!?)
+ QImage p = imageprovider(*mpg, new dvbcutbusy(this), true).getimage(curpic,false);
+- picinfolabel->setText(QString::number(p.width()) + "x"
++ ui->picinfolabel->setText(QString::number(p.width()) + "x"
+ + QString::number(p.height()));
+ }
+- picinfolabel2->setText(QString(FR[idx.getframerate()]) + "fps, "
++ ui->picinfolabel2->setText(QString(FR[idx.getframerate()]) + "fps, "
+ + QString(AR[idx.getaspectratio()]));
+
+ }
+@@ -2330,7 +2343,7 @@ void dvbcut::update_quick_picture_lookup
+ startpts=0;
+ }
+
+- for (QListBoxItem *item=eventlist->firstItem();item;item=item->next())
++ for (Q3ListBoxItem *item=ui->eventlist->firstItem();item;item=item->next())
+ if (item->rtti()==EventListItem::RTTI()) {
+ const EventListItem &eli=*static_cast<const EventListItem*>(item);
+ switch (eli.geteventtype()) {
+@@ -2402,8 +2415,8 @@ void dvbcut::helpAboutAction_activated()
+ "</span></body></html>").arg(VERSION_STRING));
+ }
+
+-#include <qhbox.h>
+-#include <qvbox.h>
++#include <q3hbox.h>
++#include <q3vbox.h>
+ #include <qdialog.h>
+ #include <qtextbrowser.h>
+ #include <qpushbutton.h>
+@@ -2413,10 +2426,10 @@ public:
+ helpDialog(QWidget *parent, const char *name, QString file)
+ : QDialog(parent, name)
+ {
+- vbox = new QVBox(this);
++ vbox = new Q3VBox(this);
+ vbox->resize(640, 480);
+ viewer = new QTextBrowser(vbox);
+- hbox = new QHBox(vbox);
++ hbox = new Q3HBox(vbox);
+ prev = new QPushButton(tr("Prev"), hbox);
+ next = new QPushButton(tr("Next"), hbox);
+ home = new QPushButton(tr("Home"), hbox);
+@@ -2442,8 +2455,8 @@ public:
+ delete vbox;
+ }
+ private:
+- QVBox *vbox;
+- QHBox *hbox;
++ Q3VBox *vbox;
++ Q3HBox *hbox;
+ QTextBrowser *viewer;
+ QPushButton *prev, *next, *home, *close;
+ };
+--- a/src/dvbcut.h
++++ b/src/dvbcut.h
+@@ -25,14 +25,14 @@
+ #include <vector>
+ #include <list>
+ #include "mpgfile.h"
+-#include "dvbcutbase.h"
++#include "ui_dvbcutbase.h"
+ #include "pts.h"
+ #include "eventlistitem.h"
+
+ class QProcess;
+ class imageprovider;
+
+-class dvbcut: public dvbcutbase
++class dvbcut: public Q3MainWindow
+ {
+ Q_OBJECT
+
+@@ -73,9 +73,9 @@ public:
+ protected:
+ quick_picture_lookup_t quick_picture_lookup;
+ std::list<pts_t> chapterlist;
+-
+- QPopupMenu *audiotrackpopup,*recentfilespopup,*editconvertpopup;
+- int audiotrackmenuid;
++
++ QMenu *audiotrackpopup,*recentfilespopup,*editconvertpopup;
++ QAction* audiotrackmenu;
+ inbuffer buf;
+ mpgfile *mpg;
+ int pictures;
+@@ -101,8 +101,9 @@ protected:
+ bool nogui;
+ int exportformat;
+ bool start_bof;
+- bool stop_eof;
+-
++ bool stop_eof;
++ Ui::dvbcutbase* ui;
++
+ protected:
+ // QPixmap getpixmap(int picture, bool allgop=false);
+ void exportvideo(const char *fmt);
+@@ -118,6 +119,7 @@ protected:
+ // QMessagebox interface
+ int question(const QString & caption, const QString & text);
+ int critical(const QString & caption, const QString & text);
++ int critical(const QString & caption, const std::string & text);
+
+ // filename handling
+ void make_canonical(std::string &filename);
+@@ -136,7 +138,7 @@ protected slots:
+
+ public:
+ ~dvbcut();
+- dvbcut(QWidget *parent = 0, const char *name = 0, WFlags fl = WType_TopLevel|WDestructiveClose );
++ dvbcut(QWidget *parent = 0, const char *name = 0, Qt::WFlags fl = Qt::Window);
+ void open(std::list<std::string> filenames=std::list<std::string>(),
+ std::string idxfilename=std::string(), std::string expfilename=std::string());
+ void setbusy(bool b=true);
+@@ -180,8 +182,8 @@ public slots:
+ virtual void jogsliderreleased();
+ virtual void jogslidervalue(int);
+ virtual void linslidervalue(int);
+- virtual void doubleclickedeventlist(QListBoxItem *lbi);
+- virtual void eventlistcontextmenu(QListBoxItem *, const QPoint &);
++ virtual void doubleclickedeventlist(Q3ListBoxItem *lbi);
++ virtual void eventlistcontextmenu(Q3ListBoxItem *, const QPoint &);
+ virtual void mplayer_exited();
+ virtual void mplayer_readstdout();
+ virtual void clickedgo();
+--- a/src/dvbcutbase.ui
++++ b/src/dvbcutbase.ui
+@@ -1,1338 +1,1677 @@
+-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+-<class>dvbcutbase</class>
+-<widget class="QMainWindow">
+- <property name="name">
+- <cstring>dvbcutbase</cstring>
+- </property>
+- <property name="geometry">
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>741</width>
+- <height>580</height>
+- </rect>
+- </property>
+- <property name="caption">
+- <string>dvbcut</string>
+- </property>
+- <property name="usesTextLabel">
++<?xml version="1.0" encoding="UTF-8"?>
++<ui version="4.0">
++ <class>dvbcutbase</class>
++ <widget class="Q3MainWindow" name="dvbcutbase">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>741</width>
++ <height>580</height>
++ </rect>
++ </property>
++ <property name="windowTitle">
++ <string>dvbcut</string>
++ </property>
++ <property name="usesTextLabel">
++ <bool>false</bool>
++ </property>
++ <widget class="QWidget" name="widget">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>53</y>
++ <width>741</width>
++ <height>527</height>
++ </rect>
++ </property>
++ <layout class="QVBoxLayout">
++ <item>
++ <widget class="QSplitter" name="splitter3">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <widget class="Q3ListBox" name="eventlist">
++ <property name="enabled">
+ <bool>false</bool>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QSplitter">
+- <property name="name">
+- <cstring>splitter3</cstring>
+- </property>
++ </property>
++ </widget>
++ <widget class="QWidget" name="layout7">
++ <layout class="QVBoxLayout">
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout">
++ <item>
++ <widget class="QLabel" name="imagedisplay">
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="minimumSize">
++ <size>
++ <width>100</width>
++ <height>100</height>
++ </size>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="spacer1">
+ <property name="orientation">
+- <enum>Horizontal</enum>
++ <enum>Qt::Horizontal</enum>
+ </property>
+- <widget class="QListBox">
+- <property name="name">
+- <cstring>eventlist</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout7</cstring>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <property name="margin">
+- <number>0</number>
+- </property>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout6</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>imagedisplay</cstring>
+- </property>
+- <property name="sizePolicy">
+- <sizepolicy>
+- <hsizetype>0</hsizetype>
+- <vsizetype>0</vsizetype>
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="minimumSize">
+- <size>
+- <width>100</width>
+- <height>100</height>
+- </size>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer1</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>503</width>
+- <height>16</height>
+- </size>
+- </property>
+- </spacer>
+- </hbox>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer4</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Vertical</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>16</width>
+- <height>254</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout6</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QLineEdit">
+- <property name="name">
+- <cstring>goinput</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="sizePolicy">
+- <sizepolicy>
+- <hsizetype>1</hsizetype>
+- <vsizetype>0</vsizetype>
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="maxLength">
+- <number>16</number>
+- </property>
+- </widget>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>gobutton</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>go</string>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer6</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>2</width>
+- <height>10</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>picinfolabel</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="minimumSize">
+- <size>
+- <width>10</width>
+- <height>0</height>
+- </size>
+- </property>
+- <property name="font">
+- <font>
+- <family>Monospace</family>
+- <pointsize>10</pointsize>
+- </font>
+- </property>
+- <property name="text">
+- <string></string>
+- </property>
+- <property name="alignment">
+- <set>AlignVCenter|AlignRight</set>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer6</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>2</width>
+- <height>10</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QLineEdit">
+- <property name="name">
+- <cstring>goinput2</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="sizePolicy">
+- <sizepolicy>
+- <hsizetype>1</hsizetype>
+- <vsizetype>0</vsizetype>
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="maxLength">
+- <number>16</number>
+- </property>
+- </widget>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>gobutton2</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>go</string>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout6</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>pictimelabel</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="minimumSize">
+- <size>
+- <width>160</width>
+- <height>0</height>
+- </size>
+- </property>
+- <property name="font">
+- <font>
+- <family>Monospace</family>
+- <pointsize>16</pointsize>
+- </font>
+- </property>
+- <property name="text">
+- <string></string>
+- </property>
+- <property name="alignment">
+- <set>AlignVCenter|AlignRight</set>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer6</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>2</width>
+- <height>10</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>picinfolabel2</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="minimumSize">
+- <size>
+- <width>10</width>
+- <height>0</height>
+- </size>
+- </property>
+- <property name="font">
+- <font>
+- <family>Monospace</family>
+- <pointsize>10</pointsize>
+- </font>
+- </property>
+- <property name="text">
+- <string></string>
+- </property>
+- <property name="alignment">
+- <set>AlignVCenter|AlignRight</set>
+- </property>
+- </widget>
+- <spacer>
+- <property name="name">
+- <cstring>spacer6</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>2</width>
+- <height>10</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>pictimelabel2</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="minimumSize">
+- <size>
+- <width>160</width>
+- <height>0</height>
+- </size>
+- </property>
+- <property name="font">
+- <font>
+- <family>Monospace</family>
+- <pointsize>16</pointsize>
+- </font>
+- </property>
+- <property name="text">
+- <string></string>
+- </property>
+- <property name="alignment">
+- <set>AlignVCenter|AlignRight</set>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- </vbox>
+- </widget>
+- </widget>
+- <widget class="Line">
+- <property name="name">
+- <cstring>line3</cstring>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
+ </property>
+- <property name="frameShape">
+- <enum>HLine</enum>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>503</width>
++ <height>16</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <spacer name="spacer4">
++ <property name="orientation">
++ <enum>Qt::Vertical</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>16</width>
++ <height>254</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <item>
++ <widget class="QLineEdit" name="goinput">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="maxLength">
++ <number>16</number>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="gobutton">
++ <property name="enabled">
++ <bool>false</bool>
+ </property>
+- <property name="frameShadow">
+- <enum>Sunken</enum>
++ <property name="text">
++ <string>go</string>
+ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="spacer6">
+ <property name="orientation">
+- <enum>Horizontal</enum>
++ <enum>Qt::Horizontal</enum>
+ </property>
+- </widget>
+- <widget class="QSlider">
+- <property name="name">
+- <cstring>linslider</cstring>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
+ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>2</width>
++ <height>10</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QLabel" name="picinfolabel">
+ <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="maxValue">
+- <number>180000</number>
+- </property>
+- <property name="lineStep">
+- <number>7500</number>
+- </property>
+- <property name="pageStep">
+- <number>45000</number>
++ <bool>false</bool>
+ </property>
++ <property name="minimumSize">
++ <size>
++ <width>10</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property name="font">
++ <font>
++ <family>Monospace</family>
++ <pointsize>10</pointsize>
++ </font>
++ </property>
++ <property name="text">
++ <string/>
++ </property>
++ <property name="alignment">
++ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="spacer6">
+ <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="tickmarks">
+- <enum>Both</enum>
++ <enum>Qt::Horizontal</enum>
+ </property>
+- <property name="tickInterval">
+- <number>90000</number>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
+ </property>
+- </widget>
+- <widget class="QSlider">
+- <property name="name">
+- <cstring>jogslider</cstring>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>2</width>
++ <height>10</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="goinput2">
++ <property name="enabled">
++ <bool>false</bool>
+ </property>
++ <property name="sizePolicy">
++ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="maxLength">
++ <number>16</number>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="gobutton2">
+ <property name="enabled">
+- <bool>false</bool>
++ <bool>false</bool>
+ </property>
+- <property name="minValue">
+- <number>-100000</number>
++ <property name="text">
++ <string>go</string>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <item>
++ <widget class="QLabel" name="pictimelabel">
++ <property name="enabled">
++ <bool>false</bool>
+ </property>
+- <property name="maxValue">
+- <number>100000</number>
++ <property name="minimumSize">
++ <size>
++ <width>160</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property name="font">
++ <font>
++ <family>Monospace</family>
++ <pointsize>16</pointsize>
++ </font>
++ </property>
++ <property name="text">
++ <string/>
++ </property>
++ <property name="alignment">
++ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="spacer6">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
+ </property>
+- <property name="lineStep">
+- <number>10000</number>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
+ </property>
+- <property name="pageStep">
+- <number>10000</number>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>2</width>
++ <height>10</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QLabel" name="picinfolabel2">
++ <property name="enabled">
++ <bool>false</bool>
+ </property>
++ <property name="minimumSize">
++ <size>
++ <width>10</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property name="font">
++ <font>
++ <family>Monospace</family>
++ <pointsize>10</pointsize>
++ </font>
++ </property>
++ <property name="text">
++ <string/>
++ </property>
++ <property name="alignment">
++ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer name="spacer6">
+ <property name="orientation">
+- <enum>Horizontal</enum>
++ <enum>Qt::Horizontal</enum>
+ </property>
+- <property name="tickmarks">
+- <enum>Both</enum>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
+ </property>
+- <property name="tickInterval">
+- <number>100000</number>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>2</width>
++ <height>10</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QLabel" name="pictimelabel2">
++ <property name="enabled">
++ <bool>false</bool>
+ </property>
+- </widget>
+- </vbox>
+-</widget>
+-<menubar>
+- <property name="name">
+- <cstring>menubar</cstring>
+- </property>
+- <property name="enabled">
+- <bool>true</bool>
+- </property>
+- <item text="&File" name="fileMenu">
+- <action name="fileNewAction"/>
+- <action name="fileOpenAction"/>
+- <action name="fileSaveAction"/>
+- <action name="fileSaveAsAction"/>
+- <action name="snapshotSaveAction"/>
+- <action name="chapterSnapshotsSaveAction"/>
+- <separator/>
+- <action name="fileExportAction"/>
+- <separator/>
+- <action name="fileCloseAction"/>
++ <property name="minimumSize">
++ <size>
++ <width>160</width>
++ <height>0</height>
++ </size>
++ </property>
++ <property name="font">
++ <font>
++ <family>Monospace</family>
++ <pointsize>16</pointsize>
++ </font>
++ </property>
++ <property name="text">
++ <string/>
++ </property>
++ <property name="alignment">
++ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ </widget>
+ </item>
+- <item text="&Edit" name="editMenu">
+- <action name="editStartAction"/>
+- <action name="editStopAction"/>
+- <action name="editChapterAction"/>
+- <action name="editBookmarkAction"/>
+- <separator/>
+- <action name="editAutoChaptersAction"/>
+- <action name="editSuggestAction"/>
+- <action name="editImportAction"/>
++ <item>
++ <widget class="Line" name="line3">
++ <property name="frameShape">
++ <enum>QFrame::HLine</enum>
++ </property>
++ <property name="frameShadow">
++ <enum>QFrame::Sunken</enum>
++ </property>
++ </widget>
+ </item>
+- <item text="&View" name="viewMenu">
+- <action name="viewNormalAction"/>
+- <action name="viewUnscaledAction"/>
+- <action name="viewDifferenceAction"/>
+- <separator/>
+- <action name="zoomInAction"/>
+- <action name="zoomOutAction"/>
+- <separator/>
+- <action name="viewFullSizeAction"/>
+- <action name="viewHalfSizeAction"/>
+- <action name="viewQuarterSizeAction"/>
+- <action name="viewCustomSizeAction"/>
++ <item>
++ <widget class="QSlider" name="linslider">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="maximum">
++ <number>180000</number>
++ </property>
++ <property name="singleStep">
++ <number>7500</number>
++ </property>
++ <property name="pageStep">
++ <number>45000</number>
++ </property>
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="tickPosition">
++ <enum>QSlider::TicksBothSides</enum>
++ </property>
++ <property name="tickInterval">
++ <number>90000</number>
++ </property>
++ </widget>
+ </item>
+- <item text="&Play" name="playMenu">
+- <action name="playPlayAction"/>
+- <action name="playStopAction"/>
+- <separator/>
+- <action name="playAudio1Action"/>
+- <action name="playAudio2Action"/>
++ <item>
++ <widget class="QSlider" name="jogslider">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="minimum">
++ <number>-100000</number>
++ </property>
++ <property name="maximum">
++ <number>100000</number>
++ </property>
++ <property name="singleStep">
++ <number>10000</number>
++ </property>
++ <property name="pageStep">
++ <number>10000</number>
++ </property>
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="tickPosition">
++ <enum>QSlider::TicksBothSides</enum>
++ </property>
++ <property name="tickInterval">
++ <number>100000</number>
++ </property>
++ </widget>
+ </item>
+- <item text="&Help" name="Help">
+- <action name="helpAboutAction"/>
+- <action name="helpContentAction"/>
+- </item>
+-</menubar>
+-<toolbars>
+- <toolbar dock="2">
+- <property name="name">
+- <cstring>fileToolbar</cstring>
+- </property>
+- <property name="label">
+- <string>File toolbar</string>
+- </property>
+- <action name="fileOpenAction"/>
+- <action name="fileSaveAction"/>
+- <action name="fileSaveAsAction"/>
+- <action name="snapshotSaveAction"/>
+- </toolbar>
+- <toolbar dock="2">
+- <property name="name">
+- <cstring>Toolbar</cstring>
+- </property>
+- <property name="label">
+- <string>Edit toolbar</string>
+- </property>
+- <action name="editStartAction"/>
+- <action name="editStopAction"/>
+- <action name="editChapterAction"/>
+- <action name="editBookmarkAction"/>
+- </toolbar>
+- <toolbar dock="2">
+- <property name="name">
+- <cstring>playToolbar</cstring>
+- </property>
+- <property name="label">
+- <string>Play toolbar</string>
+- </property>
+- <action name="playAudio1Action"/>
+- <action name="playAudio2Action"/>
+- <action name="playPlayAction"/>
+- <action name="playStopAction"/>
+- </toolbar>
+-</toolbars>
+-<actions>
+- <action>
+- <property name="name">
+- <cstring>fileOpenAction</cstring>
+- </property>
+- <property name="iconSet">
+- <iconset>image0</iconset>
+- </property>
+- <property name="text">
+- <string>Open</string>
+- </property>
+- <property name="menuText">
+- <string>&Open...</string>
+- </property>
+- <property name="accel">
+- <string>O</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>fileSaveAction</cstring>
+- </property>
+- <property name="on">
+- <bool>false</bool>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image1</iconset>
+- </property>
+- <property name="text">
+- <string>Save</string>
+- </property>
+- <property name="menuText">
+- <string>&Save</string>
+- </property>
+- <property name="accel">
+- <string>S</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>fileSaveAsAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image2</iconset>
+- </property>
+- <property name="text">
+- <string>Save As</string>
+- </property>
+- <property name="menuText">
+- <string>Save &As...</string>
+- </property>
+- <property name="accel">
+- <string></string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>fileCloseAction</cstring>
+- </property>
+- <property name="iconSet">
+- <iconset>image3</iconset>
+- </property>
+- <property name="text">
+- <string>Close</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+Q</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>playAudio1Action</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image4</iconset>
+- </property>
+- <property name="text">
+- <string>Audio ->|</string>
+- </property>
+- <property name="menuText">
+- <string>Play audio: last 2 seconds</string>
+- </property>
+- <property name="accel">
+- <string>Shift+></string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>playAudio2Action</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image5</iconset>
+- </property>
+- <property name="text">
+- <string>Audio |-></string>
+- </property>
+- <property name="menuText">
+- <string>Play audio: next 2 seconds</string>
+- </property>
+- <property name="accel">
+- <string><</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>playPlayAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image6</iconset>
+- </property>
+- <property name="text">
+- <string>Play</string>
+- </property>
+- <property name="accel">
+- <string>P</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>playStopAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image7</iconset>
+- </property>
+- <property name="text">
+- <string>Stop</string>
+- </property>
+- <property name="accel">
+- <string>Q</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editStartAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image8</iconset>
+- </property>
+- <property name="text">
+- <string>Set start marker</string>
+- </property>
+- <property name="accel">
+- <string>A</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editStopAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image9</iconset>
+- </property>
+- <property name="text">
+- <string>Set stop marker</string>
+- </property>
+- <property name="accel">
+- <string>N</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editChapterAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image10</iconset>
+- </property>
+- <property name="text">
+- <string>Set chapter marker</string>
+- </property>
+- <property name="accel">
+- <string>C</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editBookmarkAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image11</iconset>
+- </property>
+- <property name="text">
+- <string>Set bookmark</string>
+- </property>
+- <property name="accel">
+- <string>B</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editAutoChaptersAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>Auto chapters</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+C</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editSuggestAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>Suggest bookmarks</string>
+- </property>
+- <property name="accel">
+- <string>M</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>editImportAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>Import bookmarks</string>
+- </property>
+- <property name="accel">
+- <string>I</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>fileNewAction</cstring>
+- </property>
+- <property name="iconSet">
+- <iconset>image12</iconset>
+- </property>
+- <property name="text">
+- <string>New</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>fileExportAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>Export video...</string>
+- </property>
+- <property name="accel">
+- <string>E</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewNormalAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="on">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Normal</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+N</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewUnscaledAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Unscaled</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+U</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewDifferenceAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Show difference to current picture</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+D</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewFullSizeAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="on">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Full size</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+1</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewQuarterSizeAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Quarter size</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+4</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewCustomSizeAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Custom size</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+3</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>zoomInAction</cstring>
+- </property>
+- <property name="text">
+- <string>Zoom in</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl++</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>zoomOutAction</cstring>
+- </property>
+- <property name="text">
+- <string>Zoom out</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+-</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>viewHalfSizeAction</cstring>
+- </property>
+- <property name="toggleAction">
+- <bool>true</bool>
+- </property>
+- <property name="text">
+- <string>Half size</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+2</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>snapshotSaveAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="iconSet">
+- <iconset>image13</iconset>
+- </property>
+- <property name="text">
+- <string>Save Snapshot</string>
+- </property>
+- <property name="accel">
+- <string>G</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>chapterSnapshotsSaveAction</cstring>
+- </property>
+- <property name="enabled">
+- <bool>false</bool>
+- </property>
+- <property name="text">
+- <string>Save Chapter Snapshots</string>
+- </property>
+- <property name="accel">
+- <string>Ctrl+G</string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>helpAboutAction</cstring>
+- </property>
+- <property name="text">
+- <string>&About</string>
+- </property>
+- <property name="menuText">
+- <string>&About</string>
+- </property>
+- <property name="toolTip">
+- <string>About </string>
+- </property>
+- <property name="statusTip">
+- <string>About </string>
+- </property>
+- </action>
+- <action>
+- <property name="name">
+- <cstring>helpContentAction</cstring>
+- </property>
+- <property name="text">
+- <string>&Contents</string>
+- </property>
+- <property name="menuText">
+- <string>&Contents</string>
+- </property>
+- <property name="toolTip">
+- <string>Contents</string>
+- </property>
+- <property name="accel">
+- <string>F1</string>
+- </property>
+- </action>
+-</actions>
+-<images>
+- <image name="image0">
+- <data format="PNG" length="1072">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003f749444154388db5955f68d56518c73fe7777ed333dd3f67fecb74c722ed62f9071223332c5620062d0982a88bec22888aeac242322d2b2808b12e022fb4a0eea216155de46866641bcaccd4e2b464736ecef36f673be7fcfebc7f9eb78b6dce95125ef8c2c3fbc0fb3c9ff7e179bf0f6fc239c78d58de0da10289eb4d78f5cdeeb41877a86696b7b65cd62b3e7a7f63e96a71d755f16b6f75bfd4dc98eaddfe54ebe6ed4fb636599143d70c76ce5dd3a6d6ae777ad6eedcdbd3dbd935e2aa55e7b259ed4647adfbf860c63df3c24fed57e3265a9efec3b56f5e8808280bda08cac017df0f95c26fd7ccdbf3def13de95b9a763ff8400b8df53518e3d0da628c23954af2fabbdda5b1f178c5e707ee9fd192c4a61de7dcbedd2b5006220bca40ac61a82f64e058866d6dcbb86b5d335a835260ed34d839c7df8315f67e78aae387d3899739b5b97f0aecff5b6e46c170cf10f526e28d17d730a716acbd7a1b451cad2b9bd8b4aeb95da4f069e729a6c156a6c1a5f3214327fa79b82d4d7a79ed35df0560b462d8df71099c43ebb9648aa3fb5873642d22e01cfe95d58c8f8c73cffa25ff0b2d5585adbb32b4dd7b33b72eab4304d2ab16a7cb55fb8a3694f67f70bcdeb7329de02d5dc8ce83a7d9b05e7016ac58ac15c438c43acca4ffddaf451edbd2c2ac054d1c190011989d82df7ac7ea073bfbb240d78c567c753847faf605ac5eea33efa63904e20895235410448e400b5104cfae5c4c5ce3d3736e029af0a03010923dd66f914a9a847b7b06f8f0d12c99cf5a2964358df37da40e7265c89761e0225446211f433e0bc592259f8b090a152e9ec9521aae96881283d4db5578aecb376602fa634fc8a63b1ba84d41cdc21a7a33e32c58de40e602f40dc048ce90cb5b2ee50db9bc21288584a52aa5e1519c721090c5b73ed8b3641eeaf765526e47ba8b6cdbd84c55e0520c59af813f4f5ac42509228752102921568e2816f2b9001d68983b176c0cc490544d383900e08915c6abf0fbd9128fb7d59129c285224440b12c8c5584583b22e5501a4a639a919100ebcfc64bcd9e2997a469c4d231a963387caccc7dab1b19a9409d0f4b525067a16189cf585161fc04cd6268d011f58b14b735259138468218136bc2c0902bc8fc81419da57fcb4900df5847d72f05763cba883bea276f9e075a431439b4f68863431c5b94f250ca278a0c5afb44512d4ad5a0548a2f8f8ecdffe4bcfbe6b274ab81a17fa0cc231b660e85e781ef7b2493093ccf9bf4bdcbbee74d9c4df93f9f0941dcd753f97e61b8ca734fb4fc67ba92c9097338440cb1d284514c186a824011c53151a8d15a88b5a1efaf002e6cedb80cc64bd079a2c8ddcf8fe1c42102884344b056b05a30c6608d608dc1188bd1163132b18ba51a38085cc79585256ed467fa0f0f457af9307ab8bf0000000049454e44ae426082</data>
+- </image>
+- <image name="image1">
+- <data format="PNG" length="763">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002c249444154388dd5943d8f1c4510869fd99d35773ef0c705c8329203021001827f8090900810883f003111227506d14504fc03624840204182217300423210fa641964c9be1577bb33bbd3dd55d5d504333bc7c96b3b764badaaee19bdfdf4dbd50d4f5bab36c90f3ffefa515d4f0f5433b37a42d376c4a464cbccea29661911c52ca36aa86ea271e79f39f3a3c577cd62f5f1cf373e5f00d41be1ba9e1ebcf4cab54b5071edea3e9f7ef10dcb2670e1b95d3efbe4fdc7d27d7fe3167fdebafdc1b75ffd02f0e119e194942e0ad5b0899bbf1f72f9c279ea7af2c46d2f9a0e07dcf3bb23e82691617b55d50bef5fdce3e517aff0c295cb4f14163196cb1529c938772a2c8aa831a97ac2b7df7895abcf5f64ffd2b38f15752f2c9b96e5a2c12c3f2c9cc410cd94629c341defbdf53aa5144a81f9713be4fd7813cd8c939396a307c774216266db887b2bba98f8ed8f3ba865cc32967dc8bdaf889c1131624834cb96f53a707cd212a33c8a581155421c4aca725f529607ff8d98941885b65d11ba484a424a8a88106324e72dc23a58e1ee9cdf3d87651f6ad7a88ae30693929996ccce6cca64f71cb349c56c3ae12804521272f647111b3bcfcc78e7cdd7707742104248a4a4a8da6097f5072d36f62fbffe8979488ff718c02c1342220441d5b6089f5d208920a2dbad484911cd981a77effecbfdfb0daa365c611daeb08ef698f5e23b3b35290a49d2766119c84c95aa2aecedd588802ad475a1ae613a2d98c16452502d5455011c1988ddb7799c94d5ba239bb15a45168b6ea4ea094f1f21111d1fa1d9ac1aac90edc43124d6eb407147d570cfe4fc7037eba3bb8d42fd42b29d38c4440809bc606694e2b8f7bdcff330ee63ce9bbca022a828ee5b88c33ab25eb4e46cac56cbf1e44fabe0ec21aae6f19f75db90ba35bead8e8fe78bebf7fe7e701053e2f65f87e45c46e29c0ba5f8ffe64ebfb917ee1dcee982e2ce759edaf61f121ae0ff0b36cf4c0000000049454e44ae426082</data>
+- </image>
+- <image name="image2">
+- <data format="PNG" length="1079">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003fe49444154388dd593cb6b5d551487bf73ee39378f9bf7a3a6e94b694b2bb65a1111a13a102b82edc0fe0d0a82e0d006670e041d8aa8d38238d18120522cad5207c596da121f55aad69b3ed2a4499a9b7bef39679fbdd77e38484c93b60a1dba266bb3f8f1b1d66fed15711fb1f03ed5643cfdc00dbcf96a73aa7db53d75e9a3b9b3c78f1e38c9dc9ddae47ec07137bbba7686fdd591ebd1e0de57b635ebd36f0767fb4ef0cd3b074ea2d681bf3e7eee485c8927ac78d224a6d9cad1c6e2ac234d2a586b31c662ade3d78e0f93a7fb8fd7b8f62951fb045d0b8f76deca8b873f0b2f77c217ebc169357d77c7cecdc49598cd63831c79ef738cb13c30dac7c46b2fad0a8364985f5e27f6319440d3b37875961fd28387cf3716a68137d64da7b5509486521b004e9fff83d9f926aa346b64015b3f4a7564065add20fdf8762fbf15db311bf7e0bd3b7497c7462c461c61a53032d8c3eeed1b7968ebe8aac8e737201c230a03a03ba0eca2b950e5f7aea768b60a8cc85dfb488cb118b144d172e1e073fbd83a3ecc86e1de956603be718ab8a30ed910f80a2eebc36e7a9cf9eb63349b0dac75f7020b462cce7b1aad82c32f3e4108811002f38b6d708afef65754077b60b102ba83765ee5726d2f4bb94315e5bf812d228e565672eea73ad63aac7588f558e718f5177876cf34a8412080d4b8382d7ca92d8b799b526b9cfb8f8e556910eb1071cbd93a82e43c367686a46f1c16045c42d1709cbab9911b91c31883526bc1fb60f9365c62c461c4e17da0d655c5a6cb9d6a6de9e347366d0b607a0003b687bfaecdd0ecdb4d8f4bb99917686d70ce03fb52a00ba80226d15a3022f4f674f2c2fe4770ce5396069535e96c9ea636340a6d03a146de70c896e739f4e43318717cfcc9318a4221622ac0c81a27d25856bedb3fdee6b922cf4ba45ca223aa1345034037f8216e3522dae916546968b532f2bc4015eade1e6b2d88388a4253af2f3037d746c452b10d86c7c7408621aae26ccccfd714533d31aa9ca2b33341a912630cdef93bb93e316229b5c11a431c07babb13440249d6c2fbed50dd859319ea93df32dbb117224f9ac684e011238811bc5f053b960f5e275a0bedaca05a89c9b29266b340c4d2b1344f36344054445c3e53e7eccc832c25bdd84c61ad234d638c118c15bcf70168ad403d4c8644294d912b7c9a206271cee1bd23cb0cdf7f779eeeca247fb60650dd9bf062f1dee19c238a02ce59bcb3048287c97cad17b1521aa50c6569b0d61282c77b8f379672fa0a57cc18a677332184d59193a442b59ae2bc47ac5b6bc5ede5a9a2245b6a6192983c6f216211b198da06f48e03844a8d542cb03c490860ad43298d6ab7d0457eafe591cccf2e4e4c5d9e9e10112e5eb884f7cb9d39e757dfb7f3fadaec95065a5bbc8fdeba8bfcbf8bbf01e870cbc9b35858b90000000049454e44ae426082</data>
+- </image>
+- <image name="image3">
+- <data format="PNG" length="1000">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003af49444154388db594cb4b5c7714c73ff7cecb71948c5aeb23a40e2a11a3a4137c40121314e2a6949a5ae8a248c042762163fe806cb20d014d28a19b062ca5cca2af84d0d48d4348e988265c939829d18266a2b5a3ce4c7dcdcc9d997bbaa8f7a613b559e50b67f3bbe77cee79fc7e471111de86ec008aa2eceb70f2e467dd40b79980882022a1703818da2f464450446417b8ab6bc00b0c8918014551bd0e871da7d3898890c9e8e87a867c3e97044644647872f2bbe41bc15d5d037ee096aaaafe8e8e36fafa7a686e7e8fe26297e5138944191bfb8d3b777e2697cb6a22323835f5bdb62f78073a5e5e5eeebd74e9739a9a0efd6f1fa3d118376e7c43243293047a1e3efc41db05de297fbcacaccc3f3434484d4d05f9bc81cda6ee0935bfa55219ae5efd8ae7cf7fd7809e478f7e4c8a08ff8d1a5255d5dfdfff0145454ea2d1183e5f159595074824360aece5cb182d2d3e9c4e3be9b4cec0401f1e4fa95f44864c98051631028d8d0d54567a595fdfe2c489163c1e37151507a8ababb6a0f1f83a67ceb403505f5f8bcbe504a0a3a30dc3300226cf0eff5e294551bd0d0d75c4e3eb002c2f2768687003505b5b81ae67d1b459ce9e3d6595b8b4b4c6eddb21161797492492d86c36efd1a31f760321fb8e4fb779a5e2f1bf01b87bf7577a7b3b696eae03c0e7abc6e7abb6a02f5efcc5e5cb5fb0b5b5659d399d2e72b95c371052cd293a1c0e36363689c7939605836368dadcaec1ed050570bbdd980fc96e8201d6d692bcaec9c967f8fd8d0567f3f3cbbba00086218818afc000998c4e3c9e28703c7ebc8df3e73fda05387dfa7de01cd7af8f169c6f6f6f5a499aad08e97a065dd7c966b364b3593a3bfd5cb8f04941f9f7ef4f17c02f5e3c87a22896a5d36944246481c3e160289fcf2553a914369b8daaaa7709043eb520d1688c2b57bee4e6cd6f79f0e04901bcb7f71476bb9dcdcd0df2f95cf2d9b35f5e817734924c2670bb8bc864328c8ede03607171956bd7be4655554a4b4b181dfd8989890800131311a6a69ee07617b1b21203183161568f456458d7337db1d88afff0e146342d8288303bbb80aaaa949478ac0c82c17b2c2cfc49383c4d498987a74f6748a5b63560d8f4295842ededfd7e11193f78f090f7c891261c0eebbf7b4ad7b33c7e3cc3fcfc1f49a0271219dbbd844cb5b57dec17915b6e77b1bfb5b595fafabd37dcdcdc02d3d31a1b1beb1a306842f705031c3bd6e705860cc308b85c2e6f79f93bd4d45423222c2d2db1baba423a9db2167d2432f6e645ffba76de7eb7886018793330644e7f2f59e0b7a17f00e0d8fac4fa42f0780000000049454e44ae426082</data>
+- </image>
+- <image name="image4">
+- <data format="PNG" length="1265">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004b849444154388d8d955d88954518c77f33ef3be773dfb3c7768feb6a9d5d9508d3cace6620954561a17d5c284816045d08095d481041d145f421741174215ebcd15d7491640465a5141126921edbccec83d6cf6c77cf7e9d733ce7fd9ee9e2acbb4b59f9c09f19e699f9f19f676618c17f4465e7b0025302dd8f31393080f1307a54e9c6f8517763f86f6bc57f40d703dbc0ac455046a83c003a6863920bc0b0d0f1be8a79f7b0ebbac9ff822b3b875782d885a59ee8cae78a4b7a0bb2af27c34dbd4db22ae1f7a92ece8e6b266a353d55f73c1d7b8795b9fcdaade6fd23aeebc6570557760e0f80d84baab069ed8a2c9bd739dc728361715161c9ce54034c37634646230e547dbe39394de8354ea7f5d40b6bccbe0357e0d6df9ceee92a141e7a6c7db778eabe2c37f65ba495459440181bdefc38a4b25c6249416fc1e6960145df22c59971d3dbf0c51d93667975d350f662b55a3573e0fe75cfec26e53cfef09d45f1e89022a524616c08a28ef61e4c786d7b9637f607dcbcd410c406630c4baf533839257eba98f4f8a1514b397170686828b23a6e8faf17567af76d2b0b994d15859410461a3fd204b37afa812e2c29d8b0cae6ad4f22569612fcc810c6868192623a2a707eb435584b6e18eee3f419abf2cc3105ec721c67c3036bf36251170491c18fe6dd0691e1fa520adb12d896e09e55367bbe4858568c0922c35dab0b6cb8d9e6a3238d54cb8f232bae7f238112b0b650e896c54c4ca395506fc5ffd0d7c3751aadcea167529257b66538f493e287b33e00712268b2446ad4ea8628976da01f21cbbd8ec00b355ea8f96dd2b9eadd3e743ae0f5ed12654bb2698b17b76478e3c34e4e23c0ce83b0fab152651bc821d3f99c8a9869696a7e372f6fcde0e4acabc21746316ff1d2d6dcfca31002643a2b348ebc32d8f0156375c9c635e69aa057a23b37ff14c45caba504e3a183f6582bcb997a81937f285a81b966b01fcdf7050612df17260e6c8c1e052ed4db7a7922b27cfa034c7b06276380ce86b4e908e0b9cd9051f3b077be82671fecb80dc3004c322e756bd456ba311e59c56182a9bb5561a914c0f1912bcb128258126b819381e71f81b4ddc978a1c1fdd270e07bc3b30f5a80418493dac6ffb568cefd298fba1b43a1e37d4950afab649a52aec5e2055ae63419e86ef2ead6987b5781982de4be233ed5df2ed3976fcd9a30687fba9549c60e765b135312a062de3dac63ef83e64c8dee549b52cea394f728e53cfaf21e7d5d6d6e5fd1b11a449afd471afc38d2989b033072c94787f52f6f9287be059a1640b55a35d7579e1c092256699d0c2cebb1442e2d482bd3916de829d82c2e2a3e3fde60f84c9b94dd191744bcbdff927eef8bf3c77a92537b8be2d2a93930c0c315353969cac7ea9ebdbad18e079d9ce23ac726a524295b70a116f2cb459f0bb510650b940513f588932375466b8d63a5f8c4eeb2ac7e074cb8ae9bcc81abd5aad934949b9a348327ea9e95abd5a3c1663b4e65ec58e4b33602811f6a8c49989c6ef1e3d9b6fef97cf3f2cc4ce3b39ee4d4de59e8b8ebbad1c23b3d173b76ec9040fe245bef8f65d7168d5a2da5e877b25616a0e925be4ef4b88dff6b26193b385bd33160e65f7f90057001a4c693c1624394cb58a9b20047a0a5307120756bb468cefdd96d4d4c014dc0735d572f64fc051ce25446f3d12e580000000049454e44ae426082</data>
+- </image>
+- <image name="image5">
+- <data format="PNG" length="1269">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004bc49444154388d95955f88d45514c73ff7fe7ebff93fb393bbab8de4ec6e521266c96c45d24b051256f4606551d09b903df5564f051148f45411423f28a2871e92880a12ac20ca32dac636354b526b35dd9dd999d9f9f39bdfdf7b6f0f939659465fb80fe79e733e1cee39f75ec16554db35ef8099045dc1981c18c0f818bde8e85ee36b776bf46fb9e232d02dc00e309b1154114e1e001d0e31ea34302f74b2b7665e3fe0baaefa4f706dd7fc7a104f62398f14f2b9f2951325b9663cc386893e594771a25de0978666b9d9d4edaeefebc43fe098c1f33798b7bf725d37f947706dd7fc14883da44adb365f9de5ee9b8b6c5a67585d76b0e428d4009d7ec2c9c5988fea019f1fee10f9bd6369dd7eea7ab3f7a3f370eb6f95be5a2895eeba6fcb9878ecf62cd7542cd28e45ac204a0c2fef53dc3805520a264a369ba61cd65ce170aa61267a81b8a96566eadb66b367eaf5bab900aedcfcf86e52c587efb9a52c429d61f3d40816c6a3f5c667f0dc43195e7c3fe6da358a3031186358bbcaa19873c40f67d4781019672d87f6cfcecec6d6a8da6fb7082bbdfbc6f5a5cc8edb326cbf35cd522762186ac258f3ee9cc5b30fa6914270c7f53627ce0544b126880d51625855907891cd42339e6eaa75f36b3876caae3d3ee760cc8e423e53aaad4f2184219fb1e8fb9a20d27cf17386e71eca5ce8436325a6eb5d3c044a1b365414df9f4817dbadc2f6463c7dd0062681cda5d2982c671286c1e874067ec2c153399e79203d6a9a31fcd68af8f6f880283123a0329c692b0e2f96e9f939fa14a46665634f54ab365041c8ea4451e0479a813faae6e0a9dc45952a0daf7d6280fc25333f35019ffe9806db066155b052551bc821d3f99c13b3e2694a790d701114c0b6c4257be735084058f0f11101329d159aa27dded90b1c96ba86525efe63f2e554c8c0d4e49f9742a0a50dc64787c3252f8ba732e48aff1fbcd4852f7e0281011504c224a18dd18bc0e9ee50cf2891c58b47c1cfbca37962abe4caf2c8f62378f22d5858be142c2484114451084635a4f616a5a37b0d609eb0ad1dcb60cb51c717960d2f7ca068f6467636054fdf07abc76010429868b45668ad305a91b215226a699be078d9fc7a4e7eed6e8d844ef6aab0db75548772260060223ba4b3e2f1d2871eedc1a8a13393f0ca639a99729f75a501958247a5e0b13ae7e1a80e3ae87819b5b47fcc5a6e5b00f7d6e499b3dc30234c327bd5b8439418ceb67cd2324625310bcd986bd6a6c8a625694770e0c80a8554423e959077126c1173fa5c8bd0ebecdb24de7b13685800f57add5c557bf46418739d17245361ac45ca16a41d43da31049162a119b2be92e693effa7406d1c8671b0431c7177abad5eece8daba37bcae2ec51a07fe111baa7e6b45aa63ad7f5ed8dbd61325dcc39ac2adaa41c49ca164489e1d0099f562f21650b1c0b96bb31874f76596cf6e6269343bbabb2fe0db0ecbaaeba00aed7eb66db6caedd32d387babe956b76e3e9fe304965ec44e4b336b6944801c6285a1d8f23bf0cf58f0bfdc1ca4a6fdfb83abae70f68c375dd7834cb7fd3ce9d3b25903fccfd7726b2b05de36c9452548a592b0bd0f755a0956ed804c7336a69ff06f9f197c012b0f2af3fc85fe0024835d474b927aa55ac54554051a0a5304928b5b75836bf9e1bb396db401ff05dd7d57f65fc0ec7b360d35ae88ae90000000049454e44ae426082</data>
+- </image>
+- <image name="image6">
+- <data format="PNG" length="1205">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000047c49444154388d8595db6f54551487bfbdcf656e9de994164b118602318454a04e4583899760d454a289688cb7f856020f24bc10ff0025fd03d4f4e1280fbef4411e4d30627c2148086548ad8821b140a9d2ceb4d39933cce5dcf6f661da424d8b275959679fbdd7777e6b65656dc1639efc89490bf466507d689d040de8265acd59ca2d5e715ef3378a158f811e02de073d882087b0520028af818eee01934285e7f2faec25c771a2ff05e74f4cee06710ac3faa82395cc6ee9c9c8deee387b7a6a24ac88bfca1ddc292a164a2555ae369b2a6c5eb2f4832ff6ebf1cb8ee384eb82f32726778018c3ce0c0fee4af0e6c134fbb66b9ec85a18b27d54034bb590e9b980f3851617a796f09beecd982a7ff6b43e777e056efc47e9d71d99cc1b6f1fea149fbe92e0a93e839865f0cd4f15f66e8fe1871a3fd41852d09331d9b7c3a2b7cbe27651f7b82df1eca2de59181e4acc160a05bd0aee3b787c143bfdc191e7b2e2ad210bdb92f8a1c60b34efbc90e5ab1f16d9b5c5c2f3155ea0f0428dd69aad9b2cd2494bfc311b75b77c6d6de5fa85a1a1a1c068abbd764818b1d103bb33f1e1bc8594e0078a56d0866ceb89f1e2408a93df699ec90578815ede6f67b0a94352f74d664a417f29da3ed9cbcddb46fef884059c4aa7d32fbd3a98125d1de0059a56d056eb059add5be300bcf7bcc1e971c1de2dfe9afd56a0b00d9fe97965d75b616084d58b26b01918cc643a65361ee2d6e5461d08c0f8499b0fbf84a3075ca248335b8e989acbe23693d4e8908aca802b723913e843c85c4f5ad0f4154d5fa197db65c5af0fcfb0bfb7c2e4df2966dd7646982608a30fc3ce4920898ca5925640a5ae701b0acfd7b47cbdea3752fedb7c965223b9fa4d0801329610905ecddb6d59cc57254557526d4a2a4d837b95185767528f2d8b1f190841db567e809226e826ca6bccd713d4a3783b7f4023a8f9367a7dc100bc3efaf05d88761451ab2574e899683507dcab36d4ce4824d6046ae486d3e4f019089627846980041e343dd05151aafa9cb4945b0426f1caca3234f623163322d6937cf80c8022694524ad88b819619b11c25f5426ad5b597df7be79c579cd1f3a76f95ce4553fb1a2445757da5e23526980ccea7a64acc6b63408a157cfb5e7878f6a2dd513d1fc854e63a16c02e4f5d94bd7c291ef6b95d2b1feee2e62a678d86f3c049ffe769eac0dda5ea969fb8c176a662a4b28bffacb1ef9f3af40cd0028140a7a5bfee3692f60af52d18e27bb0d918c0962962666695ede97e6f3f1fbc4ccf63a6eb77dccd408026ecdb86ab15c9de88e6e8c65c53f3756c10047f2d6e2a2ce4d549be680db08fbd3498b4d6913db925cbe59c736c51ab30c58a8064c4d57992bb9139bc3eba33959b80a2c388e13ad820b85821e1e4a961775fff56ad34896aa417fad11da713314a9848929255280d6118b4b757ebfd3507fced41e542aee8fddd18db16568d1719c00d669a691911109a4a678f770283b8e2aac0129455f3a6124006acda8a522553469dd8a47f317966b3a0f5436bc411e810bc02e46fd5957e47218764e405aa0a4d0a127557d2eabefdeef3416ca400d683a8ea31e65fc0b65f3416ec3c8f69a0000000049454e44ae426082</data>
+- </image>
+- <image name="image7">
+- <data format="PNG" length="1073">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003f849444154388d9595dd6f145518c67fe7ccc7ee6c77962d2d1f8bba14d1340621b82b26dc1063a206895e60421413bd2a813b132fbcf24a13fe02c3c524c43b2ec444632244888951c48fb24d459410a87ca56cb7dded7eb03b3bb333e778b1b4b648b13cc993c99939f37b9fbc6fce8ce0212a1c99b440af039543eb146840fb6855b654b3f28bf772b8d2bbe221d0ddc001d03b11e411d600002ae8a0e35bc0a450d1c9823e7ecef3bcf87fc18523935b41bc8f611d4c0fa4b21b873372c35092d1e1168e1573ad96e67a4531373bab6a0ddf57917fced2773fd9a14f9cf73c2f7a20b8706472338863d899bd3b9f74786d97cbf62734ebb31686ec6fd5c07c2b62aadce354a9cb0f17e709fde65f0955fbf0597df2d402dcb82fe9a7e94ce6d53776af11efbee8f074ce206119f4620823bd68430a863326db375b6c18b4f8bba2879b5df17c556f29ed2d3ab74ba5925e04e7761d3e8aedbeb5ef85ac78bd68615b9230d204bdfb1c2a829e2288345a6b36adb5705396f8f3763cd40db5b5898933c562b127fa692fec1646f29b1d4fadcd1edce3e03a926f27fc95e6ba4caf3ce7d08b345ffdeaf3fd44a56104d3ef6de78bd366e1f0b885d607d203c94c61ab4dac148db606e0a3b7d73f14faf1890a9d40d10d15a3b998dfaf25dc5a35bdbfd21bf9d904d6013b339935329b8c68b6e5aa922ee8b31f130034fd142dd25251dfd614f9bc09e410323fec0afc50e1878a7eded515102ae46a2dd35f982608238761e74d20854c0ca4ac1ef5b6420ab0cd15cfcd325d9b4b2e2f2204c8842314aeb970b3d9b59869680c09aeb33a30c0d55a06b1b05ddf2b809226681f157466da0eed38b9f850af7cda1fa83e5c43dced0a1d05265a95815b8d8eda120be791600b328dfe44eefa01e8b82255bb2c2dd5ac0093043565191a7b8957aba419639b3122ac2a93ee95acbe714700140f9ddf23ecf497b9dcc6c141d77ea42618122205f3ad90f2f474cbe95efe60549efdda0428e8e3e72e44639fb7eab3874686064998a2ff795a087ddf70342c1b5810696ed6e75161e3bb5179f627a06500944a25fd78e19da9a0c7334ac59b1f1b32442a214858ba6f73f93569ffbb16f4b872b3a9aab5c6f8507ce958564c5f5a0403ec2b58d5aace8f377c735bb3138db8298bb5ae896d496c53fcc79601738d1e17a71a94679be3eba289a37959fa0d98f33c2f5e04974a25bdb798aa55f5c844c33752b38dde48ab13d9493312038e8929255280d631d5f9367f5cefa8cb375b77ebf5e6e9a1f8d2b17bd08ae779bda5dd5bd4d8d89804062ef2e64b914cef5758dba41439d7311c80961f7755ac2a26dd2bc978e6ccbd9ece00f515ff204be002b02bf148b629f2790c3b2fc0152829741448d52e67f58d3b6b8cb91ad0027ccff3d452c63f42b8e4bfe27a6d4a0000000049454e44ae426082</data>
+- </image>
+- <image name="image8">
+- <data format="PNG" length="833">89504e470d0a1a0a0000000d494844520000001600000015080600000042201e950000030849444154388dad554b48545118feeebde7de73ee38a835f9b642522c88287a1818452ec240a2859bc485ab36b6b24d2d0c373192e0628488088c5a644424f84ca1262d7ba8898f1ec3cdc60a4d449bd161c6c7bd774e8b74e63a0a957a56e7fbcff9bfff3fdff9cf7f30f265d03bfa75b442d3343bb6700835ad55dcfda315677717cf1cdd71d20553a8cbcbcbf36d9af87ae355dea0dd060024b13414a416050e25e4df92c2726d6161e1e48689af3dbccc9f7cbfbbca184fb6217ffb9985fdec583d31959a929212ef7f135fb97f89b74c3e58651405119430242a0e1ca0c7f55d666e83a42bd5e5e5e51fff99b8e2ce45dee97b1c354000250c4c56c1880a26abb0937864ea39e184d994461e129d9595957d7f252ebf59c6bb824d11525952a0ca2a18b145c8555905936d50251be2fc0e6082762cfa0ca761186e97cbb52eb1b8b4b818014492410983421828a1a08445b144a1c814529a89b83c7e26e1a0f25cb4e355595959516969a9104b2ced2fc8ad9a14c64044021623019359744e56e378871d69fb927626262794cc0716cea72765f8b3b3b33f699ac60140da776a4fd52ff9e71a67ba1e96d54870ba2c9123d981bd87735233b3328a4381f90baa6c9b4f4f4f1f91724f645505ed3ed0d8ccac99c79e64055be629292938927fd841157a6eb06ff83431757359cba8a6744553c24025165957aceb844291a27bb5a1513c6bead2867a876f70ceef11430f479c9558722b96d606572405236f3fe345f3cb41cf90560de091c7e33101809886b9d659b238af21a320828c01f730ba5bdef48c79be3901b478bd5e6ead0a62ea26d4d8d25ac196a352c2208609deb50fe0755b6fc7c4d8a49373ee1e1f1f5fb78e97358e8b385b355d09c67511af5a7ac36fdbdf374e4fcc38a7a6a6fefaf2886198964ba19607c16086c278d1f646ef7b3ad8303b3d57edf7fbffb957fcc958a2ab2e6c6956474ff3c0c240e7487d686ebe26180cfe77778b949b422882530be86eea0f0c3dfb7c6b31b454abebfa86fb31310c1373e3217435f5cf7c707f71194b461d804dff20b025aa5e41142a006ce99ff71b822c25ef1cc11d000000000049454e44ae426082</data>
+- </image>
+- <image name="image9">
+- <data format="PNG" length="373">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000013c49444154388d9d53316ec3301023650d1e1ca09fe81ff3b4ee9933b443f2888e05a273635d3ac44e6d59d239316088902d82e451fc3a1cc2efe9d4aa2a628c88aad0181163c4b4a7aa50124ae236ae739cee7d5fafe27f8ec7b6dfef917b08c003a0f768ba0ecd6e073fae296eba0e7ec41f974beb44244bba789a061c5f789fc59c61e97bb810429d945c1d2ce239b1a97824c68c64851307226213d3395361fafdaed888620b61eae09e714d31991f96f7ff1164dcd851e406b76180c18ae2a17443dde60e44a41ec55685d91e17a3a8f4d7725027766e616f35acca851986a17cf35ee9efe4066459b135a02c9efe230bad209fab58120fc87c2be8dc528155b1c40d8b5124d7f4d94b0212aecf29b60e971c4c5100707abbadf3350664b9010957cdf7d50192e01b19dec9f6c13c11a7b6332b0afb9fe7b3fc019ecf96bd7521bf4c0000000049454e44ae426082</data>
+- </image>
+- <image name="image10">
+- <data format="PNG" length="934">89504e470d0a1a0a0000000d4948445200000013000000160806000000229da77f0000036d49444154388d9dd44f6c14551c07f0ef7b336f66763bbbed065acac26eb1b661a156a84ad51e48c1602d280910c2416b1aa2de4c6ad2a6dcd10b07120f7a68e2c5c4b426481aa3ae1a352458a45a3090b45ad20d290bd49ae54f77bb333bf3fe8c879542c91ed8fe2ebfd3fbe4fb7ebfe44750a10607078994f27929e57e29c52e4bf39eb6985f4f204d2e94724a72f96e5ee6f2cb3ccb399fe59c5f15429c278f22c3c3c3504abdcea877727be3cd9ddb1a7348ae2fa1264441a8056826402d105aee058fe1568e20734be0e32f3293e4118829a53ee988cfbdbb2f358d1a8b00ff3f0235b1e486902f99209421629ba88b8640b487f02bef9cfb430780a1a12128253fdb9f9aeceb6cba5e4e414cdc754248ff598f4b99d07c6e29981242fc2b844f382fd65b4ca59a36b2547b6b547b69c70670cea1038052eaed979ba6fb3a93198098006598b91dc3c84f89e9828bf79552e7ce9cf932787cb65d5d5db517afe4ba3f1d9d7d4308619281810116359dcc07dddf260c4303a116160b117c78b6f58ae391dda3a3a3f94a4baa54ba94b2b763d35cc26004843080309cfd7d43502ce1f8d8d8934300408510bddb1a1700a20384c1e106a6e6c217a49497ab810040872a3d178f3920d4002843e69f30dc92f8657c7cbc5a0b3462149b744d030803888e85fb0c9cf36b554b00a84ebce803089461d925e09cdf5b1326a40428032803210c410070cee99ab082132c3d183e888eb045c0395fbf266ce14e302f82722a5086cd0d3a7cdf6f5b135674f9a5eb8b2640cbe9525b423075d9dbd656bd477ddf4f4f4cd3956f9a8681575fb4b70b210e568d09217ef8e6823feff2f2364118de3b9244434c1f4924125babb01ab46c36abecdafa9c5bc2e1ae67eb006ac00a85b0fb858df6c4e5c5b796ddc0678ccd7a9e57aa00ac0370c460fa69c6f4530400dadbdb2184f8fc44ffe6be63af25016a82500bbe6418fb6e0e5f7dffb798ba9a9db973af900d82c00310696c883db5a3adb979dfde4e7af4500f0ebd79c259398e2d2d2d4c083e72ac6753ffd0f19d8844232b28a8898098c817157ca9c1b66b11b6a3abae6f6777bfb3ea6cc7e37108218e466bb48f0ef7b4b61ed89342c7335b6085ed5530a8050586cc7c0ebf4efe85afd313eac79f2fa6092a946ddb544ab987737e8052ec4ac663cdb13a7b9daeeb8c8bc0cf17dcfb376fe7b28eebcd00f80d401ac08dff00c10a6928577ebacd0000000049454e44ae426082</data>
+- </image>
+- <image name="image11">
+- <data format="PNG" length="933">89504e470d0a1a0a0000000d4948445200000012000000160806000000cd5fcc410000036c49444154388d8d944f681d5514c67fe7dc7969fe27d6e43521312db54d17a205ff202228ba5214172e34ba2f15954211d195202e14290a826b45d04d715145ab2b1782d406425bb158c4a64193e03398e4bdbce4bd99b9e7b898c94b0db63870b9c35ce63bdf77ce773fb9e7de87db59aeb839ee8e79b1ef2cdb3e73276d8837e7cdf21fccece36bd7ae5da07c646c6ac65756ab8808228a6ab14442b1aba2e5f7e2dd49f44f12bfe4d8c27b66f6eae2e2a22beec00e48127242c849424a08294133541d112d57059729f2e42931bdeb15337b0940f64d3eebab8d714494deee7526467e9c37b32b6656483553331fcc63ef91cc0fdd12f53e5442c9cec81a1f5eb5b8797b021495541171ccecf4e5cb975f63d7b37ffffe4ab0d95348ff09c29da828a209c8e841b3f921dd065251440433db8d01c0c2c2421663fc88b85c161654047730b35000a9202200c418ff1308c0cc869d4a59b4289c67b59abbaf260e254d056ecca85aadaa999da854a64b364aba35479ead7d52afd7bdd3a3eba48d4e4d4d1d3533ca8607333be4cef1d0fde0a3a1720011256dfdc4c6ea1773eefe26805427677c2b3d88aa12748beee4223838803b8e800c11baa6d1a48a657fd0daf8ded3ad5f3e057fb9d168ac03148cb4d08c0cd0f6874a03868e19a53469abfe15ede67973f737628c6f6f6e6e76fa20d5c9194fe374f9534ee0771010044410029aec25e91a472510f3255a1b7334ebb357f2ac79324dd3b305d0c48c677ea4b81a2c11f233dfb9fbd7db3d32b32e333b8c0c3cd933f8c848dfe0038806dc365859facc37d62fbc1e637cf75fd2a498da6cad563bb57b6a7d7d795f7de5f3f72daf1f1b1e7d02a90c337ee04559bcfac13b8db58be795ff39fe66b3d98c311e5f5bf9f65c8ceb8808aa81b1db9e17e064e9ec1d43de0808a0dd6e7b8cd999d6e67c99104a77ef0495aebdf7ab97d2b67d7433679785fa552b9db4105142e8e94fb6234444f19b4813915e777f2ce91a79a17ff08e8e0a1127cbd69693a24752dc37dd83b3e7586f5fe5e922421c7757a8f4856468a4b7ff70b875ec7142d2d329de589b23e6cdb3323af19c57baefee98ae687ce8d0de49ccebcf0bc3a6ed1abffdfcd64ada5e39da197fe746ab160c4550dd91ad1df70b696b99f5bfcff1d7f237bfc6bcf90cb0240303fbea2e7b76857f918e38504e5300f798e579bd66b17509f812380db401fe0179e9cebb2a5ad4cb0000000049454e44ae426082</data>
+- </image>
+- <image name="image12">
+- <data format="PNG" length="539">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000001e249444154388dc594bf6e13411087bf995927560402040d74e900512024c42bd0d0512221f10034888217a0e34ddca54993741469282841a24041427420127cf6ee0cc59d8d4f3efb1c37cce974da9bbd6f7ff3ef2422f8f0f14ba80a5d369966a69329a5383f7f9d01f0e4f1a3eecd0b96005485fbf7f6979c1ec1b8cae4ece4ec7c3dfdced52b9739383c893eb8f69d6c2aa80aa6f5d6dd9d010f1fdce1e0f024b606ab08664a32c5522d706f6fc88deb97b87b7b7f2dbc5731802c043ddc359229b76e5e5bab3c6d06aed37174fc9ea3e365ffbb4f9fe3d5cb67ad9cf782558588404578f1fc2900a5144ebffd6032cd4404a3d168f9bb4d15039809a5147e9ffdc1233053d4ba11bd8ac38388c023383faf185713722e0c873b84434477fdd6823d825c9ce241ce8e7bccd527333028eedb29aeaa52e792405518a48499528a1311947241f06cea8a07aa8a37ca5405096da9ef05fb42bec655c6bd56094df889b9c2648687b3aafe2d7035c92da78a80817b904c99798380ece08a5ab7e2d671b270352fe82c7af34e8446750fb87588d480791a9ba7aa2222f35ba51bb1d1806c63ff09bce657be6ae266b6b2dd887aed1ef33580bbd75dd1c05715af05de19fceb9d19b0b813d1b49c28311b0e0a4120b93bac0460a6bc7ef3766d6817b5bf762fef4119a5327f0000000049454e44ae426082</data>
+- </image>
+- <image name="image13">
+- <data format="PNG" length="895">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000034649444154388ded93cf6b245510c73fef75f7cc744fd6cdc6c9925fc45d4312300103eb25a0110f5ebd2f83785010f412043d08fe11dec4837791c57f40f0e2c143302ec9921c3271421cc3984c8699ee4ccf7bfdfa3d0f9b6967d7f8176841417575f5b7befdad2af8dfae4d8c825aad562d954a73d65a757979f987d6da3c5fbcb9b9f9200cc3ca78cef77d4f4ae90bf1142e49927ea3d17822b6b7b757161616deb2d63e0456009565d90f9ee7ed010ec05aeb2a95ca4bf57afd3d29a5b4d6e29c03c03927f2dc0a630520383bfb7df0fda3ef3ef3d7d7d73fadd7ebef0b21843106630c799e7f90e7f928462985d69ae1704818860821504aa194c26419da7aecb64a1c9d295ebd9bdf2907deb21f86e164a552115a6b00f23c27cb32b4d61863504a311c0e999f9f278a22acb5645946b55aa55c2ed36eb7b1cee11cdc99b054cbce65c638df5aebd234456b8dd69a2ccb9e014ed394a5a5258220e0f0f090c16080520a6b2dd3d3d3d46a35daed366fbc3c8114923f3b6072871fc731fbfbfbf4fbfd82ad73aef8fdb5b535cae532cd66937ebfcfeeee2f743a1d565656499204630c954a856e2f268a228cc971cee11b634892a42832c614c04110303737471cc7f8becf575f7fc393df86dc9eacf1eda32ff9f8c377f13c8fc5c545b22c23cf73468395ce39acb54572dc8320200882eb010ef9f1e763ee6d7dceeadb5f70555ae7f1e35fb1d63292b2d7eb11c7315a6bfc11c8a8c1b88fb6c25a4b1846ccdcbd45394af1ab9ac95b39b75f78112104c6185aad168d4603a514ad56eb29f0f36c8d310593388e29954a54ab553ef9e8217b8d9ff02f2abcb3758ff557561142e09c238ee3e27be06fe09ba4504a717070c0c6c6064992f0e6d616af3d48e8f57a0cd321e970481445f4fb7d3a9d4e7134802834be490ae71c4747479c9e9e025c0f38474a0fcff799989820cf734e4e4e18ddc135b89337818d1c406bcdcece0ecd66f399ad114230180c383e3ea6dbed22a5444a8910022104fed4d4945c5e5e264dd3428e7169c663a554c1caf33c7cdf67767696999999824cb7db15171717d237c6ec799ef77a1886de680bc6b761fcb9dbedfea3e978f3eb9bb832c61c89fbf7ef57a3285a96529647ca8f0d817fcbdd5403608cb93a3f3f6fdcf8f2bf697f015a83baa7c09980510000000049454e44ae426082</data>
+- </image>
+-</images>
+-<connections>
+- <connection>
+- <sender>fileCloseAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileClose()</slot>
+- </connection>
+- <connection>
+- <sender>fileOpenAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileOpen()</slot>
+- </connection>
+- <connection>
+- <sender>linslider</sender>
+- <signal>valueChanged(int)</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>linslidervalue(int)</slot>
+- </connection>
+- <connection>
+- <sender>jogslider</sender>
+- <signal>valueChanged(int)</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>jogslidervalue(int)</slot>
+- </connection>
+- <connection>
+- <sender>jogslider</sender>
+- <signal>sliderReleased()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>jogsliderreleased()</slot>
+- </connection>
+- <connection>
+- <sender>editStartAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editStart()</slot>
+- </connection>
+- <connection>
+- <sender>editStopAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editStop()</slot>
+- </connection>
+- <connection>
+- <sender>editChapterAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editChapter()</slot>
+- </connection>
+- <connection>
+- <sender>editBookmarkAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editBookmark()</slot>
+- </connection>
+- <connection>
+- <sender>editAutoChaptersAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editAutoChapters()</slot>
+- </connection>
+- <connection>
+- <sender>editSuggestAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editSuggest()</slot>
+- </connection>
+- <connection>
+- <sender>editImportAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>editImport()</slot>
+- </connection>
+- <connection>
+- <sender>eventlist</sender>
+- <signal>doubleClicked(QListBoxItem*)</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>doubleclickedeventlist(QListBoxItem*)</slot>
+- </connection>
+- <connection>
+- <sender>eventlist</sender>
+- <signal>contextMenuRequested(QListBoxItem*,const QPoint&)</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>eventlistcontextmenu(QListBoxItem*,const QPoint&)</slot>
+- </connection>
+- <connection>
+- <sender>gobutton</sender>
+- <signal>clicked()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>clickedgo()</slot>
+- </connection>
+- <connection>
+- <sender>goinput</sender>
+- <signal>returnPressed()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>clickedgo()</slot>
+- </connection>
+- <connection>
+- <sender>gobutton2</sender>
+- <signal>clicked()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>clickedgo2()</slot>
+- </connection>
+- <connection>
+- <sender>goinput2</sender>
+- <signal>returnPressed()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>clickedgo2()</slot>
+- </connection>
+- <connection>
+- <sender>playPlayAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>playPlay()</slot>
+- </connection>
+- <connection>
+- <sender>playStopAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>playStop()</slot>
+- </connection>
+- <connection>
+- <sender>playAudio1Action</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>playAudio1()</slot>
+- </connection>
+- <connection>
+- <sender>playAudio2Action</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>playAudio2()</slot>
+- </connection>
+- <connection>
+- <sender>fileNewAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileNew()</slot>
+- </connection>
+- <connection>
+- <sender>fileSaveAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileSave()</slot>
+- </connection>
+- <connection>
+- <sender>fileSaveAsAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileSaveAs()</slot>
+- </connection>
+- <connection>
+- <sender>viewDifferenceAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewDifference()</slot>
+- </connection>
+- <connection>
+- <sender>viewNormalAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewNormal()</slot>
+- </connection>
+- <connection>
+- <sender>viewUnscaledAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewUnscaled()</slot>
+- </connection>
+- <connection>
+- <sender>fileExportAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>fileExport()</slot>
+- </connection>
+- <connection>
+- <sender>zoomInAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>zoomIn()</slot>
+- </connection>
+- <connection>
+- <sender>zoomOutAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>zoomOut()</slot>
+- </connection>
+- <connection>
+- <sender>viewHalfSizeAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewHalfSize()</slot>
+- </connection>
+- <connection>
+- <sender>viewFullSizeAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewFullSize()</slot>
+- </connection>
+- <connection>
+- <sender>viewQuarterSizeAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewQuarterSize()</slot>
+- </connection>
+- <connection>
+- <sender>viewCustomSizeAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>viewCustomSize()</slot>
+- </connection>
+- <connection>
+- <sender>snapshotSaveAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>snapshotSave()</slot>
+- </connection>
+- <connection>
+- <sender>chapterSnapshotsSaveAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>chapterSnapshotsSave()</slot>
+- </connection>
+- <connection>
+- <sender>helpAboutAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>helpAboutAction_activated()</slot>
+- </connection>
+- <connection>
+- <sender>helpContentAction</sender>
+- <signal>activated()</signal>
+- <receiver>dvbcutbase</receiver>
+- <slot>helpContentAction_activated()</slot>
+- </connection>
+-</connections>
+-<includes>
+- <include location="local" impldecl="in implementation">gettext.h</include>
+-</includes>
+-<slots>
+- <slot>fileOpen()</slot>
+- <slot>linslidervalue(int)</slot>
+- <slot>jogslidervalue(int)</slot>
+- <slot>jogsliderreleased()</slot>
+- <slot>editStart()</slot>
+- <slot>editStop()</slot>
+- <slot>editChapter()</slot>
+- <slot>editBookmark()</slot>
+- <slot>editAutoChapters()</slot>
+- <slot>editSuggest()</slot>
+- <slot>editImport()</slot>
+- <slot>editConvert(int)</slot>
+- <slot>abouttoshoweditconvert()</slot>
+- <slot>doubleclickedeventlist(QListBoxItem *)</slot>
+- <slot>eventlistcontextmenu(QListBoxItem *, const QPoint &)</slot>
+- <slot>clickedgo()</slot>
+- <slot>clickedgo2()</slot>
+- <slot>playPlay()</slot>
+- <slot>playStop()</slot>
+- <slot>playAudio1()</slot>
+- <slot>playAudio2()</slot>
+- <slot>mplayerexited()</slot>
+- <slot>fileClose()</slot>
+- <slot>fileNew()</slot>
+- <slot>fileSave()</slot>
+- <slot>fileSaveAs()</slot>
+- <slot>updateimagedisplay()</slot>
+- <slot>viewNormal()</slot>
+- <slot>viewUnscaled()</slot>
+- <slot>viewDifference()</slot>
+- <slot>fileExport()</slot>
+- <slot>audiotrackchosen(int)</slot>
+- <slot>loadrecentfile(int)</slot>
+- <slot>abouttoshowrecentfiles()</slot>
+- <slot>zoomIn()</slot>
+- <slot>zoomOut()</slot>
+- <slot>viewFullSize()</slot>
+- <slot>viewHalfSize()</slot>
+- <slot>viewCustomSize()</slot>
+- <slot>viewQuarterSize()</slot>
+- <slot>snapshotSave()</slot>
+- <slot>chapterSnapshotsSave()</slot>
+- <slot>helpAboutAction_activated()</slot>
+- <slot>helpContentAction_activated()</slot>
+-</slots>
+-<layoutdefaults spacing="6" margin="11"/>
+-</UI>
++ </layout>
++ </widget>
++ <widget class="Q3ToolBar" name="fileToolbar">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>134</width>
++ <height>31</height>
++ </rect>
++ </property>
++ <property name="label">
++ <string>File toolbar</string>
++ </property>
++ <addaction name="fileOpenAction"/>
++ <addaction name="fileSaveAction"/>
++ <addaction name="fileSaveAsAction"/>
++ <addaction name="snapshotSaveAction"/>
++ </widget>
++ <widget class="Q3ToolBar" name="Toolbar">
++ <property name="geometry">
++ <rect>
++ <x>134</x>
++ <y>0</y>
++ <width>134</width>
++ <height>31</height>
++ </rect>
++ </property>
++ <property name="label">
++ <string>Edit toolbar</string>
++ </property>
++ <addaction name="editStartAction"/>
++ <addaction name="editStopAction"/>
++ <addaction name="editChapterAction"/>
++ <addaction name="editBookmarkAction"/>
++ </widget>
++ <widget class="Q3ToolBar" name="playToolbar">
++ <property name="geometry">
++ <rect>
++ <x>268</x>
++ <y>0</y>
++ <width>134</width>
++ <height>31</height>
++ </rect>
++ </property>
++ <property name="label">
++ <string>Play toolbar</string>
++ </property>
++ <addaction name="playAudio1Action"/>
++ <addaction name="playAudio2Action"/>
++ <addaction name="playPlayAction"/>
++ <addaction name="playStopAction"/>
++ </widget>
++ <widget class="QMenuBar" name="menubar">
++ <property name="enabled">
++ <bool>true</bool>
++ </property>
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>741</width>
++ <height>22</height>
++ </rect>
++ </property>
++ <widget class="QMenu" name="fileMenu">
++ <property name="title">
++ <string>&File</string>
++ </property>
++ <addaction name="fileNewAction"/>
++ <addaction name="fileOpenAction"/>
++ <addaction name="fileSaveAction"/>
++ <addaction name="fileSaveAsAction"/>
++ <addaction name="snapshotSaveAction"/>
++ <addaction name="chapterSnapshotsSaveAction"/>
++ <addaction name="separator"/>
++ <addaction name="fileExportAction"/>
++ <addaction name="separator"/>
++ <addaction name="fileCloseAction"/>
++ </widget>
++ <widget class="QMenu" name="editMenu">
++ <property name="title">
++ <string>&Edit</string>
++ </property>
++ <addaction name="editStartAction"/>
++ <addaction name="editStopAction"/>
++ <addaction name="editChapterAction"/>
++ <addaction name="editBookmarkAction"/>
++ <addaction name="separator"/>
++ <addaction name="editAutoChaptersAction"/>
++ <addaction name="editSuggestAction"/>
++ <addaction name="editImportAction"/>
++ </widget>
++ <widget class="QMenu" name="viewMenu">
++ <property name="title">
++ <string>&View</string>
++ </property>
++ <addaction name="viewNormalAction"/>
++ <addaction name="viewUnscaledAction"/>
++ <addaction name="viewDifferenceAction"/>
++ <addaction name="separator"/>
++ <addaction name="zoomInAction"/>
++ <addaction name="zoomOutAction"/>
++ <addaction name="separator"/>
++ <addaction name="viewFullSizeAction"/>
++ <addaction name="viewHalfSizeAction"/>
++ <addaction name="viewQuarterSizeAction"/>
++ <addaction name="viewCustomSizeAction"/>
++ </widget>
++ <widget class="QMenu" name="playMenu">
++ <property name="title">
++ <string>&Play</string>
++ </property>
++ <addaction name="playPlayAction"/>
++ <addaction name="playStopAction"/>
++ <addaction name="separator"/>
++ <addaction name="playAudio1Action"/>
++ <addaction name="playAudio2Action"/>
++ </widget>
++ <widget class="QMenu" name="Help">
++ <property name="title">
++ <string>&Help</string>
++ </property>
++ <addaction name="helpAboutAction"/>
++ <addaction name="helpContentAction"/>
++ </widget>
++ <addaction name="fileMenu"/>
++ <addaction name="editMenu"/>
++ <addaction name="viewMenu"/>
++ <addaction name="playMenu"/>
++ <addaction name="Help"/>
++ </widget>
++ <action name="fileOpenAction">
++ <property name="icon">
++ <iconset>
++ <normaloff>image0</normaloff>image0</iconset>
++ </property>
++ <property name="text">
++ <string>&Open...</string>
++ </property>
++ <property name="iconText">
++ <string>Open</string>
++ </property>
++ <property name="shortcut">
++ <string>O</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileOpenAction</cstring>
++ </property>
++ </action>
++ <action name="fileSaveAction">
++ <property name="checked">
++ <bool>false</bool>
++ </property>
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image1</normaloff>image1</iconset>
++ </property>
++ <property name="text">
++ <string>&Save</string>
++ </property>
++ <property name="iconText">
++ <string>Save</string>
++ </property>
++ <property name="shortcut">
++ <string>S</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileSaveAction</cstring>
++ </property>
++ </action>
++ <action name="fileSaveAsAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image2</normaloff>image2</iconset>
++ </property>
++ <property name="text">
++ <string>Save &As...</string>
++ </property>
++ <property name="iconText">
++ <string>Save As</string>
++ </property>
++ <property name="shortcut">
++ <string/>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileSaveAsAction</cstring>
++ </property>
++ </action>
++ <action name="fileCloseAction">
++ <property name="icon">
++ <iconset>
++ <normaloff>image3</normaloff>image3</iconset>
++ </property>
++ <property name="iconText">
++ <string>Close</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+Q</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileCloseAction</cstring>
++ </property>
++ </action>
++ <action name="playAudio1Action">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image4</normaloff>image4</iconset>
++ </property>
++ <property name="text">
++ <string>Play audio: last 2 seconds</string>
++ </property>
++ <property name="iconText">
++ <string>Audio ->|</string>
++ </property>
++ <property name="shortcut">
++ <string>Shift+></string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>playAudio1Action</cstring>
++ </property>
++ </action>
++ <action name="playAudio2Action">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image5</normaloff>image5</iconset>
++ </property>
++ <property name="text">
++ <string>Play audio: next 2 seconds</string>
++ </property>
++ <property name="iconText">
++ <string>Audio |-></string>
++ </property>
++ <property name="shortcut">
++ <string><</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>playAudio2Action</cstring>
++ </property>
++ </action>
++ <action name="playPlayAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image6</normaloff>image6</iconset>
++ </property>
++ <property name="iconText">
++ <string>Play</string>
++ </property>
++ <property name="shortcut">
++ <string>P</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>playPlayAction</cstring>
++ </property>
++ </action>
++ <action name="playStopAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image7</normaloff>image7</iconset>
++ </property>
++ <property name="iconText">
++ <string>Stop</string>
++ </property>
++ <property name="shortcut">
++ <string>Q</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>playStopAction</cstring>
++ </property>
++ </action>
++ <action name="editStartAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset resource="../icons/icons.qrc">
++ <normaloff>:/icons/play.png</normaloff>:/icons/play.png</iconset>
++ </property>
++ <property name="iconText">
++ <string>Set start marker</string>
++ </property>
++ <property name="shortcut">
++ <string>A</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editStartAction</cstring>
++ </property>
++ </action>
++ <action name="editStopAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset resource="../icons/icons.qrc">
++ <normaloff>:/icons/stop.png</normaloff>:/icons/stop.png</iconset>
++ </property>
++ <property name="iconText">
++ <string>Set stop marker</string>
++ </property>
++ <property name="shortcut">
++ <string>N</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editStopAction</cstring>
++ </property>
++ </action>
++ <action name="editChapterAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset resource="../icons/icons.qrc">
++ <normaloff>:/icons/chapter.png</normaloff>:/icons/chapter.png</iconset>
++ </property>
++ <property name="iconText">
++ <string>Set chapter marker</string>
++ </property>
++ <property name="shortcut">
++ <string>C</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editChapterAction</cstring>
++ </property>
++ </action>
++ <action name="editBookmarkAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset resource="../icons/icons.qrc">
++ <normaloff>:/icons/bookmark.png</normaloff>:/icons/bookmark.png</iconset>
++ </property>
++ <property name="iconText">
++ <string>Set bookmark</string>
++ </property>
++ <property name="shortcut">
++ <string>B</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editBookmarkAction</cstring>
++ </property>
++ </action>
++ <action name="editAutoChaptersAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="iconText">
++ <string>Auto chapters</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+C</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editAutoChaptersAction</cstring>
++ </property>
++ </action>
++ <action name="editSuggestAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="iconText">
++ <string>Suggest bookmarks</string>
++ </property>
++ <property name="shortcut">
++ <string>M</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editSuggestAction</cstring>
++ </property>
++ </action>
++ <action name="editImportAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="iconText">
++ <string>Import bookmarks</string>
++ </property>
++ <property name="shortcut">
++ <string>I</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>editImportAction</cstring>
++ </property>
++ </action>
++ <action name="fileNewAction">
++ <property name="icon">
++ <iconset>
++ <normaloff>image12</normaloff>image12</iconset>
++ </property>
++ <property name="iconText">
++ <string>New</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileNewAction</cstring>
++ </property>
++ </action>
++ <action name="fileExportAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="iconText">
++ <string>Export video...</string>
++ </property>
++ <property name="shortcut">
++ <string>E</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>fileExportAction</cstring>
++ </property>
++ </action>
++ <action name="viewNormalAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="checked">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Normal</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+N</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewNormalAction</cstring>
++ </property>
++ </action>
++ <action name="viewUnscaledAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Unscaled</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+U</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewUnscaledAction</cstring>
++ </property>
++ </action>
++ <action name="viewDifferenceAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Show difference to current picture</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+D</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewDifferenceAction</cstring>
++ </property>
++ </action>
++ <action name="viewFullSizeAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="checked">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Full size</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+1</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewFullSizeAction</cstring>
++ </property>
++ </action>
++ <action name="viewQuarterSizeAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Quarter size</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+4</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewQuarterSizeAction</cstring>
++ </property>
++ </action>
++ <action name="viewCustomSizeAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Custom size</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+3</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewCustomSizeAction</cstring>
++ </property>
++ </action>
++ <action name="zoomInAction">
++ <property name="iconText">
++ <string>Zoom in</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl++</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>zoomInAction</cstring>
++ </property>
++ </action>
++ <action name="zoomOutAction">
++ <property name="iconText">
++ <string>Zoom out</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+-</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>zoomOutAction</cstring>
++ </property>
++ </action>
++ <action name="viewHalfSizeAction">
++ <property name="checkable">
++ <bool>true</bool>
++ </property>
++ <property name="iconText">
++ <string>Half size</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+2</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>viewHalfSizeAction</cstring>
++ </property>
++ </action>
++ <action name="snapshotSaveAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="icon">
++ <iconset>
++ <normaloff>image13</normaloff>image13</iconset>
++ </property>
++ <property name="iconText">
++ <string>Save Snapshot</string>
++ </property>
++ <property name="shortcut">
++ <string>G</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>snapshotSaveAction</cstring>
++ </property>
++ </action>
++ <action name="chapterSnapshotsSaveAction">
++ <property name="enabled">
++ <bool>false</bool>
++ </property>
++ <property name="iconText">
++ <string>Save Chapter Snapshots</string>
++ </property>
++ <property name="shortcut">
++ <string>Ctrl+G</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>chapterSnapshotsSaveAction</cstring>
++ </property>
++ </action>
++ <action name="helpAboutAction">
++ <property name="text">
++ <string>&About</string>
++ </property>
++ <property name="iconText">
++ <string>&About</string>
++ </property>
++ <property name="toolTip">
++ <string>About </string>
++ </property>
++ <property name="statusTip">
++ <string>About </string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>helpAboutAction</cstring>
++ </property>
++ </action>
++ <action name="helpContentAction">
++ <property name="text">
++ <string>&Contents</string>
++ </property>
++ <property name="iconText">
++ <string>&Contents</string>
++ </property>
++ <property name="toolTip">
++ <string>Contents</string>
++ </property>
++ <property name="shortcut">
++ <string>F1</string>
++ </property>
++ <property name="name" stdset="0">
++ <cstring>helpContentAction</cstring>
++ </property>
++ </action>
++ </widget>
++ <layoutdefault spacing="6" margin="11"/>
++ <customwidgets>
++ <customwidget>
++ <class>Q3ToolBar</class>
++ <extends>Q3Frame</extends>
++ <header>q3listview.h</header>
++ </customwidget>
++ <customwidget>
++ <class>Q3Frame</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3Frame</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3MainWindow</class>
++ <extends>QWidget</extends>
++ <header>q3mainwindow.h</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3ListBox</class>
++ <extends>Q3Frame</extends>
++ <header>q3listbox.h</header>
++ </customwidget>
++ </customwidgets>
++ <resources>
++ <include location="../icons/icons.qrc"/>
++ </resources>
++ <connections>
++ <connection>
++ <sender>fileCloseAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileClose()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>fileOpenAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileOpen()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>linslider</sender>
++ <signal>valueChanged(int)</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>linslidervalue(int)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>jogslider</sender>
++ <signal>valueChanged(int)</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>jogslidervalue(int)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>jogslider</sender>
++ <signal>sliderReleased()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>jogsliderreleased()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editStartAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editStart()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editStopAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editStop()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editChapterAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editChapter()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editBookmarkAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editBookmark()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editAutoChaptersAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editAutoChapters()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editSuggestAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editSuggest()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>editImportAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>editImport()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>eventlist</sender>
++ <signal>doubleClicked(Q3ListBoxItem*)</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>doubleclickedeventlist(Q3ListBoxItem*)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>eventlist</sender>
++ <signal>contextMenuRequested(Q3ListBoxItem*,QPoint)</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>eventlistcontextmenu(Q3ListBoxItem*,QPoint)</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>gobutton</sender>
++ <signal>clicked()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>clickedgo()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>goinput</sender>
++ <signal>returnPressed()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>clickedgo()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>gobutton2</sender>
++ <signal>clicked()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>clickedgo2()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>goinput2</sender>
++ <signal>returnPressed()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>clickedgo2()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>playPlayAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>playPlay()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>playStopAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>playStop()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>playAudio1Action</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>playAudio1()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>playAudio2Action</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>playAudio2()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>fileNewAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileNew()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>fileSaveAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileSave()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>fileSaveAsAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileSaveAs()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewDifferenceAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewDifference()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewNormalAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewNormal()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewUnscaledAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewUnscaled()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>fileExportAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>fileExport()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>zoomInAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>zoomIn()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>zoomOutAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>zoomOut()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewHalfSizeAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewHalfSize()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewFullSizeAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewFullSize()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewQuarterSizeAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewQuarterSize()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>viewCustomSizeAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>viewCustomSize()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>snapshotSaveAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>snapshotSave()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>chapterSnapshotsSaveAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>chapterSnapshotsSave()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>helpAboutAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>helpAboutAction_activated()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>helpContentAction</sender>
++ <signal>activated()</signal>
++ <receiver>dvbcutbase</receiver>
++ <slot>helpContentAction_activated()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>-1</x>
++ <y>-1</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ </connections>
++</ui>
+--- a/src/eventlistitem.cpp
++++ b/src/eventlistitem.cpp
+@@ -18,19 +18,19 @@
+
+ /* $Id: eventlistitem.cpp 86 2007-10-12 13:09:35Z too-tired $ */
+
+-#include <qsimplerichtext.h>
++#include <q3simplerichtext.h>
+ #include <qapplication.h>
+ #include <qpainter.h>
+ #include <qimage.h>
+ #include "eventlistitem.h"
+ #include "settings.h"
+
+-EventListItem::EventListItem( QListBox *listbox, const QPixmap &pixmap,
++EventListItem::EventListItem( Q3ListBox *listbox, const QPixmap &pixmap,
+ eventtype type, int picture, int picturetype, pts_t _pts ) :
+- QListBoxItem(listbox, afterwhich(listbox,picture)), pm(pixmap), evtype(type), pic(picture), pictype(picturetype), pts(_pts)
++ Q3ListBoxItem(listbox, afterwhich(listbox,picture)), pm(pixmap), evtype(type), pic(picture), pictype(picturetype), pts(_pts)
+ {
+ if (pm.width()>160 || pm.height()>90)
+- pm=pm.convertToImage().smoothScale(130,90,QImage::ScaleMin);
++ pm=pm.scaled(130, 90, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ }
+
+ EventListItem::~EventListItem()
+@@ -61,7 +61,7 @@ void EventListItem::paint( QPainter *pai
+ }
+
+ if (listBox()) {
+- QSimpleRichText rt(getstring(),listBox()->font());
++ Q3SimpleRichText rt(getstring(),listBox()->font());
+ rt.setWidth(1000);
+
+ QColorGroup cg(listBox()->colorGroup());
+@@ -77,7 +77,7 @@ void EventListItem::paint( QPainter *pai
+
+ }
+
+-int EventListItem::height( const QListBox* ) const
++int EventListItem::height( const Q3ListBox* ) const
+ {
+ int h=0;
+
+@@ -87,7 +87,7 @@ int EventListItem::height( const QListBo
+ return QMAX( h+6, QApplication::globalStrut().height() );
+ }
+
+-int EventListItem::width( const QListBox* lb ) const
++int EventListItem::width( const Q3ListBox* lb ) const
+ {
+ int width=3;
+
+@@ -95,7 +95,7 @@ int EventListItem::width( const QListBox
+ width += pm.width()+3;
+
+ if (lb) {
+- QSimpleRichText rt(getstring(),lb->font());
++ Q3SimpleRichText rt(getstring(),lb->font());
+ rt.setWidth(1000); //drawinglistbox->width());
+ width+=rt.widthUsed()+3;
+ }
+@@ -125,13 +125,13 @@ QString EventListItem::getstring() const
+ ((const char *)".IPB....")[pictype&7]);
+ }
+
+-QListBoxItem *EventListItem::afterwhich(QListBox *lb, int picture)
++Q3ListBoxItem *EventListItem::afterwhich(Q3ListBox *lb, int picture)
+ {
+ if (!lb)
+ return 0;
+- QListBoxItem *after=0;
++ Q3ListBoxItem *after=0;
+
+- for (QListBoxItem *next=lb->firstItem();next;after=next,next=next->next())
++ for (Q3ListBoxItem *next=lb->firstItem();next;after=next,next=next->next())
+ if (next->rtti()==RTTI())
+ if ( ((EventListItem*)(next))->pic > picture)
+ break;
+--- /dev/null
++++ b/src/eventlistitem.cpp.orig
+@@ -0,0 +1,141 @@
++/* dvbcut
++ Copyright (c) 2005 Sven Over <svenover at svenover.de>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++/* $Id: eventlistitem.cpp 86 2007-10-12 13:09:35Z too-tired $ */
++
++#include <qsimplerichtext.h>
++#include <qapplication.h>
++#include <qpainter.h>
++#include <qimage.h>
++#include "eventlistitem.h"
++#include "settings.h"
++
++EventListItem::EventListItem( QListBox *listbox, const QPixmap &pixmap,
++ eventtype type, int picture, int picturetype, pts_t _pts ) :
++ QListBoxItem(listbox, afterwhich(listbox,picture)), pm(pixmap), evtype(type), pic(picture), pictype(picturetype), pts(_pts)
++ {
++ if (pm.width()>160 || pm.height()>90)
++ pm=pm.convertToImage().smoothScale(130,90,QImage::ScaleMin);
++ }
++
++EventListItem::~EventListItem()
++ {}
++
++
++int EventListItem::rtti() const
++ {
++ return RTTI();
++ }
++
++
++
++void EventListItem::paint( QPainter *painter )
++ {
++ int itemHeight = height( listBox() );
++ int x=3;
++
++ if (evtype == stop) {
++ QColor color(224, 224, 224);
++ QBrush brush(color);
++ painter->fillRect(0, 0, width(listBox()), itemHeight, brush);
++ }
++
++ if ( !pm.isNull() ) {
++ painter->drawPixmap( x, (itemHeight-pm.height())/2, pm);
++ x+=pm.width()+3;
++ }
++
++ if (listBox()) {
++ QSimpleRichText rt(getstring(),listBox()->font());
++ rt.setWidth(1000);
++
++ QColorGroup cg(listBox()->colorGroup());
++
++ if (isSelected()) {
++ QColor c=cg.color(QColorGroup::Text);
++ cg.setColor(QColorGroup::Text,cg.color(QColorGroup::HighlightedText));
++ cg.setColor(QColorGroup::HighlightedText,c);
++ }
++
++ rt.draw(painter,x,(itemHeight-rt.height())/2,QRect(),cg);
++ }
++
++ }
++
++int EventListItem::height( const QListBox* ) const
++ {
++ int h=0;
++
++ if (!pm.isNull())
++ h=pm.height();
++
++ return QMAX( h+6, QApplication::globalStrut().height() );
++ }
++
++int EventListItem::width( const QListBox* lb ) const
++ {
++ int width=3;
++
++ if (!pm.isNull())
++ width += pm.width()+3;
++
++ if (lb) {
++ QSimpleRichText rt(getstring(),lb->font());
++ rt.setWidth(1000); //drawinglistbox->width());
++ width+=rt.widthUsed()+3;
++ }
++
++ return QMAX( width,
++ QApplication::globalStrut().width() );
++ }
++
++QString EventListItem::getstring() const
++ {
++ QString label;
++ if (evtype==start)
++ label = settings().start_label;
++ else if (evtype==stop)
++ label = settings().stop_label;
++ else if (evtype==chapter)
++ label = settings().chapter_label;
++ else if (evtype==bookmark)
++ label = settings().bookmark_label;
++
++ return label + QString().sprintf("<br>%02d:%02d:%02d.%03d<br>%d (%c)",
++ int(pts/(3600*90000)),
++ int(pts/(60*90000))%60,
++ int(pts/90000)%60,
++ int(pts/90)%1000,
++ pic,
++ ((const char *)".IPB....")[pictype&7]);
++ }
++
++QListBoxItem *EventListItem::afterwhich(QListBox *lb, int picture)
++ {
++ if (!lb)
++ return 0;
++ QListBoxItem *after=0;
++
++ for (QListBoxItem *next=lb->firstItem();next;after=next,next=next->next())
++ if (next->rtti()==RTTI())
++ if ( ((EventListItem*)(next))->pic > picture)
++ break;
++
++ return after;
++ }
++
+--- a/src/eventlistitem.h
++++ b/src/eventlistitem.h
+@@ -22,16 +22,16 @@
+ #define _DVBCUT_EVENTLISTIEM_H_
+
+ #include <qpixmap.h>
+-#include <qlistbox.h>
++#include <q3listbox.h>
+ #include "pts.h"
+
+-class EventListItem : public QListBoxItem
++class EventListItem : public Q3ListBoxItem
+ {
+ public:
+ enum eventtype { none, start, stop, chapter, bookmark };
+
+ public:
+- EventListItem( QListBox *listbox, const QPixmap &pixmap, eventtype type, int picture, int picturetype, pts_t _pts );
++ EventListItem( Q3ListBox *listbox, const QPixmap &pixmap, eventtype type, int picture, int picturetype, pts_t _pts );
+ ~EventListItem();
+
+ const QPixmap *pixmap() const
+@@ -56,8 +56,8 @@ public:
+ return;
+ }
+
+- int height( const QListBox *lb ) const;
+- int width( const QListBox *lb ) const;
++ int height( const Q3ListBox *lb ) const;
++ int width( const Q3ListBox *lb ) const;
+
+ int rtti() const;
+ static int RTTI()
+@@ -77,7 +77,7 @@ private:
+
+ QString getstring() const;
+
+- static QListBoxItem *afterwhich(QListBox *lb, int picture);
++ static Q3ListBoxItem *afterwhich(Q3ListBox *lb, int picture);
+ };
+
+ #endif // ifndef _EVENTLISTIEM_H_
+--- a/src/exception.cpp
++++ b/src/exception.cpp
+@@ -46,5 +46,5 @@ void dvbcut_exception::show() const
+ if (extype.empty())
+ extype="DVBCUT error";
+
+- QMessageBox::critical(NULL,extype,what(),QMessageBox::Abort,QMessageBox::NoButton);
++ QMessageBox::critical(NULL,QString::fromStdString(extype),what(),QMessageBox::Abort,QMessageBox::NoButton);
+ }
+--- a/src/exportdialog.cpp
++++ b/src/exportdialog.cpp
+@@ -22,21 +22,28 @@
+ #include <qfiledialog.h>
+ #include "exportdialog.h"
+
+-exportdialog::exportdialog(const std::string &filename, QWidget *parent, const char *name)
+- :exportdialogbase(parent, name, true)
++exportdialog::exportdialog(const QString &filename, QWidget *parent, const char *name)
++ :QDialog(parent, name, true)
+ {
+- filenameline->setText(filename);
++ ui = new Ui::exportdialogbase();
++ ui->setupUi(this);
++ ui->filenameline->setText(filename);
++ }
++
++exportdialog::~exportdialog()
++ {
++ delete ui;
+ }
+
+ void exportdialog::fileselector()
+ {
+ QString newfilename(QFileDialog::getSaveFileName(
+- filenameline->text(),
++ ui->filenameline->text(),
+ "MPEG program streams (*.mpg)"
+ ";;All files (*)",
+ this,0,
+ "Export video..." ));
+
+- if (newfilename)
+- filenameline->setText(newfilename);
++ if (!newfilename.isEmpty())
++ ui->filenameline->setText(newfilename);
+ }
+--- a/src/exportdialog.h
++++ b/src/exportdialog.h
+@@ -22,13 +22,17 @@
+ #define _DVBCUT_EXPORTDIALOG_H
+
+ #include <string>
+-#include "exportdialogbase.h"
++#include "ui_exportdialogbase.h"
+
+-class exportdialog: public exportdialogbase
++class exportdialog: public QDialog
+ {
+ Q_OBJECT
+ public:
+- exportdialog(const std::string &filename, QWidget *parent = 0, const char *name = 0);
++ exportdialog(const QString &filename, QWidget *parent = 0, const char *name = 0);
++ ~exportdialog();
++ Ui::exportdialogbase* ui;
++
++private:
+
+ public slots:
+ virtual void fileselector();
+--- a/src/exportdialogbase.ui
++++ b/src/exportdialogbase.ui
+@@ -1,197 +1,212 @@
+-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+-<class>exportdialogbase</class>
+-<widget class="QDialog">
+- <property name="name">
+- <cstring>exportdialogbase</cstring>
+- </property>
+- <property name="geometry">
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>664</width>
+- <height>343</height>
+- </rect>
+- </property>
+- <property name="caption">
+- <string>dvbcut: export video</string>
+- </property>
+- <property name="sizeGripEnabled">
+- <bool>true</bool>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
++<?xml version="1.0" encoding="UTF-8"?>
++<ui version="4.0">
++ <class>exportdialogbase</class>
++ <widget class="QDialog" name="exportdialogbase">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>664</width>
++ <height>343</height>
++ </rect>
++ </property>
++ <property name="windowTitle">
++ <string>dvbcut: export video</string>
++ </property>
++ <property name="sizeGripEnabled">
++ <bool>true</bool>
++ </property>
++ <layout class="QVBoxLayout">
++ <item>
++ <layout class="QGridLayout">
++ <item row="0" column="2">
++ <widget class="QToolButton" name="filenamebrowsebutton">
++ <property name="text">
++ <string>...</string>
++ </property>
++ </widget>
++ </item>
++ <item row="0" column="0">
++ <widget class="QLabel" name="textLabel1">
++ <property name="text">
++ <string>Export as:</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item row="0" column="1">
++ <widget class="QLineEdit" name="filenameline"/>
++ </item>
++ <item row="1" column="0">
++ <widget class="QLabel" name="textLabel2">
++ <property name="text">
++ <string>Output format:</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item row="1" column="1" colspan="2">
++ <widget class="QComboBox" name="muxercombo"/>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <widget class="Q3GroupBox" name="groupBox1">
++ <property name="title">
++ <string>Audio channels</string>
++ </property>
++ <layout class="QVBoxLayout">
++ <item>
++ <widget class="Q3ListBox" name="audiolist">
++ <property name="selectionMode">
++ <enum>Q3ListBox::Multi</enum>
+ </property>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout4</cstring>
+- </property>
+- <grid>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QToolButton" row="0" column="2">
+- <property name="name">
+- <cstring>filenamebrowsebutton</cstring>
+- </property>
+- <property name="text">
+- <string>...</string>
+- </property>
+- </widget>
+- <widget class="QLabel" row="0" column="0">
+- <property name="name">
+- <cstring>textLabel1</cstring>
+- </property>
+- <property name="text">
+- <string>Export as:</string>
+- </property>
+- </widget>
+- <widget class="QLineEdit" row="0" column="1">
+- <property name="name">
+- <cstring>filenameline</cstring>
+- </property>
+- </widget>
+- <widget class="QLabel" row="1" column="0">
+- <property name="name">
+- <cstring>textLabel2</cstring>
+- </property>
+- <property name="text">
+- <string>Output format:</string>
+- </property>
+- </widget>
+- <widget class="QComboBox" row="1" column="1" rowspan="1" colspan="2">
+- <property name="name">
+- <cstring>muxercombo</cstring>
+- </property>
+- </widget>
+- </grid>
+- </widget>
+- <widget class="QGroupBox">
+- <property name="name">
+- <cstring>groupBox1</cstring>
+- </property>
+- <property name="title">
+- <string>Audio channels</string>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QListBox">
+- <property name="name">
+- <cstring>audiolist</cstring>
+- </property>
+- <property name="selectionMode">
+- <enum>Multi</enum>
+- </property>
+- </widget>
+- </vbox>
+- </widget>
+- <widget class="Line">
+- <property name="name">
+- <cstring>line1</cstring>
+- </property>
+- <property name="frameShape">
+- <enum>HLine</enum>
+- </property>
+- <property name="frameShadow">
+- <enum>Sunken</enum>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>Layout1</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <property name="margin">
+- <number>0</number>
+- </property>
+- <property name="spacing">
+- <number>6</number>
+- </property>
+- <spacer>
+- <property name="name">
+- <cstring>Horizontal Spacing2</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>20</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>buttonOk</cstring>
+- </property>
+- <property name="text">
+- <string>&OK</string>
+- </property>
+- <property name="accel">
+- <string></string>
+- </property>
+- <property name="autoDefault">
+- <bool>true</bool>
+- </property>
+- <property name="default">
+- <bool>true</bool>
+- </property>
+- </widget>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>buttonCancel</cstring>
+- </property>
+- <property name="text">
+- <string>&Cancel</string>
+- </property>
+- <property name="accel">
+- <string></string>
+- </property>
+- <property name="autoDefault">
+- <bool>true</bool>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- </vbox>
+-</widget>
+-<connections>
+- <connection>
+- <sender>buttonOk</sender>
+- <signal>clicked()</signal>
+- <receiver>exportdialogbase</receiver>
+- <slot>accept()</slot>
+- </connection>
+- <connection>
+- <sender>buttonCancel</sender>
+- <signal>clicked()</signal>
+- <receiver>exportdialogbase</receiver>
+- <slot>reject()</slot>
+- </connection>
+- <connection>
+- <sender>filenamebrowsebutton</sender>
+- <signal>clicked()</signal>
+- <receiver>exportdialogbase</receiver>
+- <slot>fileselector()</slot>
+- </connection>
+-</connections>
+-<includes>
+- <include location="local" impldecl="in implementation">gettext.h</include>
+-</includes>
+-<slots>
+- <slot>fileselector()</slot>
+-</slots>
+-<layoutdefaults spacing="6" margin="11"/>
+-</UI>
++ </widget>
++ </item>
++ </layout>
++ </widget>
++ </item>
++ <item>
++ <widget class="Line" name="line1">
++ <property name="frameShape">
++ <enum>QFrame::HLine</enum>
++ </property>
++ <property name="frameShadow">
++ <enum>QFrame::Sunken</enum>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <property name="spacing">
++ <number>6</number>
++ </property>
++ <property name="margin">
++ <number>0</number>
++ </property>
++ <item>
++ <spacer name="Horizontal Spacing2">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>20</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QPushButton" name="buttonOk">
++ <property name="text">
++ <string>&OK</string>
++ </property>
++ <property name="shortcut">
++ <string/>
++ </property>
++ <property name="autoDefault">
++ <bool>true</bool>
++ </property>
++ <property name="default">
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="buttonCancel">
++ <property name="text">
++ <string>&Cancel</string>
++ </property>
++ <property name="shortcut">
++ <string/>
++ </property>
++ <property name="autoDefault">
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ <layoutdefault spacing="6" margin="11"/>
++ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
++ <customwidgets>
++ <customwidget>
++ <class>Q3GroupBox</class>
++ <extends>QGroupBox</extends>
++ <header>Qt3Support/Q3GroupBox</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3Frame</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3Frame</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3ListBox</class>
++ <extends>Q3Frame</extends>
++ <header>q3listbox.h</header>
++ </customwidget>
++ </customwidgets>
++ <resources/>
++ <connections>
++ <connection>
++ <sender>buttonOk</sender>
++ <signal>clicked()</signal>
++ <receiver>exportdialogbase</receiver>
++ <slot>accept()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>buttonCancel</sender>
++ <signal>clicked()</signal>
++ <receiver>exportdialogbase</receiver>
++ <slot>reject()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ <connection>
++ <sender>filenamebrowsebutton</sender>
++ <signal>clicked()</signal>
++ <receiver>exportdialogbase</receiver>
++ <slot>fileselector()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ </connections>
++</ui>
+--- /dev/null
++++ b/src/mplayererrorbase.cpp
+@@ -0,0 +1,39 @@
++/* dvbcut
++ Copyright (c) 2005 Sven Over <svenover at svenover.de>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#include <qlineedit.h>
++#include <qfiledialog.h>
++#include "mplayererrorbase.h"
++
++mplayererrorbase::mplayererrorbase(QWidget *parent)
++ :QDialog(parent)
++ {
++ ui = new Ui::mplayererrorbase();
++ ui->setupUi(this);
++ this->setVisible(true);
++ }
++
++mplayererrorbase::~mplayererrorbase()
++ {
++ delete ui;
++ }
++
++void mplayererrorbase::setText(QString text)
++ {
++ ui->textbrowser->setText(text);
++ }
+\ No newline at end of file
+--- /dev/null
++++ b/src/mplayererrorbase.h
+@@ -0,0 +1,37 @@
++/* dvbcut
++ Copyright (c) 2005 Sven Over <svenover at svenover.de>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++
++#ifndef _DVBCUT_MPLAYERERRORBASE_H
++#define _DVBCUT_MPLAYERERRORBASE_H
++
++#include "ui_mplayererrorbase.h"
++
++class mplayererrorbase: public QDialog
++ {
++ Q_OBJECT
++public:
++ mplayererrorbase(QWidget *parent = 0);
++ ~mplayererrorbase();
++ void setText(QString text);
++
++private:
++ Ui::mplayererrorbase* ui;
++
++ };
++
++#endif //_DVBCUT_MPLAYERERRORBASE_H
+--- a/src/mplayererrorbase.ui
++++ b/src/mplayererrorbase.ui
+@@ -1,87 +1,102 @@
+-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+-<class>mplayererrorbase</class>
+-<widget class="QDialog">
+- <property name="name">
+- <cstring>mplayererrorbase</cstring>
+- </property>
+- <property name="geometry">
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>600</width>
+- <height>480</height>
+- </rect>
+- </property>
+- <property name="caption">
+- <string>dvbcut: MPlayer error</string>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QLabel">
+- <property name="name">
+- <cstring>textLabel1</cstring>
+- </property>
+- <property name="text">
+- <string>MPlayer finished unsuccesfully.</string>
+- </property>
+- </widget>
+- <widget class="QTextBrowser">
+- <property name="name">
+- <cstring>textbrowser</cstring>
+- </property>
+- <property name="autoFormatting">
+- <set>AutoAll</set>
+- </property>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout13</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <spacer>
+- <property name="name">
+- <cstring>spacer13</cstring>
+- </property>
+- <property name="orientation">
+- <enum>Horizontal</enum>
+- </property>
+- <property name="sizeType">
+- <enum>Expanding</enum>
+- </property>
+- <property name="sizeHint">
+- <size>
+- <width>191</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>okaybutton</cstring>
+- </property>
+- <property name="text">
+- <string>okay</string>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- </vbox>
+-</widget>
+-<connections>
+- <connection>
+- <sender>okaybutton</sender>
+- <signal>clicked()</signal>
+- <receiver>mplayererrorbase</receiver>
+- <slot>accept()</slot>
+- </connection>
+-</connections>
+-<includes>
+- <include location="local" impldecl="in implementation">gettext.h</include>
+-</includes>
+-<layoutdefaults spacing="6" margin="11"/>
+-</UI>
++<?xml version="1.0" encoding="UTF-8"?>
++<ui version="4.0">
++ <class>mplayererrorbase</class>
++ <widget class="QDialog" name="mplayererrorbase">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>600</width>
++ <height>480</height>
++ </rect>
++ </property>
++ <property name="windowTitle">
++ <string>dvbcut: MPlayer error</string>
++ </property>
++ <layout class="QVBoxLayout">
++ <item>
++ <widget class="QLabel" name="textLabel1">
++ <property name="text">
++ <string>MPlayer finished unsuccesfully.</string>
++ </property>
++ <property name="wordWrap">
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="Q3TextBrowser" name="textbrowser">
++ <property name="autoFormatting">
++ <set>Q3TextEdit::AutoAll</set>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <item>
++ <spacer name="spacer13">
++ <property name="orientation">
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeType">
++ <enum>QSizePolicy::Expanding</enum>
++ </property>
++ <property name="sizeHint" stdset="0">
++ <size>
++ <width>191</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QPushButton" name="okaybutton">
++ <property name="text">
++ <string>okay</string>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ <layoutdefault spacing="6" margin="11"/>
++ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
++ <customwidgets>
++ <customwidget>
++ <class>Q3Frame</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3Frame</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3TextEdit</class>
++ <extends>Q3Frame</extends>
++ <header>q3textedit.h</header>
++ </customwidget>
++ <customwidget>
++ <class>Q3TextBrowser</class>
++ <extends>Q3TextEdit</extends>
++ <header>Qt3Support/Q3TextBrowser</header>
++ </customwidget>
++ </customwidgets>
++ <resources/>
++ <connections>
++ <connection>
++ <sender>okaybutton</sender>
++ <signal>clicked()</signal>
++ <receiver>mplayererrorbase</receiver>
++ <slot>accept()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ </connections>
++</ui>
+--- a/src/progressstatusbar.cpp
++++ b/src/progressstatusbar.cpp
+@@ -26,7 +26,7 @@
+ #include <cstdarg>
+ #include <cstdlib>
+ #include <qstatusbar.h>
+-#include <qprogressbar.h>
++#include <q3progressbar.h>
+ #include <qapplication.h>
+ #include <qpushbutton.h>
+ #include <qlabel.h>
+@@ -46,7 +46,7 @@ progressstatusbar::progressstatusbar(QSt
+ cancelbutton->setMaximumWidth(80);
+ statusbar->addWidget(cancelbutton,true);
+
+- progressbar=new QProgressBar(statusbar);
++ progressbar=new Q3ProgressBar(statusbar);
+ progressbar->setTotalSteps(1000);
+ progressbar->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum));
+ progressbar->setMinimumWidth(160);
+@@ -66,7 +66,7 @@ progressstatusbar::~progressstatusbar()
+ delete progressbar;
+ delete cancelbutton;
+ delete label;
+- statusbar->clear();
++ statusbar->clearMessage();
+ }
+
+
+--- a/src/progressstatusbar.h
++++ b/src/progressstatusbar.h
+@@ -25,7 +25,7 @@
+ #include "logoutput.h"
+
+ class QStatusBar;
+-class QProgressBar;
++class Q3ProgressBar;
+ class QPushButton;
+ class QLabel;
+
+@@ -39,7 +39,7 @@ class progressstatusbar : public QObject
+ protected:
+ bool cancelwasclicked;
+ QStatusBar *statusbar;
+- QProgressBar *progressbar;
++ Q3ProgressBar *progressbar;
+ QPushButton *cancelbutton;
+ QLabel *label;
+
+--- a/src/progresswindow.cpp
++++ b/src/progresswindow.cpp
+@@ -33,20 +33,23 @@
+ #include "progresswindow.h"
+
+ progresswindow::progresswindow(QWidget *parent, const char *name)
+- :progresswindowbase(parent, name, true), logoutput(),
++ :QDialog(parent, name, true), logoutput(),
+ cancelwasclicked(false), waitingforclose(false)
+ {
+- QStyleSheetItem *item;
+- item = new QStyleSheetItem( logbrowser->styleSheet(), "h" );
++ ui = new Ui::progresswindowbase();
++ ui->setupUi(this);
++
++ Q3StyleSheetItem *item;
++ item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "h" );
+ item->setFontWeight( QFont::Bold );
+ item->setFontUnderline( TRUE );
+
+- item = new QStyleSheetItem( logbrowser->styleSheet(), "info" );
++ item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "info" );
+
+- item = new QStyleSheetItem( logbrowser->styleSheet(), "warn" );
++ item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "warn" );
+ item->setColor( "red" );
+
+- item = new QStyleSheetItem( logbrowser->styleSheet(), "error" );
++ item = new Q3StyleSheetItem( ui->logbrowser->styleSheet(), "error" );
+ item->setColor( "red" );
+ item->setFontWeight( QFont::Bold );
+ item->setFontUnderline( TRUE );
+@@ -55,6 +58,11 @@ progresswindow::progresswindow(QWidget *
+ qApp->processEvents();
+ }
+
++progresswindow::~progresswindow()
++ {
++ delete ui;
++ }
++
+ void progresswindow::closeEvent(QCloseEvent *e)
+ {
+ if (waitingforclose)
+@@ -65,7 +73,7 @@ void progresswindow::closeEvent(QCloseEv
+
+ void progresswindow::finish()
+ {
+- cancelbutton->setEnabled(false);
++ ui->cancelbutton->setEnabled(false);
+ waitingforclose=true;
+ exec();
+ }
+@@ -75,7 +83,7 @@ void progresswindow::setprogress(int per
+ if (permille==currentprogress)
+ return;
+ currentprogress=permille;
+- progressbar->setProgress(permille);
++ ui->progressbar->setProgress(permille);
+ qApp->processEvents();
+ }
+
+@@ -88,9 +96,9 @@ void progresswindow::print(const char *f
+ return;
+
+ if (*text)
+- logbrowser->append(quotetext(text));
++ ui->logbrowser->append(quotetext(text));
+ else
+- logbrowser->append("<br>");
++ ui->logbrowser->append("<br>");
+ free(text);
+ qApp->processEvents();
+ }
+@@ -103,7 +111,7 @@ void progresswindow::printheading(const
+ if (vasprintf(&text,fmt,ap)<0 || (text==0))
+ return;
+
+- logbrowser->append(QString("<h>")+quotetext(text)+"</h>");
++ ui->logbrowser->append(QString("<h>")+quotetext(text)+"</h>");
+ free(text);
+ qApp->processEvents();
+ }
+@@ -116,7 +124,7 @@ void progresswindow::printinfo(const cha
+ if (vasprintf(&text,fmt,ap)<0 || (text==0))
+ return;
+
+- logbrowser->append(QString("<info>")+quotetext(text)+"</info>");
++ ui->logbrowser->append(QString("<info>")+quotetext(text)+"</info>");
+ free(text);
+ qApp->processEvents();
+ }
+@@ -129,7 +137,7 @@ void progresswindow::printerror(const ch
+ if (vasprintf(&text,fmt,ap)<0 || (text==0))
+ return;
+
+- logbrowser->append(QString("<error>")+quotetext(text)+"</error>");
++ ui->logbrowser->append(QString("<error>")+quotetext(text)+"</error>");
+ free(text);
+ qApp->processEvents();
+ }
+@@ -142,7 +150,7 @@ void progresswindow::printwarning(const
+ if (vasprintf(&text,fmt,ap)<0 || (text==0))
+ return;
+
+- logbrowser->append(QString("<warn>")+quotetext(text)+"</warn>");
++ ui->logbrowser->append(QString("<warn>")+quotetext(text)+"</warn>");
+ free(text);
+ qApp->processEvents();
+ }
+@@ -150,7 +158,7 @@ void progresswindow::printwarning(const
+ void progresswindow::clickedcancel()
+ {
+ cancelwasclicked=true;
+- cancelbutton->setEnabled(false);
++ ui->cancelbutton->setEnabled(false);
+ qApp->processEvents();
+ }
+
+--- a/src/progresswindow.h
++++ b/src/progresswindow.h
+@@ -23,10 +23,10 @@
+
+ #include <string>
+ #include <qstring.h>
+-#include "progresswindowbase.h"
++#include "ui_progresswindowbase.h"
+ #include "logoutput.h"
+
+-class progresswindow: public progresswindowbase, public logoutput
++class progresswindow: public QDialog, public logoutput
+ {
+ Q_OBJECT
+ protected:
+@@ -35,8 +35,10 @@ protected:
+
+ static QString quotetext(const char* text);
+ void closeEvent(QCloseEvent *e);
++ Ui::progresswindowbase* ui;
+ public:
+ progresswindow(QWidget *parent = 0, const char *name = 0);
++ ~progresswindow();
+ virtual bool cancelled()
+ {
+ return cancelwasclicked;
+--- a/src/progresswindowbase.ui
++++ b/src/progresswindowbase.ui
+@@ -1,74 +1,88 @@
+-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+-<class>progresswindowbase</class>
+-<widget class="QDialog">
+- <property name="name">
+- <cstring>progresswindowbase</cstring>
+- </property>
+- <property name="geometry">
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>600</width>
+- <height>480</height>
+- </rect>
+- </property>
+- <property name="caption">
+- <string>dvbcut</string>
+- </property>
+- <vbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QTextBrowser">
+- <property name="name">
+- <cstring>logbrowser</cstring>
+- </property>
+- <property name="textFormat">
+- <enum>LogText</enum>
+- </property>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout1</cstring>
+- </property>
+- <hbox>
+- <property name="name">
+- <cstring>unnamed</cstring>
+- </property>
+- <widget class="QProgressBar">
+- <property name="name">
+- <cstring>progressbar</cstring>
+- </property>
+- <property name="totalSteps">
+- <number>1000</number>
+- </property>
+- </widget>
+- <widget class="QPushButton">
+- <property name="name">
+- <cstring>cancelbutton</cstring>
+- </property>
+- <property name="text">
+- <string>cancel</string>
+- </property>
+- </widget>
+- </hbox>
+- </widget>
+- </vbox>
+-</widget>
+-<connections>
+- <connection>
+- <sender>cancelbutton</sender>
+- <signal>clicked()</signal>
+- <receiver>progresswindowbase</receiver>
+- <slot>clickedcancel()</slot>
+- </connection>
+-</connections>
+-<includes>
+- <include location="local" impldecl="in implementation">gettext.h</include>
+-</includes>
+-<slots>
+- <slot>setprogress(int)</slot>
+- <slot>clickedcancel()</slot>
+-</slots>
+-<layoutdefaults spacing="6" margin="11"/>
+-</UI>
++<?xml version="1.0" encoding="UTF-8"?>
++<ui version="4.0">
++ <class>progresswindowbase</class>
++ <widget class="QDialog" name="progresswindowbase">
++ <property name="geometry">
++ <rect>
++ <x>0</x>
++ <y>0</y>
++ <width>600</width>
++ <height>480</height>
++ </rect>
++ </property>
++ <property name="windowTitle">
++ <string>dvbcut</string>
++ </property>
++ <layout class="QVBoxLayout">
++ <item>
++ <widget class="Q3TextBrowser" name="logbrowser">
++ <property name="textFormat">
++ <enum>Qt::LogText</enum>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout">
++ <item>
++ <widget class="Q3ProgressBar" name="progressbar">
++ <property name="totalSteps">
++ <number>1000</number>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="cancelbutton">
++ <property name="text">
++ <string>cancel</string>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ <layoutdefault spacing="6" margin="11"/>
++ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
++ <customwidgets>
++ <customwidget>
++ <class>Q3Frame</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3Frame</header>
++ <container>1</container>
++ </customwidget>
++ <customwidget>
++ <class>Q3TextEdit</class>
++ <extends>Q3Frame</extends>
++ <header>q3textedit.h</header>
++ </customwidget>
++ <customwidget>
++ <class>Q3ProgressBar</class>
++ <extends>QFrame</extends>
++ <header>Qt3Support/Q3ProgressBar</header>
++ </customwidget>
++ <customwidget>
++ <class>Q3TextBrowser</class>
++ <extends>Q3TextEdit</extends>
++ <header>Qt3Support/Q3TextBrowser</header>
++ </customwidget>
++ </customwidgets>
++ <resources/>
++ <connections>
++ <connection>
++ <sender>cancelbutton</sender>
++ <signal>clicked()</signal>
++ <receiver>progresswindowbase</receiver>
++ <slot>clickedcancel()</slot>
++ <hints>
++ <hint type="sourcelabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ <hint type="destinationlabel">
++ <x>20</x>
++ <y>20</y>
++ </hint>
++ </hints>
++ </connection>
++ </connections>
++</ui>
+--- a/src/settings.cpp
++++ b/src/settings.cpp
+@@ -94,102 +94,102 @@ dvbcut_settings::~dvbcut_settings() {
+
+ void
+ dvbcut_settings::load_settings() {
+- int version = readNumEntry("/version", 0);
++ int version = value("/version", 0).toInt();
+ if (version >= 1) {
+ // config format version 1 or later
+ beginGroup("/wheel");
+- wheel_increments[WHEEL_INCR_NORMAL] = readNumEntry("/incr_normal", 25*60);
+- wheel_increments[WHEEL_INCR_SHIFT] = readNumEntry("/incr_shift", 25);
+- wheel_increments[WHEEL_INCR_CTRL] = readNumEntry("/incr_ctrl", 1);
+- wheel_increments[WHEEL_INCR_ALT] = readNumEntry("/incr_alt", 15*25*60);
+- wheel_threshold = readNumEntry("/threshold", 24);
++ wheel_increments[WHEEL_INCR_NORMAL] = value("/incr_normal", 25*60).toInt();
++ wheel_increments[WHEEL_INCR_SHIFT] = value("/incr_shift", 25).toInt();
++ wheel_increments[WHEEL_INCR_CTRL] = value("/incr_ctrl", 1).toInt();
++ wheel_increments[WHEEL_INCR_ALT] = value("/incr_alt", 15*25*60).toInt();
++ wheel_threshold = value("/threshold", 24).toInt();
+ // Note: delta is a multiple of 120 (see Qt documentation)
+- wheel_delta = readNumEntry("/delta", 120);
++ wheel_delta = value("/delta", 120).toInt();
+ if (wheel_delta == 0)
+ wheel_delta = 1; // avoid devide by zero
+ endGroup(); // wheel
+ beginGroup("/slider");
+- jog_maximum = readNumEntry("/jog_maximum", 180000);
+- jog_threshold = readNumEntry("/jog_threshold", 50);
++ jog_maximum = value("/jog_maximum", 180000).toInt();
++ jog_threshold = value("/jog_threshold", 50).toInt();
+ // to increase the "zero frames"-region of the jog-slider
+- jog_offset = readDoubleEntry("/jog_offset", 0.4);
++ jog_offset = value("/jog_offset", 0.4).toDouble();
+ // sub-intervals of jog_maximum
+- jog_interval = readNumEntry("/jog_interval", 1);
++ jog_interval = value("/jog_interval", 1).toInt();
+ if (jog_interval < 0)
+ jog_interval = 0;
+- lin_interval = readNumEntry("/lin_interval", 3600);
++ lin_interval = value("/lin_interval", 3600).toInt();
+ if (lin_interval < 0)
+ lin_interval = 0;
+ endGroup(); // slider
+ beginGroup("/lastdir");
+- lastdir = readEntry("/name", ".");
+- lastdir_update = readBoolEntry("/update", true);
++ lastdir = value("/name", ".").toString();
++ lastdir_update = value("/update", true).toBool();
+ endGroup(); // lastdir
+ beginGroup("/filter");
+- idxfilter = readEntry("/idxfilter", DVBCUT_DEFAULT_IDXFILTER);
+- prjfilter = readEntry("/prjfilter", DVBCUT_DEFAULT_PRJFILTER);
+- loadfilter = readEntry("/loadfilter", DVBCUT_DEFAULT_LOADFILTER);
++ idxfilter = value("/idxfilter", DVBCUT_DEFAULT_IDXFILTER).toString();
++ prjfilter = value("/prjfilter", DVBCUT_DEFAULT_PRJFILTER).toString();
++ loadfilter = value("/loadfilter", DVBCUT_DEFAULT_LOADFILTER).toString();
+ endGroup(); // filter
+ }
+ else {
+ // old (unnumbered) config format
+- wheel_increments[WHEEL_INCR_NORMAL] = readNumEntry("/wheel_incr_normal", 25*60);
+- wheel_increments[WHEEL_INCR_SHIFT] = readNumEntry("/wheel_incr_shift", 25);
+- wheel_increments[WHEEL_INCR_CTRL] = readNumEntry("/wheel_incr_ctrl", 1);
+- wheel_increments[WHEEL_INCR_ALT] = readNumEntry("/wheel_incr_alt", 15*25*60);
+- wheel_threshold = readNumEntry("/wheel_threshold", 24);
++ wheel_increments[WHEEL_INCR_NORMAL] = value("/wheel_incr_normal", 25*60).toInt();
++ wheel_increments[WHEEL_INCR_SHIFT] = value("/wheel_incr_shift", 25).toInt();
++ wheel_increments[WHEEL_INCR_CTRL] = value("/wheel_incr_ctrl", 1).toInt();
++ wheel_increments[WHEEL_INCR_ALT] = value("/wheel_incr_alt", 15*25*60).toInt();
++ wheel_threshold = value("/wheel_threshold", 24).toInt();
+ // Note: delta is a multiple of 120 (see Qt documentation)
+- wheel_delta = readNumEntry("/wheel_delta", 120);
++ wheel_delta = value("/wheel_delta", 120).toInt();
+ if (wheel_delta == 0)
+ wheel_delta = 1; // avoid devide by zero
+- jog_maximum = readNumEntry("/jog_maximum", 180000);
+- jog_threshold = readNumEntry("/jog_threshold", 50);
++ jog_maximum = value("/jog_maximum", 180000).toInt();
++ jog_threshold = value("/jog_threshold", 50).toInt();
+ // to increase the "zero frames"-region of the jog-slider
+- jog_offset = readDoubleEntry("/jog_offset", 0.4);
++ jog_offset = value("/jog_offset", 0.4).toDouble();
+ // sub-intervals of jog_maximum
+- jog_interval = readNumEntry("/jog_interval", 1);
++ jog_interval = value("/jog_interval", 1).toInt();
+ if (jog_interval < 0)
+ jog_interval = 0;
+- lin_interval = readNumEntry("/lin_interval", 3600);
++ lin_interval = value("/lin_interval", 3600).toInt();
+ if (lin_interval < 0)
+ lin_interval = 0;
+- lastdir = readEntry("/lastdir", ".");
++ lastdir = value("/lastdir", ".").toString();
+ lastdir_update = true;
+- idxfilter = readEntry("/idxfilter", DVBCUT_DEFAULT_IDXFILTER);
+- prjfilter = readEntry("/prjfilter", DVBCUT_DEFAULT_PRJFILTER);
+- loadfilter = readEntry("/loadfilter", DVBCUT_DEFAULT_LOADFILTER);
++ idxfilter = value("/idxfilter", DVBCUT_DEFAULT_IDXFILTER).toString();
++ prjfilter = value("/prjfilter", DVBCUT_DEFAULT_PRJFILTER).toString();
++ loadfilter = value("/loadfilter", DVBCUT_DEFAULT_LOADFILTER).toString();
+ // remove old-style entries
+- removeEntry("/wheel_incr_normal");
+- removeEntry("/wheel_incr_shift");
+- removeEntry("/wheel_incr_ctrl");
+- removeEntry("/wheel_incr_alt");
+- removeEntry("/wheel_threshold");
+- removeEntry("/wheel_delta");
+- removeEntry("/jog_maximum");
+- removeEntry("/jog_threshold");
+- removeEntry("/jog_offset");
+- removeEntry("/jog_interval");
+- removeEntry("/lin_interval");
+- removeEntry("/lastdir");
+- removeEntry("/idxfilter");
+- removeEntry("/prjfilter");
+- removeEntry("/loadfilter");
++ remove("/wheel_incr_normal");
++ remove("/wheel_incr_shift");
++ remove("/wheel_incr_ctrl");
++ remove("/wheel_incr_alt");
++ remove("/wheel_threshold");
++ remove("/wheel_delta");
++ remove("/jog_maximum");
++ remove("/jog_threshold");
++ remove("/jog_offset");
++ remove("/jog_interval");
++ remove("/lin_interval");
++ remove("/lastdir");
++ remove("/idxfilter");
++ remove("/prjfilter");
++ remove("/loadfilter");
+ }
+ if (version >= 2) {
+ /* float view scale factor */
+ beginGroup("/viewscalefactor");
+- viewscalefactor = readDoubleEntry("/current", 1.0);
+- viewscalefactor_custom = readDoubleEntry("/custom", 3.0);
++ viewscalefactor = value("/current", 1.0).toDouble();
++ viewscalefactor_custom = value("/custom", 3.0).toDouble();
+ endGroup(); // viewscalefactor
+ }
+ else {
+- viewscalefactor = (double)readNumEntry("/viewscalefactor", 1);
++ viewscalefactor = (double)value("/viewscalefactor", 1).toInt();
+ viewscalefactor_custom = 3.0;
+- removeEntry("/viewscalefactor");
++ remove("/viewscalefactor");
+ }
+- export_format = readNumEntry("/export_format", 0);
++ export_format = value("/export_format", 0).toInt();
+ beginGroup("/recentfiles");
+- recentfiles_max = readNumEntry("/max", 5);
++ recentfiles_max = value("/max", 5).toInt();
+ recentfiles.clear();
+ std::list<std::string> filenames;
+ QStringList keys = entryList("/");
+@@ -201,49 +201,49 @@ dvbcut_settings::load_settings() {
+ if (filename.isEmpty())
+ continue;
+ filenames.clear();
+- filenames.push_back(filename);
++ filenames.push_back(filename.toStdString());
+ QString idxfilename = readEntry(key + "-idx", "");
+ recentfiles.push_back(
+- std::pair<std::list<std::string>,std::string>(filenames, idxfilename));
++ std::pair<std::list<std::string>,std::string>(filenames, idxfilename.toStdString()));
+ }
+ else {
+ // NEW format with subkeys and multiple files!
+ beginGroup(key);
+- QString filename = readEntry("/0");
++ QString filename = value("/0").toString();
+ if (!filename.isEmpty()) {
+ // multiple input files?
+ int j=0;
+ filenames.clear();
+ while(!filename.isEmpty()) {
+- filenames.push_back(filename);
+- filename = readEntry("/" + QString::number(++j), "");
++ filenames.push_back(filename.toStdString());
++ filename = value("/" + QString::number(++j), "").toString();
+ }
+ QString idxfilename = readEntry("/idx", "");
+ recentfiles.push_back(
+- std::pair<std::list<std::string>,std::string>(filenames, idxfilename));
++ std::pair<std::list<std::string>,std::string>(filenames, idxfilename.toStdString()));
+ }
+ endGroup(); // key
+ }
+ }
+ endGroup(); // recentfiles
+ beginGroup("/labels");
+- start_label = readEntry("/start", DVBCUT_DEFAULT_START_LABEL);
+- stop_label = readEntry("/stop", DVBCUT_DEFAULT_STOP_LABEL);
+- chapter_label = readEntry("/chapter", DVBCUT_DEFAULT_CHAPTER_LABEL);
+- bookmark_label = readEntry("/bookmark", DVBCUT_DEFAULT_BOOKMARK_LABEL);
++ start_label = value("/start", DVBCUT_DEFAULT_START_LABEL).toString();
++ stop_label = value("/stop", DVBCUT_DEFAULT_STOP_LABEL).toString();
++ chapter_label = value("/chapter", DVBCUT_DEFAULT_CHAPTER_LABEL).toString();
++ bookmark_label = value("/bookmark", DVBCUT_DEFAULT_BOOKMARK_LABEL).toString();
+ endGroup(); // labels
+- start_bof = readBoolEntry("/start_bof", true);
+- stop_eof = readBoolEntry("/stop_eof", true);
++ start_bof = value("/start_bof", true).toBool();
++ stop_eof = value("/stop_eof", true).toBool();
+ beginGroup("/snapshots");
+- snapshot_type = readEntry("/type", "PNG");
+- snapshot_quality = readNumEntry("/quality", -1);
+- snapshot_prefix = readEntry("/prefix", "");
+- snapshot_delimiter = readEntry("/delimiter", "_");
+- snapshot_first = readNumEntry("/first", 1);
+- snapshot_width = readNumEntry("/width", 3);
+- snapshot_extension = readEntry("/extension", "png");
+- snapshot_range = readNumEntry("/range", 0);
+- snapshot_samples = readNumEntry("/samples", 1);
++ snapshot_type = value("/type", "PNG").toString();
++ snapshot_quality = value("/quality", -1).toInt();
++ snapshot_prefix = value("/prefix", "").toString();
++ snapshot_delimiter = value("/delimiter", "_").toString();
++ snapshot_first = value("/first", 1).toInt();
++ snapshot_width = value("/width", 3).toInt();
++ snapshot_extension = value("/extension", "png").toString();
++ snapshot_range = value("/range", 0).toInt();
++ snapshot_samples = value("/samples", 1).toInt();
+ endGroup(); // snapshots
+ beginGroup("/pipe");
+ pipe_command.clear();
+@@ -251,10 +251,10 @@ dvbcut_settings::load_settings() {
+ pipe_label.clear();
+ pipe_format.clear();
+ beginGroup("/0");
+- QString command = readEntry("/command", DVBCUT_DEFAULT_PIPE_COMMAND);
+- QString post = readEntry("/post", DVBCUT_DEFAULT_PIPE_POST);
+- QString label = readEntry("/label", DVBCUT_DEFAULT_PIPE_LABEL);
+- int format = readNumEntry("/format", DVBCUT_DEFAULT_PIPE_FORMAT);
++ QString command = value("/command", DVBCUT_DEFAULT_PIPE_COMMAND).toString();
++ QString post = value("/post", DVBCUT_DEFAULT_PIPE_POST).toString();
++ QString label = value("/label", DVBCUT_DEFAULT_PIPE_LABEL).toString();
++ int format = value("/format", DVBCUT_DEFAULT_PIPE_FORMAT).toInt();
+ endGroup(); // 0
+ unsigned int i = 0;
+ while(!command.isEmpty() && !label.isEmpty()) {
+@@ -274,64 +274,64 @@ dvbcut_settings::load_settings() {
+ endGroup(); // pipe
+ beginGroup("/chapters");
+ // length (>0) or number (<0) of chapter(s)
+- chapter_interval = readNumEntry("/interval", 600*25);
++ chapter_interval = value("/interval", 600*25).toInt();
+ // detection of scene changes is rather time comsuming...
+ //chapter_tolerance = readNumEntry("/tolerance", 10*25);
+ //... better switch it off per default!
+- chapter_tolerance = readNumEntry("/tolerance", 0);
++ chapter_tolerance = value("/tolerance", 0).toInt();
+ // average color distance needed for a scene change
+- chapter_threshold = readDoubleEntry("/threshold", 50.);
++ chapter_threshold = value("/threshold", 50.).toDouble();
+ // minimal length of a chapter
+- chapter_minimum = readNumEntry("/minimum", 200*25);
++ chapter_minimum = value("/minimum", 200*25).toInt();
+ endGroup(); // auto chapters
+ }
+
+ void
+ dvbcut_settings::save_settings() {
+- writeEntry("/version", 2); // latest config version
++ setValue("/version", 2); // latest config version
+ beginGroup("/wheel");
+- writeEntry("/incr_normal", wheel_increments[WHEEL_INCR_NORMAL]);
+- writeEntry("/incr_shift", wheel_increments[WHEEL_INCR_SHIFT]);
+- writeEntry("/incr_ctrl", wheel_increments[WHEEL_INCR_CTRL]);
+- writeEntry("/incr_alt", wheel_increments[WHEEL_INCR_ALT]);
+- writeEntry("/threshold", wheel_threshold);
+- writeEntry("/delta", wheel_delta);
++ setValue("/incr_normal", wheel_increments[WHEEL_INCR_NORMAL]);
++ setValue("/incr_shift", wheel_increments[WHEEL_INCR_SHIFT]);
++ setValue("/incr_ctrl", wheel_increments[WHEEL_INCR_CTRL]);
++ setValue("/incr_alt", wheel_increments[WHEEL_INCR_ALT]);
++ setValue("/threshold", wheel_threshold);
++ setValue("/delta", wheel_delta);
+ endGroup(); // wheel
+ beginGroup("/slider");
+- writeEntry("/jog_maximum", jog_maximum);
+- writeEntry("/jog_threshold", jog_threshold);
+- writeEntry("/jog_offset", jog_offset);
+- writeEntry("/jog_interval", jog_interval);
+- writeEntry("/lin_interval", lin_interval);
++ setValue("/jog_maximum", jog_maximum);
++ setValue("/jog_threshold", jog_threshold);
++ setValue("/jog_offset", jog_offset);
++ setValue("/jog_interval", jog_interval);
++ setValue("/lin_interval", lin_interval);
+ endGroup(); // slider
+ beginGroup("/lastdir");
+- writeEntry("/name", lastdir);
+- writeEntry("/update", lastdir_update);
++ setValue("/name", lastdir);
++ setValue("/update", lastdir_update);
+ endGroup(); // lastdir
+ beginGroup("/filter");
+- writeEntry("/idxfilter", idxfilter);
+- writeEntry("/prjfilter", prjfilter);
+- writeEntry("/loadfilter", loadfilter);
++ setValue("/idxfilter", idxfilter);
++ setValue("/prjfilter", prjfilter);
++ setValue("/loadfilter", loadfilter);
+ endGroup(); // filter
+ beginGroup("/viewscalefactor");
+- writeEntry("/current", viewscalefactor);
+- writeEntry("/custom", viewscalefactor_custom);
++ setValue("/current", viewscalefactor);
++ setValue("/custom", viewscalefactor_custom);
+ endGroup(); // viewscalefactor
+- writeEntry("/export_format", export_format);
++ setValue("/export_format", export_format);
+ beginGroup("/recentfiles");
+ // first remove any OLD recentfiles entries to clean the settings file (<revision 108)!!!
+ QStringList keys = entryList("/");
+ for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it )
+- removeEntry("/" + *it);
++ remove("/" + *it);
+ // then remove ALL new recentfiles entries!!!
+ // (otherwise it would be a mess with erased&inserted muliple file entries of different size)
+ QStringList subkeys = subkeyList("/");
+ for ( QStringList::Iterator its = subkeys.begin(); its != subkeys.end(); ++its ) {
+ QStringList keys = entryList("/" + *its);
+ for ( QStringList::Iterator itk = keys.begin(); itk != keys.end(); ++itk )
+- removeEntry("/" + *its + "/" + *itk);
++ remove("/" + *its + "/" + *itk);
+ }
+- writeEntry("/max", int(recentfiles_max));
++ setValue("/max", int(recentfiles_max));
+ // and NOW write the updated list from scratch!!!
+ for (unsigned int i = 0; i < recentfiles.size(); ++i) {
+ QString key = "/" + QString::number(i);
+@@ -339,46 +339,46 @@ dvbcut_settings::save_settings() {
+ int j=0;
+ for(std::list<std::string>::iterator it=settings().recentfiles[i].first.begin();
+ it!=settings().recentfiles[i].first.end(); it++, j++)
+- writeEntry("/" + QString::number(j), *it);
+- writeEntry("/idx", recentfiles[i].second);
++ setValue("/" + QString::number(j), QString::fromStdString(*it));
++ setValue("/idx", QString::fromStdString(recentfiles[i].second));
+ endGroup(); // key
+ }
+ endGroup(); // recentfiles
+ beginGroup("/labels");
+- writeEntry("/start", start_label);
+- writeEntry("/stop", stop_label);
+- writeEntry("/chapter", chapter_label);
+- writeEntry("/bookmark", bookmark_label);
++ setValue("/start", start_label);
++ setValue("/stop", stop_label);
++ setValue("/chapter", chapter_label);
++ setValue("/bookmark", bookmark_label);
+ endGroup(); // labels
+- writeEntry("/start_bof", start_bof);
+- writeEntry("/stop_eof", stop_eof);
++ setValue("/start_bof", start_bof);
++ setValue("/stop_eof", stop_eof);
+ beginGroup("/snapshots");
+- writeEntry("/type", snapshot_type);
+- writeEntry("/quality", snapshot_quality);
+- writeEntry("/prefix", snapshot_prefix);
+- writeEntry("/delimiter", snapshot_delimiter);
+- writeEntry("/first", snapshot_first);
+- writeEntry("/width", snapshot_width);
+- writeEntry("/extension", snapshot_extension);
+- writeEntry("/range", snapshot_range);
+- writeEntry("/samples", snapshot_samples);
++ setValue("/type", snapshot_type);
++ setValue("/quality", snapshot_quality);
++ setValue("/prefix", snapshot_prefix);
++ setValue("/delimiter", snapshot_delimiter);
++ setValue("/first", snapshot_first);
++ setValue("/width", snapshot_width);
++ setValue("/extension", snapshot_extension);
++ setValue("/range", snapshot_range);
++ setValue("/samples", snapshot_samples);
+ endGroup(); // snapshots
+ beginGroup("/pipe");
+ for (unsigned int i = 0; i < pipe_command.size(); ++i) {
+ QString key = "/" + QString::number(i);
+ beginGroup(key);
+- writeEntry("/command", pipe_command[i]);
+- writeEntry("/post", pipe_post[i]);
+- writeEntry("/label", pipe_label[i]);
+- writeEntry("/format", pipe_format[i]);
++ setValue("/command", pipe_command[i]);
++ setValue("/post", pipe_post[i]);
++ setValue("/label", pipe_label[i]);
++ setValue("/format", pipe_format[i]);
+ endGroup(); // key
+ }
+ endGroup(); // pipe
+ beginGroup("/chapters");
+- writeEntry("/interval", chapter_interval);
+- writeEntry("/tolerance", chapter_tolerance);
+- writeEntry("/threshold", chapter_threshold);
+- writeEntry("/minimum", chapter_minimum);
++ setValue("/interval", chapter_interval);
++ setValue("/tolerance", chapter_tolerance);
++ setValue("/threshold", chapter_threshold);
++ setValue("/minimum", chapter_minimum);
+ endGroup(); // auto chapters
+ }
+
+--- /dev/null
++++ b/src/version.h
+@@ -0,0 +1,7 @@
++#ifndef _DVBCUT_VERSION_H
++#define _DVBCUT_VERSION_H
++
++#define VERSION "qt"
++#define REVISION "1"
++
++#endif //_DVBCUT_VERSION_H
+\ No newline at end of file
diff --git a/debian/patches/series b/debian/patches/series
index 0df1d75..eff59f7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
fix-ftbfs-gcc4.6.patch
+port-to-qt4.patch
--
dvbcut packaging
More information about the pkg-multimedia-commits
mailing list