Hello community,

here is the log from the commit of package ark for openSUSE:Factory checked in 
at 2015-01-08 23:15:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ark (Old)
 and      /work/SRC/openSUSE:Factory/.ark.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ark"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ark/ark.changes  2014-11-19 20:29:55.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.ark.new/ark.changes     2015-01-08 
23:15:44.000000000 +0100
@@ -1,0 +2,7 @@
+Wed Dec 17 20:31:57 UTC 2014 - [email protected]
+
+- Update to KDE Applications 14.12.0
+   * KDE Applications 14.12.0
+   * See https://www.kde.org/announcements/announce-applications-14.12.0.php
+
+-------------------------------------------------------------------

Old:
----
  ark-4.14.3.tar.xz

New:
----
  ark-14.12.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ark.spec ++++++
--- /var/tmp/diff_new_pack.HJeDHU/_old  2015-01-08 23:15:45.000000000 +0100
+++ /var/tmp/diff_new_pack.HJeDHU/_new  2015-01-08 23:15:45.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           ark
-Version:        4.14.3
+Version:        14.12.0
 Release:        0
 Summary:        KDE Archiver Tool
 License:        GPL-2.0+

++++++ ark-4.14.3.tar.xz -> ark-14.12.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/app/ark.appdata.xml 
new/ark-14.12.0/app/ark.appdata.xml
--- old/ark-4.14.3/app/ark.appdata.xml  2014-10-25 14:53:24.000000000 +0200
+++ new/ark-14.12.0/app/ark.appdata.xml 2014-11-24 00:37:06.000000000 +0100
@@ -10,6 +10,7 @@
   <name xml:lang="cs">Ark</name>
   <name xml:lang="da">Ark</name>
   <name xml:lang="de">Ark</name>
+  <name xml:lang="el">Ark</name>
   <name xml:lang="en-GB">Ark</name>
   <name xml:lang="es">Ark</name>
   <name xml:lang="et">Ark</name>
@@ -44,6 +45,7 @@
   <summary xml:lang="cs">Archivační nástroj</summary>
   <summary xml:lang="da">Arkiveringsværktøj</summary>
   <summary xml:lang="de">Archivprogramm</summary>
+  <summary xml:lang="el">Εργαλείο αρχειοθέτησης</summary>
   <summary xml:lang="en-GB">Archiving Tool</summary>
   <summary xml:lang="es">Herramienta de archivado</summary>
   <summary xml:lang="et">Arhiivide haldamise rakendus</summary>
@@ -82,6 +84,7 @@
     <p xml:lang="ca">L'Ark és una utilitat gràfica de compressió/descompressió 
de fitxers que implementa múltiples formats, incloent tar, gzip, bzip2, rar i 
zip, i també imatges de CD-ROM. L'Ark es pot utilitzar per explorar, extreure, 
crear, i modificar arxiua.</p>
     <p xml:lang="da">Ark er et grafisk værktøj til 
komprimering/dekomprimering, med understøttelse for flere formater, derunder 
tar, gzip, bzip2, rar og zip, såvel som cd-rom-imagefiler. Ark kan bruges til 
at gennemse, udtrække, oprette og redigere.</p>
     <p xml:lang="de">Ark ist ein grafisches Dienstprogramm zum 
Packen/Entpacken von Dateien mit Unterstützung für mehrere Formate wie tar, 
gzip, bzip2, rar, zip und auch CD-Abbilder. Mit Ark können Sie können Sie 
Archive durchsehen, entpacken, erstellen und bearbeiten.</p>
+    <p xml:lang="el">Το Ark είναι ένα γραφικό εργαλείο συμπίεσης/αποσυμπίεσης 
αρχείων με υποστήριξη για πολλούς τύπους αποθήκευσης, όπως tar, gzip, bzip2, 
rar και zip, καθώς επίσης και εικόνες CD-ROM. To Ark χρησιμεύει για την 
περιήγηση, εξαγωγή, δημιουργία και τροποποίηση αρχειοθηκών.</p>
     <p xml:lang="en-GB">Ark is a graphical file compression/decompression 
utility with support for multiple formats, including tar, gzip, bzip2, rar and 
zip, as well as CD-ROM images. Ark can be used to browse, extract, create, and 
modify archives.</p>
     <p xml:lang="es">Ark es una utilidad gráfica de compresión y descompresión 
de archivos que permite usar diversos formatos, como tar, gzip, bzip2, rar y 
zip, así como imágenes de CD-ROM. Ark se puede usar para explorar, extraer, 
crear y modificar archivos comprimidos.</p>
     <p xml:lang="et">Ark on graafiline failide tihendamise ehk kokkupakkimise 
ja nende lahtipakkimise tööriist, mis toetab väga paljusid vorminguid, 
sealhulgas tar, gzip, bzip2, rar and zip, samuti CD-ROM-i tõmmised. Arki abil 
saab arhiivifaile sirvida, lahti pakkida, luua ja muuta.</p>
@@ -115,6 +118,7 @@
     <p xml:lang="cs">Vlastnosti:</p>
     <p xml:lang="da">Funktioner:</p>
     <p xml:lang="de">Leistungsmerkmale:</p>
+    <p xml:lang="el">Χαρακτηριστικά:</p>
     <p xml:lang="en-GB">Features:</p>
     <p xml:lang="es">Funcionalidades:</p>
     <p xml:lang="et">Omadused:</p>
@@ -141,7 +145,7 @@
     <p xml:lang="uk">Можливості:</p>
     <p xml:lang="x-test">xxFeatures:xx</p>
     <p xml:lang="zh-CN">功能:</p>
-    <p xml:lang="zh-TW">特色:</p>
+    <p xml:lang="zh-TW">功能:</p>
     <ul>
       <li>Several formats supported: gzip, bzip2, zip, rar, 7z and more</li>
       <li xml:lang="ar">دعم صيغ متعدّدة: مثل gzip، و bzip2، و zip، و rar، و 7z 
وغيرها</li>
@@ -150,6 +154,7 @@
       <li xml:lang="cs">Je podporováno několik formátů: gzip, bzip2, zip, rar, 
7z a další</li>
       <li xml:lang="da">Flere understøttede formater: gzip, bzip2, zip, rar, 
7z og flere</li>
       <li xml:lang="de">Mehrere unterstützte Formate wie gzip, bzip2, zip, 
rar, 7z und mehr</li>
+      <li xml:lang="el">Υποστηρίζονται πολλοί τύποι αποθήκευσης: gzip, bzip2, 
zip, rar, 7z και άλλοι</li>
       <li xml:lang="en-GB">Several formats supported: gzip, bzip2, zip, rar, 
7z and more</li>
       <li xml:lang="es">Permite el uso de diversos formatos: gzip, bzip2, zip, 
rar, 7z y más</li>
       <li xml:lang="et">Paljude vormingute toetus: gzip, bzip2, zip, rar, 7z 
ja veel paljud.</li>
@@ -183,6 +188,7 @@
       <li xml:lang="cs">Náhled obsahu souborů bez jejich rozbalení</li>
       <li xml:lang="da">Forhåndsvis filindhold uden at udtrække filer</li>
       <li xml:lang="de">Vorschau der Dateiinhalte ohne das Entpacken der 
Dateien</li>
+      <li xml:lang="el">Προεπισκόπηση περιεχομένων αρχείου χωρίς εξαγωγή 
αρχείων</li>
       <li xml:lang="en-GB">Preview file contents without extracting files</li>
       <li xml:lang="es">Vista previa del contenido de archivos sin 
extraerlos</li>
       <li xml:lang="et">Failide sisu näitamine ilma neid lahti pakkimata.</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/app/ark_addtoservicemenu.desktop 
new/ark-14.12.0/app/ark_addtoservicemenu.desktop
--- old/ark-4.14.3/app/ark_addtoservicemenu.desktop     2014-10-25 
14:53:24.000000000 +0200
+++ new/ark-14.12.0/app/ark_addtoservicemenu.desktop    2014-11-24 
00:37:06.000000000 +0100
@@ -256,6 +256,7 @@
 Name[cs]=Jako archiv TAR.GZ
 Name[da]=Som TAR.GZ-arkiv
 Name[de]=Als TAR.GZ-Archiv
+Name[el]=Ως αρχειοθήκη TAR.GZ
 Name[en_GB]=As TAR.GZ Archive
 Name[es]=Como archivo comprimido TAR.GZ
 Name[et]=TAR.GZ-arhiivina
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/app/mainwindow.cpp 
new/ark-14.12.0/app/mainwindow.cpp
--- old/ark-4.14.3/app/mainwindow.cpp   2014-10-25 14:53:24.000000000 +0200
+++ new/ark-14.12.0/app/mainwindow.cpp  2014-11-24 00:37:06.000000000 +0100
@@ -38,6 +38,7 @@
 #include <KDebug>
 #include <KEditToolBar>
 #include <KShortcutsDialog>
+#include <KXMLGUIFactory>
 
 #include <QDragEnterEvent>
 #include <QDragMoveEvent>
@@ -69,6 +70,8 @@
     if (m_recentFilesAction) {
         m_recentFilesAction->saveEntries(KGlobal::config()->group("Recent 
Files"));
     }
+
+    guiFactory()->removeClient(m_part);
     delete m_part;
     m_part = 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/part/ark_part.rc 
new/ark-14.12.0/part/ark_part.rc
--- old/ark-4.14.3/part/ark_part.rc     2014-10-25 14:53:24.000000000 +0200
+++ new/ark-14.12.0/part/ark_part.rc    2014-11-24 00:37:06.000000000 +0100
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui>
-<kpartgui name="ark_part" version="1">
+<kpartgui name="ark_part" version="2">
 <MenuBar>
        <Menu name="file">
                <text>&amp;File</text>
@@ -12,6 +12,7 @@
                <Action name="delete"/>
                <Action name="extract"/>
                <Action name="preview"/>
+               <Action name="openwith"/>
        </Menu>
        <Menu name="settings">
                <text>&amp;Settings</text>
@@ -25,4 +26,10 @@
        <Action name="extract"/>
        <Action name="preview"/>
 </ToolBar>
+<Menu name="context_menu">
+       <Action name="delete"/>
+       <Action name="extract"/>
+       <Action name="preview"/>
+       <Action name="openwith"/>
+</Menu>
 </kpartgui>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/part/part.cpp 
new/ark-14.12.0/part/part.cpp
--- old/ark-4.14.3/part/part.cpp        2014-10-25 14:53:24.000000000 +0200
+++ new/ark-14.12.0/part/part.cpp       2014-11-24 00:37:06.000000000 +0100
@@ -45,6 +45,7 @@
 #include <KIO/NetAccess>
 #include <KIcon>
 #include <KInputDialog>
+#include <KMenu>
 #include <KMessageBox>
 #include <KPluginFactory>
 #include <KRun>
@@ -138,7 +139,7 @@
 
 Part::~Part()
 {
-    factory()->removeClient(this);
+    qDeleteAll(m_previewDirList);
 
     saveSplitterSizes();
 
@@ -213,6 +214,8 @@
 
 void Part::setupView()
 {
+    m_view->setContextMenuPolicy(Qt::CustomContextMenu);
+
     m_view->setModel(m_model);
 
     m_view->setSortingEnabled(true);
@@ -223,8 +226,10 @@
             this, SLOT(selectionChanged()));
 
     //TODO: fix an actual eventhandler
-    connect(m_view, SIGNAL(itemTriggered(QModelIndex)),
-            this, SLOT(slotPreview(QModelIndex)));
+    connect(m_view, SIGNAL(activated(const QModelIndex &)),
+            this, SLOT(slotPreviewWithInternalViewer()));
+
+    connect(m_view, SIGNAL(customContextMenuRequested(QPoint)), this, 
SLOT(slotShowContextMenu()));
 
     connect(m_model, SIGNAL(columnsInserted(QModelIndex,int,int)),
             this, SLOT(adjustColumns()));
@@ -240,13 +245,19 @@
 
     m_saveAsAction = KStandardAction::saveAs(this, SLOT(slotSaveAs()), 
actionCollection());
 
+    m_previewChooseAppAction = 
actionCollection()->addAction(QLatin1String("openwith"));
+    m_previewChooseAppAction->setText(i18nc("open a file with external 
program", "Open &With..."));
+    m_previewChooseAppAction->setIcon(KIcon(QLatin1String("document-open")));
+    m_previewChooseAppAction->setStatusTip(i18n("Click to open the selected 
file with an external program"));
+    connect(m_previewChooseAppAction, SIGNAL(triggered(bool)), this, 
SLOT(slotPreviewWithExternalProgram()));
+
     m_previewAction = actionCollection()->addAction(QLatin1String( "preview" 
));
     m_previewAction->setText(i18nc("to preview a file inside an archive", 
"Pre&view"));
     m_previewAction->setIcon(KIcon( QLatin1String( "document-preview-archive" 
)));
     m_previewAction->setStatusTip(i18n("Click to preview the selected file"));
     m_previewAction->setShortcuts(QList<QKeySequence>() << Qt::Key_Return << 
Qt::Key_Space);
     connect(m_previewAction, SIGNAL(triggered(bool)),
-            this, SLOT(slotPreview()));
+            this, SLOT(slotPreviewWithInternalViewer()));
 
     m_extractFilesAction = actionCollection()->addAction(QLatin1String( 
"extract" ));
     m_extractFilesAction->setText(i18n("E&xtract"));
@@ -292,6 +303,8 @@
     m_addDirAction->setEnabled(!isBusy() && isWritable);
     m_deleteFilesAction->setEnabled(!isBusy() && 
(m_view->selectionModel()->selectedRows().count() > 0)
                                     && isWritable);
+    m_previewChooseAppAction->setEnabled(!isBusy() && 
(m_view->selectionModel()->selectedRows().count() > 0)
+                                    && isWritable);
 
     QMenu *menu = m_extractFilesAction->menu();
     if (!menu) {
@@ -537,12 +550,17 @@
     emit setWindowCaption(prettyName);
 }
 
-void Part::slotPreview()
+void Part::slotPreviewWithInternalViewer()
 {
-    slotPreview(m_view->selectionModel()->currentIndex());
+    preview(m_view->selectionModel()->currentIndex(), InternalViewer);
 }
 
-void Part::slotPreview(const QModelIndex & index)
+void Part::slotPreviewWithExternalProgram()
+{
+    preview(m_view->selectionModel()->currentIndex(), ExternalProgram);
+}
+
+void Part::preview(const QModelIndex &index, PreviewMode mode)
 {
     if (!isPreviewable(index)) {
         return;
@@ -554,7 +572,10 @@
         Kerfuffle::ExtractionOptions options;
         options[QLatin1String( "PreservePaths" )] = true;
 
-        ExtractJob *job = m_model->extractFile(entry[ InternalID ], 
m_previewDir.name(), options);
+        m_previewDirList.append(new KTempDir);
+        m_previewMode = mode;
+        ExtractJob *job = m_model->extractFile(entry[InternalID], 
m_previewDirList.last()->name(), options);
+
         registerJob(job);
         connect(job, SIGNAL(result(KJob*)),
                 this, SLOT(slotPreviewExtracted(KJob*)));
@@ -571,15 +592,28 @@
         const ArchiveEntry& entry =
             m_model->entryForIndex(m_view->selectionModel()->currentIndex());
 
-        QString fullName =
-            m_previewDir.name() + QLatin1Char('/') + 
entry[FileName].toString();
+        ExtractJob *extractJob = qobject_cast<ExtractJob*>(job);
+        Q_ASSERT(extractJob);
+        QString fullName = extractJob->destinationDirectory() + 
entry[FileName].toString();
 
         // Make sure a maliciously crafted archive with parent folders named 
".." do
         // not cause the previewed file path to be located outside the 
temporary
         // directory, resulting in a directory traversal issue.
         fullName.remove(QLatin1String("../"));
 
-        ArkViewer::view(fullName, widget());
+        // TODO: get rid of m_previewMode by extending ExtractJob with a 
PreviewJob.
+        // This would prevent race conditions if we ever stop disabling
+        // the whole UI while extracting a file to preview it.
+        switch (m_previewMode) {
+        case InternalViewer:
+            ArkViewer::view(fullName, widget());
+            break;
+        case ExternalProgram:
+            KUrl::List list;
+            list.append(KUrl(fullName));
+            KRun::displayOpenWithDialog(list, widget(), true);
+            break;
+        }
     } else {
         KMessageBox::error(widget(), job->errorString());
     }
@@ -721,7 +755,6 @@
         }
 
         if (ArkSettings::openDestinationFolderAfterExtraction()) {
-
             KUrl destinationDirectory(extractJob->destinationDirectory());
             destinationDirectory.cleanPath();
 
@@ -913,4 +946,10 @@
     }
 }
 
+void Part::slotShowContextMenu()
+{
+    KMenu *popup = static_cast<KMenu 
*>(factory()->container(QLatin1String("context_menu"), this));
+    popup->popup(QCursor::pos());
+}
+
 } // namespace Ark
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ark-4.14.3/part/part.h new/ark-14.12.0/part/part.h
--- old/ark-4.14.3/part/part.h  2014-10-25 14:53:24.000000000 +0200
+++ new/ark-14.12.0/part/part.h 2014-11-24 00:37:06.000000000 +0100
@@ -51,6 +51,11 @@
     Q_OBJECT
     Q_INTERFACES(Interface)
 public:
+    enum PreviewMode {
+        InternalViewer,
+        ExternalProgram
+    };
+
     Part(QWidget *parentWidget, QObject *parent, const QVariantList &);
     ~Part();
     static KAboutData* createAboutData();
@@ -66,8 +71,8 @@
 private slots:
     void slotLoadingStarted();
     void slotLoadingFinished(KJob *job);
-    void slotPreview();
-    void slotPreview(const QModelIndex & index);
+    void slotPreviewWithInternalViewer();
+    void slotPreviewWithExternalProgram();
     void slotPreviewExtracted(KJob*);
     void slotError(const QString& errorMessage, const QString& details);
     void slotExtractFiles();
@@ -79,6 +84,7 @@
     void slotAddFilesDone(KJob*);
     void slotDeleteFiles();
     void slotDeleteFilesDone(KJob*);
+    void slotShowContextMenu();
     void saveSplitterSizes();
     void slotToggleInfoPanel(bool);
     void slotSaveAs();
@@ -103,9 +109,11 @@
     QList<QVariant> selectedFiles();
     QList<QVariant> selectedFilesWithChildren();
     void registerJob(KJob *job);
+    void preview(const QModelIndex &index, PreviewMode mode);
 
     ArchiveModel         *m_model;
     QTreeView            *m_view;
+    KAction              *m_previewChooseAppAction;
     KAction              *m_previewAction;
     KAction              *m_extractFilesAction;
     KAction              *m_addFilesAction;
@@ -114,8 +122,9 @@
     KAction              *m_saveAsAction;
     InfoPanel            *m_infoPanel;
     QSplitter            *m_splitter;
-    KTempDir              m_previewDir;
+    QList<KTempDir*>      m_previewDirList;
     bool                  m_busy;
+    PreviewMode           m_previewMode;
 
     KAbstractWidgetJobTracker  *m_jobTracker;
     KParts::StatusBarExtension *m_statusBarExtension;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to