[kde-doc-english] [k3b/kf5] /: Merge branch 'origin/master' into kf5

Johannes Obermayr johannesobermayr at gmx.de
Tue Nov 3 20:45:01 UTC 2015


Git commit f81dde8cc81837e96cecc581ff480e8ab0795939 by Johannes Obermayr.
Committed on 03/11/2015 at 20:39.
Pushed by jobermayr into branch 'kf5'.

Merge branch 'origin/master' into kf5

M  +1    -1    doc/index.docbook
M  +1    -1    libk3b/jobs/k3bblankingjob.cpp
M  +13   -13   libk3b/jobs/k3bcdcopyjob.cpp
M  +1    -1    libk3b/jobs/k3bdatatrackreader.cpp
M  +2    -2    libk3b/jobs/k3bdvdcopyjob.cpp
M  +2    -2    libk3b/jobs/k3biso9660imagewritingjob.cpp
M  +2    -2    libk3b/jobs/k3bmetawriter.cpp
M  +2    -2    libk3b/jobs/k3bverificationjob.cpp
M  +6    -6    libk3b/projects/datacd/k3bdatajob.cpp
M  +1    -1    libk3b/projects/datacd/k3bdatamultisessionparameterjob.cpp
M  +1    -1    libk3b/projects/datacd/k3bmsinfofetcher.cpp
M  +2    -2    libk3b/projects/k3bcdrdaowriter.cpp
M  +1    -1    libk3b/projects/k3bgrowisofshandler.cpp
M  +3    -3    libk3b/projects/mixedcd/k3bmixedjob.cpp
M  +2    -2    libk3b/projects/videocd/k3bvcdjob.cpp
M  +1    -1    libk3b/projects/videodvd/k3bvideodvdjob.cpp
M  +6    -6    libk3b/tools/k3bstdguiitems.cpp
M  +4    -4    libk3bdevice/k3bdevice.cpp
M  +3    -3    libk3bdevice/k3bdevicemanager.cpp
M  +1    -1    plugins/decoder/flac/k3bflacdecoder.cpp
R  +1    -1    plugins/encoder/lame/base_k3bmanualbitratesettingsdialog.ui
M  +1    -1    plugins/encoder/sox/k3bsoxencoder.cpp
M  +2    -2    plugins/project/audioprojectcddb/k3baudioprojectcddbplugin.cpp
M  +4    -4    src/k3b.cpp
M  +1    -1    src/k3bdiskinfoview.cpp
M  +24   -31   src/k3bjobprogressdialog.cpp
M  +9    -8    src/k3bjobprogressdialog.h
M  +4    -1    src/k3blsofwrapper.cpp
M  +1    -1    src/k3bsystemproblemdialog.cpp
M  +1    -1    src/k3bwritingmodewidget.cpp
M  +3    -3    src/misc/k3bimagewritingdialog.cpp
M  +1    -1    src/misc/k3bmediacopydialog.cpp
M  +1    -1    src/option/k3bdevicewidget.cpp
R  +1    -0    src/org.kde.k3b.desktop
M  +20   -20   src/projects/base_k3badvanceddataimagesettings.ui
M  +2    -2    src/projects/k3bdataimagesettingswidget.cpp
M  +2    -2    src/projects/k3bdatamultisessioncombobox.cpp
M  +1    -1    src/projects/k3bdatamultisessionimportdialog.cpp
M  +3    -3    src/projects/k3bdatapropertiesdialog.cpp
M  +1    -1    src/projects/k3bdataurladdingdialog.cpp
M  +1    -1    src/projects/k3bvcdburndialog.cpp
M  +16   -3    src/rip/k3baudiocdview.cpp
M  +1    -1    src/rip/k3bvideocdrippingdialog.cpp

http://commits.kde.org/k3b/f81dde8cc81837e96cecc581ff480e8ab0795939

diff --cc libk3b/projects/videocd/k3bvcdjob.cpp
index b508d97,2bd5518..ddedcd5
--- a/libk3b/projects/videocd/k3bvcdjob.cpp
+++ b/libk3b/projects/videocd/k3bvcdjob.cpp
@@@ -194,12 -197,12 +194,12 @@@ void K3b::VcdJob::vcdxBuild(
      m_process = new K3b::Process();
      m_process->setSplitStdout( true );
  
-     emit infoMessage( i18n( "Creating Cue/Bin files ..." ), K3b::Job::MessageInfo );
+     emit infoMessage( i18n( "Creating Cue/Bin files..." ), K3b::Job::MessageInfo );
      const K3b::ExternalBin* bin = k3bcore ->externalBinManager() ->binObject( "vcdxbuild" );
      if ( !bin ) {
 -        kDebug() << "(K3b::VcdJob) could not find vcdxbuild executable";
 +        qDebug() << "(K3b::VcdJob) could not find vcdxbuild executable";
          emit infoMessage( i18n( "Could not find %1 executable." , QString("vcdxbuild") ), K3b::Job::MessageError );
-         emit infoMessage( i18n( "To create Video CDs you have to install VcdImager Version %1." ,QString( ">= 0.7.12") ), K3b::Job::MessageInfo );
+         emit infoMessage( i18n( "To create Video CDs you have to install VcdImager version %1." ,QString( ">= 0.7.12") ), K3b::Job::MessageInfo );
          emit infoMessage( i18n( "You can find this on your distribution disks or download it from http://www.vcdimager.org" ), K3b::Job::MessageInfo );
          cancelAll();
          jobFinished( false );
diff --cc plugins/project/audioprojectcddb/k3baudioprojectcddbplugin.cpp
index 14d32a0,2be842c..50fc973
--- a/plugins/project/audioprojectcddb/k3baudioprojectcddbplugin.cpp
+++ b/plugins/project/audioprojectcddb/k3baudioprojectcddbplugin.cpp
@@@ -70,10 -73,9 +70,10 @@@ void K3bAudioProjectCddbPlugin::activat
      }
      else {
          if( !m_progress ) {
-             m_progress.reset( new QProgressDialog( i18n("Query Cddb"), i18n("Cancel"), 0, 0, parent ) );
 -            m_progress = new K3b::ProgressDialog( i18n("Query CDDB"), parent, i18n("Audio Project") );
 -            connect( m_progress, SIGNAL(cancelClicked()),
 -                     this, SLOT(slotCancelClicked()) );
++            m_progress.reset( new QProgressDialog( i18n("Query CDDB"), i18n("Cancel"), 0, 0, parent ) );
 +            m_progress->setWindowTitle( i18n("Audio Project") );
 +        } else {
 +            m_progress->reset();
          }
  
          K3b::CDDB::CDDBJob* job = K3b::CDDB::CDDBJob::queryCddb( m_doc->toToc() );
diff --cc src/k3b.cpp
index 4f7dde5,d93e1b9..a420939
--- a/src/k3b.cpp
+++ b/src/k3b.cpp
@@@ -301,10 -301,10 +301,10 @@@ void K3b::MainWindow::initActions(
      d->actionFileSave->setStatusTip( d->actionFileSave->toolTip() );
  
      d->actionFileSaveAs = KStandardAction::saveAs( this, SLOT(slotFileSaveAs()), actionCollection() );
-     d->actionFileSaveAs->setToolTip( i18n( "Saves the current project to a new url" ) );
+     d->actionFileSaveAs->setToolTip( i18n( "Saves the current project to a new URL" ) );
      d->actionFileSaveAs->setStatusTip( d->actionFileSaveAs->toolTip() );
  
 -    KAction* actionFileSaveAll = new KAction( KIcon( "document-save-all" ), i18n("Save All"), this );
 +    QAction* actionFileSaveAll = new QAction( QIcon::fromTheme( "document-save-all" ), i18n("Save All"), this );
      actionFileSaveAll->setToolTip( i18n( "Saves all open projects" ) );
      actionFileSaveAll->setStatusTip( actionFileSaveAll->toolTip() );
      actionCollection()->addAction( "file_save_all", actionFileSaveAll );
@@@ -342,7 -342,7 +342,7 @@@
      actionCollection()->addAction( "file_new_mixed", actionFileNewMixed );
      connect( actionFileNewMixed, SIGNAL(triggered(bool)), this, SLOT(slotNewMixedDoc()) );
  
-     QAction* actionFileNewVcd = new QAction( QIcon::fromTheme( "media-optical-cd-video" ), i18n("New &Video CD Project"), this );
 -    KAction* actionFileNewVcd = new KAction( KIcon( "media-optical-video" ), i18n("New &Video CD Project"), this );
++    QAction* actionFileNewVcd = new QAction( QIcon::fromTheme( "media-optical-video" ), i18n("New &Video CD Project"), this );
      actionFileNewVcd->setToolTip( i18n("Creates a new Video CD project") );
      actionFileNewVcd->setStatusTip( actionFileNewVcd->toolTip() );
      actionCollection()->addAction( "file_new_vcd", actionFileNewVcd );
@@@ -354,7 -354,7 +354,7 @@@
      actionCollection()->addAction( "file_new_movix", actionFileNewMovix );
      connect( actionFileNewMovix, SIGNAL(triggered(bool)), this, SLOT(slotNewMovixDoc()) );
  
-     QAction* actionFileNewVideoDvd = new QAction( QIcon::fromTheme( "media-optical-dvd-video" ), i18n("New V&ideo DVD Project"), this );
 -    KAction* actionFileNewVideoDvd = new KAction( KIcon( "media-optical-video" ), i18n("New V&ideo DVD Project"), this );
++    QAction* actionFileNewVideoDvd = new QAction( QIcon::fromTheme( "media-optical-video" ), i18n("New V&ideo DVD Project"), this );
      actionFileNewVideoDvd->setToolTip( i18n("Creates a new Video DVD project") );
      actionFileNewVideoDvd->setStatusTip( actionFileNewVideoDvd->toolTip() );
      actionCollection()->addAction( "file_new_video_dvd", actionFileNewVideoDvd );
@@@ -402,8 -402,8 +402,8 @@@
      actionCollection()->addAction( "tools_format_medium", actionToolsFormatMedium );
      connect( actionToolsFormatMedium, SIGNAL(triggered(bool)), this, SLOT(slotFormatMedium()) );
  
 -    KAction* actionToolsWriteImage = new KAction( KIcon( "tools-media-optical-burn-image" ), i18n("&Burn Image..."), this );
 +    QAction* actionToolsWriteImage = new QAction( QIcon::fromTheme( "tools-media-optical-burn-image" ), i18n("&Burn Image..."), this );
-     actionToolsWriteImage->setToolTip( i18n("Write an Iso9660, cue/bin, or cdrecord clone image to an optical disc") );
+     actionToolsWriteImage->setToolTip( i18n("Write an ISO 9660, cue/bin, or cdrecord clone image to an optical disc") );
      actionToolsWriteImage->setStatusTip( actionToolsWriteImage->toolTip() );
      actionCollection()->addAction( "tools_write_image", actionToolsWriteImage );
      connect( actionToolsWriteImage, SIGNAL(triggered(bool)), this, SLOT(slotWriteImage()) );
diff --cc src/k3bjobprogressdialog.cpp
index 7b08ecd,07833cd..b05ebe9
--- a/src/k3bjobprogressdialog.cpp
+++ b/src/k3bjobprogressdialog.cpp
@@@ -31,35 -31,34 +31,34 @@@
  #include "k3bversion.h"
  #include "k3bthememanager.h"
  
 -#include <KColorScheme>
 -#include <KConfig>
 -#include <KDebug>
 -#include <KGlobal>
 -#include <KGlobalSettings>
 -#include <kio/global.h>
 -#include <kjobtrackerinterface.h>
 -#include <KLocale>
 -#include <KMessageBox>
 -#include <KNotification>
 -#include <KProgressDialog>
 -#include <KPushButton>
 -#include <KStandardGuiItem>
 -#include <KSqueezedTextLabel>
 -
 -#include <QCloseEvent>
 -#include <QDateTime>
 -#include <QFont>
 -#include <QFrame>
 -#include <QGridLayout>
 -#include <QHBoxLayout>
 -#include <QKeyEvent>
 -#include <QLabel>
 -#include <QPushButton>
 -#include <QScrollBar>
 -#include <QString>
 -#include <QTreeWidget>
 -#include <QVBoxLayout>
 +#include <KConfigWidgets/KColorScheme>
 +#include <KConfigCore/KConfig>
 +#include <KConfigCore/KSharedConfig>
 +#include <KCoreAddons/KJobTrackerInterface>
 +#include <KCoreAddons/KFormat>
 +#include <KNotifications/KNotification>
 +#include <KWidgetsAddons/KSqueezedTextLabel>
 +#include <KI18n/KLocalizedString>
 +#include <KIOCore/KIO/Global>
 +#include <KWidgetsAddons/KMessageBox>
 +
 +#include <QtCore/QDebug>
 +#include <QtCore/QDateTime>
 +#include <QtCore/QString>
- #include <QtCore/QTimer>
 +#include <QtGui/QCloseEvent>
 +#include <QtGui/QIcon>
 +#include <QtGui/QFont>
 +#include <QtGui/QKeyEvent>
 +#include <QtWidgets/QDialogButtonBox>
 +#include <QtWidgets/QFrame>
 +#include <QtWidgets/QGridLayout>
 +#include <QtWidgets/QHBoxLayout>
 +#include <QtWidgets/QLabel>
 +#include <QtWidgets/QProgressBar>
 +#include <QtWidgets/QPushButton>
 +#include <QtWidgets/QScrollBar>
 +#include <QtWidgets/QTreeWidget>
 +#include <QtWidgets/QVBoxLayout>
  
  
  class K3b::JobProgressDialog::Private
@@@ -372,13 -356,12 +370,12 @@@ void K3b::JobProgressDialog::slotFinish
      const KColorScheme colorScheme( QPalette::Normal, KColorScheme::Window );
      QPalette taskPalette( m_labelTask->palette() );
  
-     // Show elapsed time at the end of the task
-     {
-         const int elapsedSecs = m_startTime.secsTo( QDateTime::currentDateTime() );
-         const QString elapsed = QLocale().toString( QTime().addSecs( elapsedSecs ), QLocale::NarrowFormat );
-         m_labelElapsedTime->setText( i18nc( "@info %1 is a duration formatted using QLocale::toString",
-                                             "Elapsed time: %1", elapsed ) );
-     }
+     // Only show elapsed time at the end of the task
+     // setVisible( false ) would move elapsed time one line up ...
+     m_labelRemainingTime->setText( "" );
 -    m_labelElapsedTime->setText( i18nc( "@info %1 is a duration formatted using KLocale::prettyFormatDuration",
 -        "Elapsed time: %1", KGlobal::locale()->prettyFormatDuration( m_timer.elapsed() ) ) );
++    m_labelElapsedTime->setText( i18nc( "@info %1 is a duration formatted using QLocale::toString",
++        "Elapsed time: %1", QLocale().toString( QTime().addSecs( m_timer.elapsed() ), QLocale::NarrowFormat ) ) );
+     m_timer.invalidate();
  
      if( success ) {
          m_pixLabel->setThemePixmap( K3b::Theme::PROGRESS_SUCCESS );
@@@ -412,10 -395,9 +409,9 @@@
  
      m_labelTask->setPalette( taskPalette );
  
 -    showButton( Cancel, false );
 -    showButton( User1, true );
 -    showButton( User2, true );
 +    m_cancelButton->hide();
 +    m_showDbgOutButton->show();
 +    m_closeButton->show();
-     m_timer->stop();
  }
  
  
@@@ -515,10 -511,10 +511,10 @@@ void K3b::JobProgressDialog::slotNewTas
  
  void K3b::JobProgressDialog::slotStarted()
  {
 -    kDebug();
 +    qDebug();
      d->lastProgress = 0;
-     m_timer->start( 1000 );
-     m_startTime = QDateTime::currentDateTime();
+     m_lastProgressUpdateTime = 0;
+     m_timer.start();
      m_plainCaption = k3bappcore->k3bMainWindow()->windowTitle();
  
      m_logFile.open();
@@@ -559,11 -540,23 +540,23 @@@ void K3b::JobProgressDialog::slotProgre
  {
      if( percent > d->lastProgress ) {
          d->lastProgress = percent;
-         m_lastProgressUpdateTime = QDateTime::currentDateTime();
          k3bappcore->k3bMainWindow()->setPlainCaption( QString( "(%1%) %2" ).arg(percent).arg(m_plainCaption) );
  
 -        setCaption( QString( "(%1%) %2" ).arg(percent).arg(m_job->jobDescription()) );
 +        setWindowTitle( QString( "(%1%) %2" ).arg(percent).arg(m_job->jobDescription()) );
      }
+ 
+     if( m_timer.isValid() ) {
+ 	qint64 elapsed = m_timer.elapsed();
 -        m_labelElapsedTime->setText( i18nc( "@info %1 is a duration formatted using KLocale::prettyFormatDuration",
 -            "Elapsed time: %1", KGlobal::locale()->prettyFormatDuration( elapsed ) ) );
++        m_labelElapsedTime->setText( i18nc( "@info %1 is a duration formatted using QLocale::toString",
++            "Elapsed time: %1", QLocale().toString( QTime().addSecs( elapsed ), QLocale::NarrowFormat ) ) );
+         // Update "Remaining time" max. each second (1000 ms)
+         if ( elapsed - m_lastProgressUpdateTime > 999 ) {
 -            m_labelRemainingTime->setText( i18nc( "@info %1 is a duration formatted using KLocale::prettyFormatDuration",
 -                "Remaining: %1", KGlobal::locale()->prettyFormatDuration(
 -                ( d->lastProgress > 0 && d->lastProgress < 100 ) ? elapsed * ( 100 - d->lastProgress) / d->lastProgress : 0 ) ) );
++            m_labelRemainingTime->setText( i18nc( "@info %1 is a duration formatted using QLocale::toString",
++                "Remaining: %1", QLocale().toString( QTime().addSecs(
++                ( d->lastProgress > 0 && d->lastProgress < 100 ) ? elapsed * ( 100 - d->lastProgress) / d->lastProgress : 0 ), QLocale::NarrowFormat ) ) );
+             m_lastProgressUpdateTime = elapsed;
+         }
+     }
  }
  
  
diff --cc src/k3bjobprogressdialog.h
index cdb6c37,b89fd3a..a210494
--- a/src/k3bjobprogressdialog.h
+++ b/src/k3bjobprogressdialog.h
@@@ -21,8 -21,9 +21,8 @@@
  #include "k3bdebuggingoutputcache.h"
  #include "k3bjobhandler.h"
  
- #include <QtCore/QDateTime>
 -#include <KDialog>
 -
 -#include <QElapsedTimer>
++#include <QtCore/QElapsedTimer>
 +#include <QtWidgets/QDialog>
  
  class KSqueezedTextLabel;
  class QCloseEvent;
@@@ -94,11 -95,10 +94,12 @@@ namespace K3b 
          virtual void slotStarted();
  
          /**
 -         * \reimpl from KDialog
 +         * \reimpl from QDialog
           */
 +        void reject() override;
-         void slotUpdateTime();
-         void slotShowDebuggingOutput();
+         virtual void slotButtonClicked( int button );
 -        void slotShowDebuggingOutput();
++
++	void slotShowDebuggingOutput();
  
          void slotProgress( int );
  
diff --cc src/misc/k3bimagewritingdialog.cpp
index fa5d0e0,c424c19..0df6c76
--- a/src/misc/k3bimagewritingdialog.cpp
+++ b/src/misc/k3bimagewritingdialog.cpp
@@@ -168,12 -166,12 +168,12 @@@ void K3b::ImageWritingDialog::Private::
  {
      QTreeWidgetItem* isoRootItem = new QTreeWidgetItem( infoView );
      isoRootItem->setText( 0, i18n("Detected:") );
-     isoRootItem->setText( 1, i18n("Iso9660 image") );
+     isoRootItem->setText( 1, i18n("ISO 9660 image") );
      isoRootItem->setForeground( 0, infoTextColor );
 -    isoRootItem->setIcon( 1, KIcon( "application-x-cd-image") );
 +    isoRootItem->setIcon( 1, QIcon::fromTheme( "application-x-cd-image") );
      isoRootItem->setTextAlignment( 0, Qt::AlignRight );
  
 -    const KIO::filesize_t size = K3b::filesize( KUrl(isoF->fileName()) );
 +    const KIO::filesize_t size = K3b::filesize( QUrl::fromLocalFile(isoF->fileName()) );
      const KIO::filesize_t volumeSpaceSize = Private::volumeSpaceSize( *isoF );
  
      QTreeWidgetItem* item = new QTreeWidgetItem( infoView );
diff --cc src/projects/base_k3badvanceddataimagesettings.ui
index d521d67,f9c506f..a960854
--- a/src/projects/base_k3badvanceddataimagesettings.ui
+++ b/src/projects/base_k3badvanceddataimagesettings.ui
@@@ -12,98 -12,6 +12,98 @@@
     </rect>
    </property>
    <layout class="QGridLayout" name="_2">
 +   <item row="0" column="0">
 +    <widget class="QGroupBox" name="groupBox">
 +     <property name="title">
 +      <string>File Systems</string>
 +     </property>
 +     <layout class="QVBoxLayout">
 +      <item>
 +       <widget class="QCheckBox" name="m_checkRockRidge">
 +        <property name="toolTip">
 +         <string>Add Rock Ridge extensions to the file system</string>
 +        </property>
 +        <property name="whatsThis">
 +         <string><p>If this option is checked, K3b will generate the System Use Sharing Protocol records (SUSP) specified by the Rock Ridge Interchange Protocol (IEEE-P1282).
- <p>Rock Ridge extends the ISO-9660 filesystem by features equal to the UNIX filesystems (permissions, symbolic links, very long filenames, ...). It uses ISO-8859 or UTF-16 based characters and allows 255 octets.
- <p>Rock Ridge extensions are located at the end of each ISO-9660 directory record. This makes the Rock Ridge tree closely coupled to the ISO-9660 tree.
++<p>Rock Ridge extends the ISO 9660 filesystem by features equal to the UNIX filesystems (permissions, symbolic links, very long filenames, ...). It uses ISO-8859 or UTF-16 based characters and allows 255 octets.
++<p>Rock Ridge extensions are located at the end of each ISO 9660 directory record. This makes the Rock Ridge tree closely coupled to the ISO 9660 tree.
 +<p><b>It is highly recommended to use Rock Ridge extensions on every data CD or DVD.</b></string>
 +        </property>
 +        <property name="text">
 +         <string>&Generate Rock Ridge extensions</string>
 +        </property>
 +        <property name="checked">
 +         <bool>true</bool>
 +        </property>
 +       </widget>
 +      </item>
 +      <item>
 +       <widget class="QCheckBox" name="m_checkJoliet">
 +        <property name="toolTip">
 +         <string>Add Joliet extensions to the file system</string>
 +        </property>
 +        <property name="whatsThis">
-          <string><p>If this option is checked, K3b will add additional Joliet extensions to the ISO-9660 file system.
- <p>Joliet is not an accepted independent international standard like ISO-9660 or Rock Ridge. It is mainly used on Windows systems.
++         <string><p>If this option is checked, K3b will add additional Joliet extensions to the ISO 9660 file system.
++<p>Joliet is not an accepted independent international standard like ISO 9660 or Rock Ridge. It is mainly used on Windows systems.
 +<p>Joliet does not allow all characters, so the Joliet filenames are not identical to the filenames on disk (as compared to Rock Ridge). Joliet has a filename length limitation of 64 chars (independent from the character coding and type e.g. European vs. Japanese). This is inconvenient, as modern file systems all allow 255 characters per path name component.
 +<p>Joliet uses UTF-16 coding.
 +<p><b>Caution:</b> With the exception of Linux and FreeBSD, there is no POSIX-like OS that supports Joliet. So <b>never create Joliet-only CDs or DVDs</b> for that reason.</string>
 +        </property>
 +        <property name="text">
 +         <string>Generate &Joliet extensions</string>
 +        </property>
 +       </widget>
 +      </item>
 +      <item>
 +       <widget class="QCheckBox" name="m_checkUdf">
 +        <property name="toolTip">
 +         <string>Add UDF structures to the file system</string>
 +        </property>
 +        <property name="whatsThis">
-          <string><p>If this option is checked K3b will create UDF filesystem structures in addition to the ISO9660 filesystem.
++         <string><p>If this option is checked K3b will create UDF filesystem structures in addition to the ISO 9660 filesystem.
 +<p>The UDF (<em><b>U</b>niversal <b>D</b>isk <b>F</b>ormat</em>) is mainly used for DVDs.</string>
 +        </property>
 +        <property name="text">
 +         <string>Generate &UDF structures</string>
 +        </property>
 +       </widget>
 +      </item>
 +     </layout>
 +    </widget>
 +   </item>
 +   <item row="0" column="1">
 +    <widget class="QGroupBox" name="groupBox_2">
 +     <property name="title">
 +      <string>Other Settings</string>
 +     </property>
 +     <layout class="QVBoxLayout" name="verticalLayout_7">
 +      <item>
 +       <widget class="QCheckBox" name="m_checkPreservePermissions">
 +        <property name="whatsThis">
 +         <string><p>If this option is checked, all files in the resulting file system will have exactly the same permissions as the source files. (Otherwise, all files will have equal permissions and be owned by root).
 +<p>This is mainly useful for backups.<p><b>Caution:</b> The permissions may not make much sense on other file systems; for example, if a user that owns a file on the CD or DVD does not exist.</string>
 +        </property>
 +        <property name="text">
 +         <string>Preserve file permissions (bac&kup)</string>
 +        </property>
 +       </widget>
 +      </item>
 +      <item>
 +       <spacer name="verticalSpacer">
 +        <property name="orientation">
 +         <enum>Qt::Vertical</enum>
 +        </property>
 +        <property name="sizeHint" stdset="0">
 +         <size>
 +          <width>20</width>
 +          <height>40</height>
 +         </size>
 +        </property>
 +       </spacer>
 +      </item>
 +     </layout>
 +    </widget>
 +   </item>
     <item row="1" column="0" colspan="2">
      <widget class="QGroupBox" name="groupBox_3">
       <property name="whatsThis">
diff --cc src/rip/k3baudiocdview.cpp
index 627d569,c108f40..1810d48
--- a/src/rip/k3baudiocdview.cpp
+++ b/src/rip/k3baudiocdview.cpp
@@@ -33,33 -33,34 +33,34 @@@
  #include "k3bmediacache.h"
  #include "k3bmodelutils.h"
  
 -#include <KAction>
 -#include <KActionCollection>
 -#include <KActionMenu>
 -#include <KComboBox>
 -#include <KConfig>
 -#include <KDebug>
 -#include <KDialog>
 -#include <KIconLoader>
 -#include <KLineEdit>
 -#include <KLocale>
 -#include <KMenu>
 -#include <KMessageBox>
 -#include <KNotification>
 -#include <KStandardAction>
 -#include <KStandardDirs>
 -#include <KToolBar>
 -#include <KToolBarSpacerAction>
 -
 -#include <QFont>
 -#include <QFormLayout>
 -#include <QVBoxLayout>
 -#include <QItemSelectionModel>
 -#include <QKeyEvent>
 -#include <QLabel>
 -#include <QList>
 -#include <QSpinBox>
 -#include <QTreeView>
 -#include <QDate>
 +#include <KCompletion/KComboBox>
 +#include <KCompletion/KLineEdit>
 +#include <KConfigCore/KConfig>
 +#include <KConfigWidgets/KStandardAction>
 +#include <KIconThemes/KIconLoader>
 +#include <KI18n/KLocalizedString>
 +#include <KNotifications/KNotification>
 +#include <KWidgetsAddons/KActionMenu>
 +#include <KWidgetsAddons/KMessageBox>
 +#include <KWidgetsAddons/KToolBarSpacerAction>
 +#include <KXmlGui/KActionCollection>
 +#include <KXmlGui/KToolBar>
 +
++#include <QtCore/QDate>
 +#include <QtCore/QDebug>
 +#include <QtCore/QItemSelectionModel>
 +#include <QtCore/QList>
 +#include <QtGui/QFont>
 +#include <QtGui/QKeyEvent>
 +#include <QtWidgets/QAction>
 +#include <QtWidgets/QDialog>
 +#include <QtWidgets/QDialogButtonBox>
 +#include <QtWidgets/QFormLayout>
 +#include <QtWidgets/QLabel>
 +#include <QtWidgets/QMenu>
 +#include <QtWidgets/QSpinBox>
 +#include <QtWidgets/QTreeView>
 +#include <QtWidgets/QVBoxLayout>
  
  #include <libkcddb/genres.h>
  #include <libkcddb/cdinfo.h>
@@@ -361,16 -364,14 +362,22 @@@ void K3b::AudioCdView::slotEditTrackCdd
          form->addRow( line );
          form->addRow( i18n("Artist:"), editArtist );
          form->addRow( i18n("Extra info:"), editExtInfo );
 +        form->setContentsMargins( 0, 0, 0, 0 );
 +
 +        QDialogButtonBox* buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dialog );
 +        connect( buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()) );
 +        connect( buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()) );
 +
 +        QVBoxLayout* dlgLayout = new QVBoxLayout( this );
 +        dlgLayout->addLayout( form );
 +        dlgLayout->addWidget( buttonBox );
  
+         editTitle->setFocus( Qt::TabFocusReason );
+ 
+         // load album's artist by default if no artist is specified yet
+         if ( editArtist->text().isEmpty() )
+             editArtist->setText( d->trackModel->cddbInfo().get( KCDDB::Artist ).toString() );
+ 
 -        dialog.setMainWidget(w);
          dialog.resize( qMax( qMax(dialog.sizeHint().height(), dialog.sizeHint().width()), 300), dialog.sizeHint().height() );
  
          if( dialog.exec() == QDialog::Accepted ) {
@@@ -384,22 -385,29 +391,26 @@@
  
  void K3b::AudioCdView::slotEditAlbumCddb()
  {
 -    KDialog dialog( this);
 -    dialog.setCaption(i18n("Album CDDB"));
 +    QDialog dialog( this);
-     dialog.setWindowTitle(i18n("Album Cddb"));
++    dialog.setWindowTitle(i18n("Album CDDB"));
      dialog.setModal(true);
 -    dialog.setButtons(KDialog::Ok|KDialog::Cancel);
 -    dialog.setDefaultButton(KDialog::Ok);
 -    QWidget* w = new QWidget( &dialog );
 -
 -    KLineEdit* editTitle = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Title ).toString(), w );
 -    KLineEdit* editArtist = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Artist ).toString(), w );
 -    KLineEdit* editExtInfo = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Comment ).toString(), w );
 -    QSpinBox* spinYear = new QSpinBox( w );
 +
 +    KLineEdit* editTitle = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Title ).toString(), this );
 +    KLineEdit* editArtist = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Artist ).toString(), this );
 +    KLineEdit* editExtInfo = new KLineEdit( d->trackModel->cddbInfo().get( KCDDB::Comment ).toString(), this );
 +    QSpinBox* spinYear = new QSpinBox( this );
      spinYear->setRange( 1, 9999 );
-     spinYear->setValue( d->trackModel->cddbInfo().get( KCDDB::Year ).toInt() );
-     QFrame* line = new QFrame( this );
+     if ( d->trackModel->cddbInfo().get( KCDDB::Year ).toInt() == 0 ) {
+         spinYear->setValue( QDate::currentDate().year() ); // set the current year to default if no year specified yet
+     } else {
+         spinYear->setValue( d->trackModel->cddbInfo().get( KCDDB::Year ).toInt() );
+     }
+     QFrame* line = new QFrame( w );
      line->setFrameShape( QFrame::HLine );
      line->setFrameShadow( QFrame::Sunken );
 -    KComboBox* comboGenre = new KComboBox( w );
 +    KComboBox* comboGenre = new KComboBox( this );
      comboGenre->addItems( KCDDB::Genres().i18nList() );
 -    KComboBox* comboCat = new KComboBox( w );
 +    KComboBox* comboCat = new KComboBox( this );
      comboCat->addItems( KCDDB::Categories().i18nList() );
  
      QString genre = d->trackModel->cddbInfo().get( KCDDB::Genre ).toString();
@@@ -426,16 -434,9 +437,18 @@@
      form->addRow( i18n("Year:"), spinYear );
      form->addRow( line );
      form->addRow( i18n("Category:"), comboCat );
 +    form->setContentsMargins( 0, 0, 0, 0 );
 +
 +    QDialogButtonBox* buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dialog );
 +    connect( buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()) );
 +    connect( buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()) );
 +
 +    QVBoxLayout* dlgLayout = new QVBoxLayout( this );
 +    dlgLayout->addLayout( form );
 +    dlgLayout->addWidget( buttonBox );
 +
+     editTitle->setFocus(Qt::TabFocusReason);
+ 
 -    dialog.setMainWidget(w);
      dialog.resize( qMax( qMax(dialog.sizeHint().height(), dialog.sizeHint().width()), 300), dialog.sizeHint().height() );
  
      if( dialog.exec() == QDialog::Accepted ) {


More information about the kde-doc-english mailing list