[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="&amp;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="&amp;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="&amp;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="&amp;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="&amp;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>&amp;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>&amp;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 &amp;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 -&gt;|</string>
+-        </property>
+-        <property name="menuText">
+-            <string>Play audio: last 2 seconds</string>
+-        </property>
+-        <property name="accel">
+-            <string>Shift+&gt;</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 |-&gt;</string>
+-        </property>
+-        <property name="menuText">
+-            <string>Play audio: next 2 seconds</string>
+-        </property>
+-        <property name="accel">
+-            <string>&lt;</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>&amp;About</string>
+-	</property>
+-	<property name="menuText">
+-	    <string>&amp;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>&amp;Contents</string>
+-	</property>
+-	<property name="menuText">
+-	    <string>&amp;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&amp;)</signal>
+-        <receiver>dvbcutbase</receiver>
+-        <slot>eventlistcontextmenu(QListBoxItem*,const QPoint&amp;)</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 &amp;)</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>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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 &amp;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 -&gt;|</string>
++   </property>
++   <property name="shortcut">
++    <string>Shift+&gt;</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 |-&gt;</string>
++   </property>
++   <property name="shortcut">
++    <string>&lt;</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>&amp;About</string>
++   </property>
++   <property name="iconText">
++    <string>&amp;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>&amp;Contents</string>
++   </property>
++   <property name="iconText">
++    <string>&amp;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>&amp;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>&amp;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>&amp;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>&amp;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