Compare commits

..

No commits in common. 'ubuntu/plucky' and 'ubuntu/focal' have entirely different histories.

99
debian/changelog vendored

@ -1,98 +1,5 @@
lxqt-archiver (1.1.0-0ubuntu1) plucky; urgency=medium lxqt-archiver (0.0.96-0ubuntu1) cosmic; urgency=medium
* New upstream release. * Initial release.
- Bump build dependencies.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 15 Nov 2024 15:32:25 -0600 -- Simon Quigley <tsimonq2@ubuntu.com> Mon, 09 Jul 2018 19:16:31 -0500
lxqt-archiver (1.0.0-0ubuntu1) oracular; urgency=medium
* New upstream release.
* Bump Standards-Version to 4.7.0, no changes necessary.
* Adjust dependencies.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Thu, 15 Aug 2024 16:49:03 -0500
lxqt-archiver (0.9.1-0ubuntu1) noble; urgency=medium
* New upstream release.
* Update copyright file.
* Remove 0001-Support-use-of-7zip.patch, now included in upstream code
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Fri, 23 Feb 2024 14:34:49 -0600
lxqt-archiver (0.9.0-0ubuntu2) noble; urgency=medium
* Fix invalid argument use of 7z. (LP: #2052880)
-- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sun, 11 Feb 2024 21:59:12 +0000
lxqt-archiver (0.9.0-0ubuntu1) noble; urgency=medium
* New upstream release.
* Bump build dependencies.
* Bump Standards-version to 4.6.2, no changes needed.
-- Simon Quigley <tsimonq2@ubuntu.com> Sun, 12 Nov 2023 18:08:55 -0600
lxqt-archiver (0.8.0-0ubuntu1) mantic; urgency=medium
* New upstream release.
* Bump build dependencies.
* Bump Standards-version to 4.6.2, no changes needed.
* Update copyright years.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 11 Aug 2023 09:49:36 -0500
lxqt-archiver (0.7.0-0ubuntu2) lunar; urgency=medium
* No-change rebuild against libfm-qt 1.2.1.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Fri, 27 Jan 2023 15:49:34 -0600
lxqt-archiver (0.7.0-0ubuntu1) lunar; urgency=medium
* New upstream version.
* Fix the watch file, for real this time.
* Lubuntuify the package slightly, to make debhelper happy.
* Bump build dependencies in debian/control.
-- Simon Quigley <tsimonq2@ubuntu.com> Thu, 17 Nov 2022 22:12:24 -0600
lxqt-archiver (0.6.0-1) experimental; urgency=medium
* New upstream release.
* Upstreamed compatible changes from Ubuntu, modifying the following files:
- control
- copyright
- lintian-overrides
- rules
- upstream/*
- lxqt-archiver.install
-- Aaron Rainbolt <arraybolt3@gmail.com> Tue, 12 Jul 2022 17:15:16 -0500
lxqt-archiver (0.3.0-2) unstable; urgency=medium
* Source only upload for migration to testing
-- Yao Wei (魏銘廷) <mwei@debian.org> Mon, 01 Feb 2021 19:36:32 +0800
lxqt-archiver (0.3.0-1) unstable; urgency=medium
[ Andrew Lee (李健秋) ]
* Add myself as uploaders
* Correct source/format file
* debian/lxqt-archiver.install: ship correct files
[ Yao Wei (魏銘廷) ]
* debian/copyright: Update copyright file
* debian/control: Add mwei@debian.org as Uploader
-- Yao Wei (魏銘廷) <mwei@debian.org> Thu, 07 Jan 2021 21:41:59 +0800
lxqt-archiver (0.0.0.96-1) experimental; urgency=medium
* Initial release (Closes: #902808)
-- Alf Gaida <agaida@siduction.org> Mon, 25 Jun 2018 22:15:30 +0200

1
debian/compat vendored

@ -0,0 +1 @@
11

110
debian/control vendored

@ -1,74 +1,29 @@
Source: lxqt-archiver Source: lxqt-archiver
Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
Original-Maintainer: LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org>
Uploaders: Alf Gaida <agaida@siduction.org>,
Andrew Lee (李健秋) <ajqlee@debian.org>,
Yao Wei (魏銘廷) <mwei@debian.org>,
Simon Quigley <tsimonq2@debian.org>,
Aaron Rainbolt <arraybolt3@gmail.com>
Section: x11 Section: x11
Priority: optional Priority: optional
Build-Depends: cmake (>= 3.18), Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
debhelper-compat (= 13), Uploaders: Simon Quigley <tsimonq2@ubuntu.com>
libfm-qt6-dev (>= 2.1.0), Build-Depends: cmake,
debhelper (>= 11),
libjson-glib-dev, libjson-glib-dev,
libmagic-dev, libmagic-dev,
libxcb-composite0-dev, lxqt-build-tools
libxcb-cursor-dev, Standards-Version: 4.1.5
libxcb-damage0-dev,
libxcb-dpms0-dev,
libxcb-dri2-0-dev,
libxcb-dri3-dev,
libxcb-ewmh-dev,
libxcb-glx0-dev,
libxcb-icccm4-dev,
libxcb-keysyms1-dev,
libxcb-present-dev,
libxcb-record0-dev,
libxcb-render0-dev,
libxcb-res0-dev,
libxcb-screensaver0-dev,
libxcb-shape0-dev,
libxcb-shm0-dev,
libxcb-util-dev,
libxcb-xf86dri0-dev,
libxcb-xfixes0-dev,
libxcb-xinerama0-dev,
libxcb-xinput-dev,
libxcb-xkb-dev,
libxcb-xtest0-dev,
libxcb-xv0-dev,
libxcb-xvmc0-dev,
libxkbcommon-dev (>= 0.5.0),
lxqt-build-tools (>= 2.1.0)
Standards-Version: 4.7.0
Vcs-Browser: https://git.lubuntu.me/Lubuntu/lxqt-archiver-packaging
Vcs-Git: https://git.lubuntu.me/Lubuntu/lxqt-archiver-packaging.git
Debian-Vcs-Browser: https://salsa.debian.org/lxqt-team/lxqt-archiver
Debian-Vcs-Git: https://salsa.debian.org/lxqt-team/lxqt-archiver.git
Homepage: https://github.com/lxqt/lxqt-archiver Homepage: https://github.com/lxqt/lxqt-archiver
Rules-Requires-Root: no Vcs-Browser: https://phab.lubuntu.me/source/lxqt-archiver/
Vcs-Git: https://phab.lubuntu.me/source/lxqt-archiver.git
Package: lxqt-archiver Package: lxqt-archiver
Architecture: any Architecture: any
Depends: bzip2, p7zip-full, ${misc:Depends}, ${shlibs:Depends} Depends: bzip2,
Recommends: gvfs, lxqt-archiver-l10n, unzip, xz-utils, zip p7zip-full,
Suggests: arj, unzip,
binutils, xz-utils,
cpio, zip,
lha, ${misc:Depends},
lzip, ${shlibs:Depends}
lzma, Recommends: lxqt-archiver-l10n
lzop, Suggests: gvfs
ncompress,
rar,
rpm2cpio,
rzip,
sharutils,
unace,
unalz,
unrar-free | unar | unrar | p7zip-rar,
zoo
Description: Archive Manager for LXQt Description: Archive Manager for LXQt
LXQt Archiver is an archive manager for the LXQt environment. LXQt Archiver is an archive manager for the LXQt environment.
It allows you to: It allows you to:
@ -91,37 +46,14 @@ Description: Archive Manager for LXQt
compress (.Z), lzip (.lz), lzop (.lzo), lzma (.lzma) and xz (.xz) compress (.Z), lzip (.lz), lzop (.lzo), lzma (.lzma) and xz (.xz)
. .
LXQt Archiver doesn't perform archive operations by itself, but relies on LXQt Archiver doesn't perform archive operations by itself, but relies on
standard tools for this. standard backend tools to accomplish this.
. .
This package contain the LXQt archiver. This package contains LXQt Archiver.
Package: lxqt-archiver-l10n Package: lxqt-archiver-l10n
Architecture: all Architecture: all
Multi-Arch: foreign Multi-Arch: foreign
Section: localization Section: localization
Depends: qt6-translations-l10n, ${misc:Depends} Depends: qttranslations5-l10n, ${misc:Depends}
Description: Language package for lxqt-archiver Description: Language package for lxqt-archiver
LXQt Archiver is an archive manager for the LXQt environment. This package contains the l10n files needed by LXQt Archiver.
It allows you to:
* Create and modify archives.
* View the content of an archive.
* View a file contained in an archive.
* Extract files from the archive.
.
LXQt Archiver supports the following formats:
* Tar (.tar) archives, including those compressed with
gzip (.tar.gz, .tgz), bzip (.tar.bz, .tbz), bzip2 (.tar.bz2, .tbz2),
compress (.tar.Z, .taz), lzip (.tar.lz, .tlz), lzop (.tar.lzo, .tzo),
lzma (.tar.lzma) and xz (.tar.xz)
* Zip archives (.zip)
* Jar archives (.jar, .ear, .war)
* 7z archives (.7z)
* iso9660 CD images (.iso)
* Lha archives (.lzh)
* Single files compressed with gzip (.gz), bzip (.bz), bzip2 (.bz2),
compress (.Z), lzip (.lz), lzop (.lzo), lzma (.lzma) and xz (.xz)
.
LXQt Archiver doesn't perform archive operations by itself, but relies on
standard tools for this.
.
This package contains the l10n files needed by lxqt-archiver.

76
debian/copyright vendored

@ -3,73 +3,27 @@ Upstream-Name: lxqt-archiver
Source: https://github.com/lxqt/lxqt-archiver Source: https://github.com/lxqt/lxqt-archiver
Files: * Files: *
Copyright: 2018-2024 LXQt team Copyright: 2001-2012 The Free Software Foundation, Inc.
License: GPL-2+ 2018 The LXQt team
Comment: Some of the source code is derived from Engrampa and File
Roller
Files: src/passworddialog.cpp
src/passworddialog.h
Copyright: Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
License: GPL-2+
Files: src/main.cpp
src/core/*
Copyright: 2018-2022 LXQt team
2001-2012 Free Software Foundation, Inc.
License: GPL-2+
Files: src/core/CMakeLists.txt
src/core/config.h
src/core/tr-wrapper.c
src/core/tr-wrapper.h
src/core/sh/isoinfo.sh
Copyright: 2018-2022 LXQt team
License: GPL-2+
Files: src/core/fr-command-lrzip.c
src/core/fr-command-lrzip.h
Copyright: 2010 Alexander Saprykin
License: GPL-2+
Files: src/core/fr-enum-types.c
src/core/fr-enum-types.h
src/core/fr-marshal.c
src/core/fr-marshal.h
Copyright: Unknown, possibly Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
License: GPL-2+ License: GPL-2+
Files: debian/* Files: debian/*
Copyright: 2021-2024, Lubuntu Developers <lubuntu-devel@lists.ubuntu.com> Copyright: 2018 Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
2018, Alf Gaida <agaida@siduction.org> License: GPL-2+
License: LGPL-2.1+
License: GPL-2+ License: GPL-2+
This program or library is free software; you can redistribute it This package is free software; you can redistribute it and/or modify
and/or modify it under the terms of the GNU General Public License it under the terms of the GNU General Public License as published by
as published by the Free Software Foundation; either version 2 of the Free Software Foundation; either version 2 of the License, or
the License, or (at your option) any later version. (at your option) any later version.
. .
This program is distributed in the hope that it will be useful, This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
General Public License for more details. GNU General Public License for more details.
. .
On Debian systems, the complete text of the GNU General Public You should have received a copy of the GNU General Public License
License version 2 can be found in along with this program. If not, see <https://www.gnu.org/licenses/>
"/usr/share/common-licenses/GPL-2".
License: LGPL-2.1+
This program or library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
. .
On Debian systems, the complete text of the GNU Lesser General On Debian systems, the complete text of the GNU General
Public License version 2.1 can be found in Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
"/usr/share/common-licenses/LGPL-2.1".

1
debian/docs/docs vendored

@ -1 +0,0 @@
README.md

6
debian/gbp.conf vendored

@ -1,6 +0,0 @@
[DEFAULT]
debian-branch = debian/sid
upstream-branch = upstream/latest
pristine-tar = True
compression = xz

@ -1 +0,0 @@
lxqt-archiver: no-manual-page [usr/bin/lxqt-archiver]

@ -1,3 +1,4 @@
usr/bin/lxqt-archiver usr/bin/lxqt-archiver
usr/libexec/lxqt-archiver/isoinfo.sh
usr/libexec/lxqt-archiver/rpm2cpio
usr/share/applications/lxqt-archiver.desktop usr/share/applications/lxqt-archiver.desktop
usr/share/icons/hicolor/scalable/apps/lxqt-archiver.svg

@ -0,0 +1 @@
support-viewing-current-item.patch

@ -0,0 +1,480 @@
Description: Support viewing (launching) current item
By double-clicking it or through its context menu item if it's a file.
.
Also, remember the last dir on opening files in each session.
.
Also, set `Qt::AA_UseHighDpiPixmaps`.
.
Also, commented out `QDebug` messages to be able to see temporary ones ;)
Author: Tsu Jan <tsujan2000@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt-archiver/pull/10
Last-Update: 2018-07-09
--- a/src/archiver.cpp
+++ b/src/archiver.cpp
@@ -338,7 +338,7 @@ void Archiver::rebuildDirTree() {
std::string dirName = stripTrailingSlash(item->fullPath());
dirMap_[dirName] = item;
}
-
+
if(fileData->encrypted) {
isEncrypted_ = true;
}
@@ -385,8 +385,8 @@ void Archiver::rebuildDirTree() {
g_free(tmp);
}
- qDebug("op: %s, %s", fileData->original_path, item->originalPath());
- qDebug("fp: %s, %s", fileData->full_path, item->fullPath());
+ //qDebug("op: %s, %s", fileData->original_path, item->originalPath());
+ //qDebug("fp: %s, %s", fileData->full_path, item->fullPath());
fileData->name = g_path_get_basename(dirName.c_str());
fileData->dir = 1;
file_data_update_content_type(fileData);
@@ -419,9 +419,9 @@ void Archiver::rebuildDirTree() {
}
rootItem_ = dirMap_["/"];
- for(auto& kv: dirMap_) {
+ /*for(auto& kv: dirMap_) {
qDebug("dir: %s: %d", kv.first.c_str(), kv.second->children().size());
- }
+ }*/
}
void Archiver::stopCurrentAction() {
@@ -519,14 +519,14 @@ const FileData* Archiver::fileDataByOrig
// We use the workaround provided here: https://bugreports.qt.io/browse/QTBUG-18434
void Archiver::onStart(FrArchive*, FrAction action, Archiver* _this) {
- qDebug("start");
+ //qDebug("start");
_this->busy_ = true;
QMetaObject::invokeMethod(_this, "start", Qt::QueuedConnection, QGenericReturnArgument(), Q_ARG(FrAction, action));
}
void Archiver::onDone(FrArchive*, FrAction action, FrProcError* error, Archiver* _this) {
- qDebug("done: %s", error && error->gerror ? error->gerror->message : "");
+ //qDebug("done: %s", error && error->gerror ? error->gerror->message : "");
// FIXME: error might become dangling pointer for queued connections. :-(
switch(action) {
@@ -546,11 +546,11 @@ void Archiver::onDone(FrArchive*, FrActi
void Archiver::onProgress(FrArchive*, double fraction, Archiver* _this) {
QMetaObject::invokeMethod(_this, "progress", Qt::QueuedConnection, QGenericReturnArgument(), Q_ARG(double, fraction));
- qDebug("progress: %lf", fraction);
+ //qDebug("progress: %lf", fraction);
}
void Archiver::onMessage(FrArchive*, const char* msg, Archiver* _this) {
- qDebug("message: %s", msg);
+ //qDebug("message: %s", msg);
QMetaObject::invokeMethod(_this, "message", Qt::QueuedConnection, QGenericReturnArgument(), Q_ARG(QString, QString::fromUtf8(msg)));
}
@@ -560,6 +560,6 @@ void Archiver::onStoppable(FrArchive*, g
void Archiver::onWorkingArchive(FrCommand* comm, const char* filename, Archiver* _this) {
// FIXME: why the first param is comm?
- qDebug("working: %s", filename);
+ //qDebug("working: %s", filename);
Q_EMIT _this->workingArchive(filename);
}
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -334,6 +334,7 @@ int main(int argc, char** argv) {
QApplication app(argc, argv);
app.setApplicationVersion(LXQT_ARCHIVER_VERSION);
app.setQuitOnLastWindowClosed(true);
+ app.setAttribute(Qt::AA_UseHighDpiPixmaps);
// load translations
// install the translations built-into Qt itself
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -31,6 +31,7 @@
#include <QBoxLayout>
#include <QCheckBox>
#include <QSpinBox>
+#include <QStandardPaths>
#include <QDebug>
@@ -41,6 +42,7 @@
#include <libfm-qt/utilities.h>
#include <libfm-qt/filepropsdialog.h>
#include <libfm-qt/filedialog.h>
+#include <libfm-qt/filelauncher.h>
// #include <libfm-qt/pathbar.h>
#include <map>
@@ -82,6 +84,8 @@ MainWindow::MainWindow(QWidget* parent):
popupMenu_ = new QMenu{this};
popupMenu_->addAction(ui_->actionExtract);
popupMenu_->addAction(ui_->actionDelete);
+ popupMenu_->addSeparator();
+ popupMenu_->addAction(ui_->actionView);
// proxy model used to filter and sort the items
proxyModel_ = new ArchiverProxyModel{this};
@@ -98,6 +102,7 @@ MainWindow::MainWindow(QWidget* parent):
// show context menu
ui_->fileListView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui_->fileListView, &QAbstractItemView::customContextMenuRequested, this, &MainWindow::onFileListContextMenu);
+ connect(ui_->fileListView, &QAbstractItemView::doubleClicked, this, &MainWindow::onFileListDoubleClicked);
connect(archiver_.get(), &Archiver::invalidateContent, this, &MainWindow::onInvalidateContent);
connect(archiver_.get(), &Archiver::start, this, &MainWindow::onActionStarted);
@@ -115,9 +120,16 @@ MainWindow::MainWindow(QWidget* parent):
ui_->actionPaste->deleteLater();
ui_->actionRename->deleteLater();
ui_->actionFind->deleteLater();
+
+ lasrDir_ = QUrl::fromLocalFile(QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
+
+ setAttribute(Qt::WA_DeleteOnClose, true);
}
MainWindow::~MainWindow() {
+ if(!tempDir_.isEmpty()) { // remove the temp dir if any
+ QDir(tempDir_).removeRecursively();
+ }
}
void MainWindow::loadFile(const Fm::FilePath &file) {
@@ -127,6 +139,18 @@ void MainWindow::loadFile(const Fm::File
splitVolumes_ = false;
volumeSize_ = 0;
+ // find the name of temporary extraction directory (used for viewing files)
+ if(!tempDir_.isEmpty()) { // remove the last temp dir
+ QDir(tempDir_).removeRecursively();
+ }
+ QString tmp = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
+ if(!tmp.isEmpty()) {
+ if(QDir(tmp).exists()) {
+ tempDir_ = tmp + "/" + "lxqt-archiver-"
+ + QDateTime::currentDateTime().toString("yyyyMMddhhmmss");
+ }
+ }
+
archiver_->openArchive(file.uri().get(), nullptr);
}
@@ -155,15 +179,17 @@ void MainWindow::on_actionCreateNew_trig
}
void MainWindow::on_actionOpen_triggered(bool /*checked*/) {
- qDebug("open");
+ //qDebug("open");
Fm::FileDialog dlg{this};
dlg.setFileMode(QFileDialog::ExistingFile);
dlg.setNameFilters(Archiver::supportedOpenNameFilters() << tr("All files (*)"));
- qDebug() << Archiver::supportedOpenMimeTypes();
+ //qDebug() << Archiver::supportedOpenMimeTypes();
dlg.setAcceptMode(QFileDialog::AcceptOpen);
+ dlg.setDirectory(lasrDir_);
if(dlg.exec() == QDialog::Accepted) {
auto url = dlg.selectedFiles()[0];
if(!url.isEmpty()) {
+ lasrDir_ = dlg.directory();
loadFile(Fm::FilePath::fromUri(url.toEncoded()));
}
}
@@ -187,6 +213,7 @@ void MainWindow::on_actionAddFiles_trigg
dlg.setFileMode(QFileDialog::ExistingFiles);
dlg.setNameFilters(QStringList{} << tr("All files (*)"));
dlg.setAcceptMode(QFileDialog::AcceptOpen);
+ dlg.setDirectory(lasrDir_);
// only add the files if they are newer
auto onlyIfNewerCheckbox = new QCheckBox{tr("Add only if &newer"), &dlg};
@@ -199,8 +226,9 @@ void MainWindow::on_actionAddFiles_trigg
return;
auto fileUrls = dlg.selectedFiles();
- qDebug() << "selected:" << fileUrls;
+ //qDebug() << "selected:" << fileUrls;
if(!fileUrls.isEmpty()) {
+ lasrDir_ = dlg.directory();
auto srcPaths = Fm::pathListFromQUrls(fileUrls);
archiver_->addFiles(srcPaths,
currentDirPath_.c_str(),
@@ -218,6 +246,7 @@ void MainWindow::on_actionAddFolder_trig
dlg.setFileMode(QFileDialog::Directory);
dlg.setNameFilters(QStringList{} << tr("All files (*)"));
dlg.setAcceptMode(QFileDialog::AcceptOpen);
+ dlg.setDirectory(lasrDir_);
// only add the files if they are newer
auto onlyIfNewerCheckbox = new QCheckBox{tr("Add only if &newer"), &dlg};
@@ -232,6 +261,7 @@ void MainWindow::on_actionAddFolder_trig
QUrl dirUrl = dlg.selectedFiles()[0];
if(!dirUrl.isEmpty()) {
+ lasrDir_ = dlg.directory();
auto path = Fm::FilePath::fromUri(dirUrl.toEncoded().constData());
archiver_->addDirectory(path,
currentDirPath_.c_str(),
@@ -247,7 +277,7 @@ void MainWindow::on_actionDelete_trigger
if(QMessageBox::question(this, tr("Confirm"), tr("Are you sure you want to delete selected files?"), QMessageBox::Yes|QMessageBox::No) != QMessageBox::Yes) {
return;
}
- qDebug("delete");
+ //qDebug("delete");
auto files = selectedFiles(true);
if(!files.empty()) {
archiver_->removeFiles(files, FR_COMPRESSION_NORMAL);
@@ -259,7 +289,7 @@ void MainWindow::on_actionSelectAll_trig
}
void MainWindow::on_actionExtract_triggered(bool /*checked*/) {
- qDebug("extract");
+ //qDebug("extract");
ExtractFileDialog dlg{this};
auto files = selectedFiles(true);
@@ -312,6 +342,62 @@ void MainWindow::on_actionExtract_trigge
}
}
+void MainWindow::tempExtractCurFile(bool launch) {
+ launchPath_.clear();
+ if(tempDir_.isEmpty()) {
+ return;
+ }
+ if(auto selModel = ui_->fileListView->selectionModel()) {
+ QModelIndex idx = selModel->currentIndex();
+ auto item = itemFromIndex(idx);
+ if(item && !item->isDir()) {
+ const QString fileName = tempDir_ + item->fullPath();
+ if(QFile::exists(fileName)) { // already extracted under tmp
+ if(launch) {
+ Fm::FilePathList paths;
+ paths.push_back(Fm::FilePath::fromLocalPath(fileName.toLocal8Bit().constData()));
+ Fm::FileLauncher().launchPaths(nullptr, std::move(paths));
+ }
+ return;
+ }
+
+ if (launch) {
+ launchPath_ = fileName;
+ }
+
+ QString dest = tempDir_;
+ QDir dir(tempDir_);
+ const QString curDirPath = QString::fromStdString(currentDirPath_);
+ if(curDirPath.contains("/")) {
+ dest = tempDir_ + "/" + curDirPath.section("/", 0, -2);
+ dir.mkpath(dest); // also creates "dir" if needed
+ }
+ else if(!dir.exists()) {
+ dir.mkpath(tempDir_);
+ }
+
+ if(archiver_->isEncrypted() && password_.empty()) {
+ password_ = PasswordDialog::askPassword(this).toStdString();
+ }
+ auto destDir = Fm::FilePath::fromLocalPath(dest.toLocal8Bit().constData());
+ std::vector<const FileData*> files;
+ files.emplace_back(item->data());
+ archiver_->extractFiles(files,
+ destDir,
+ currentDirPath_.c_str(),
+ false,
+ false,
+ false,
+ password_.empty() ? nullptr : password_.c_str()
+ );
+ }
+ }
+}
+
+void MainWindow::on_actionView_triggered(bool /*checked*/) {
+ tempExtractCurFile(true);
+}
+
void MainWindow::on_actionTest_triggered(bool /*checked*/) {
if(archiver_->isLoaded()) {
archiver_->testArchiveIntegrity(nullptr);
@@ -379,11 +465,20 @@ void MainWindow::onFileListSelectionChan
}
void MainWindow::onFileListContextMenu(const QPoint &pos) {
+ if(auto selModel = ui_->fileListView->selectionModel()) {
+ QModelIndex idx = selModel->currentIndex();
+ auto item = itemFromIndex(idx);
+ ui_->actionView->setVisible(item && !item->isDir());
+ }
// QAbstractScrollArea and its subclasses map the context menu event to coordinates of the viewport().
auto globalPos = ui_->fileListView->viewport()->mapToGlobal(pos);
popupMenu_->popup(globalPos);
}
+void MainWindow::onFileListDoubleClicked(const QModelIndex & /*index*/) {
+ tempExtractCurFile(true);
+}
+
void MainWindow::onFileListActivated(const QModelIndex &index) {
auto item = itemFromIndex(index);
if(item && item->isDir()) {
@@ -408,11 +503,11 @@ void MainWindow::onActionStarted(FrActio
progressBar_->show();
progressBar_->setFormat(tr("%p %"));
- qDebug("action start: %d", action);
+ //qDebug("action start: %d", action);
switch(action) {
case FR_ACTION_CREATING_NEW_ARCHIVE:
- qDebug("new archive");
+ //qDebug("new archive");
setFileName(archiver_->archiveDisplayName());
break;
case FR_ACTION_LOADING_ARCHIVE: /* loading the archive from a remote location */
@@ -463,16 +558,16 @@ void MainWindow::onActionFinished(FrActi
setBusyState(false);
progressBar_->hide();
- qDebug("action finished: %d", action);
+ //qDebug("action finished: %d", action);
switch(action) {
case FR_ACTION_LOADING_ARCHIVE: /* loading the archive from a remote location */
- qDebug("finish! %d", action);
+ //qDebug("finish! %d", action);
break;
case FR_ACTION_CREATING_NEW_ARCHIVE: // same as listing empty content
case FR_ACTION_CREATING_ARCHIVE: /* creating a local archive */
case FR_ACTION_LISTING_CONTENT: /* listing the content of the archive */
- qDebug("content listed");
+ //qDebug("content listed");
// content dir list of the archive is fully loaded
updateDirTree();
@@ -504,6 +599,14 @@ void MainWindow::onActionFinished(FrActi
archiver_->reloadArchive(nullptr);
break;
case FR_ACTION_EXTRACTING_FILES: /* extracting files */
+ if(!launchPath_.isEmpty()) {
+ if(!err.hasError() && QFile::exists(launchPath_)) {
+ Fm::FilePathList paths;
+ paths.push_back(Fm::FilePath::fromLocalPath(launchPath_.toLocal8Bit().constData()));
+ Fm::FileLauncher().launchPaths(this, std::move(paths));
+ }
+ launchPath_.clear();
+ }
break;
case FR_ACTION_COPYING_FILES_TO_REMOTE: /* copying extracted files to a remote location */
break;
@@ -613,7 +716,7 @@ void MainWindow::showFileList(const std:
if(currentDirItem_) {
auto parent = archiver_->parentDir(currentDirItem_);
if(parent) {
- qDebug("parent: %s", parent ? parent->fullPath() : "null");
+ //qDebug("parent: %s", parent ? parent->fullPath() : "null");
auto parentRow = createFileListRow(parent);
parentRow[0]->setText("..");
model->appendRow(parentRow);
@@ -711,7 +814,7 @@ std::vector<const FileData*> MainWindow:
// FIXME: the old code uses FileData here. Later we should all use ArchiveItem instead.
for(auto& item: items) {
if(item->data()) {
- qDebug("SEL: %s", item->fullPath());
+ //qDebug("SEL: %s", item->fullPath());
results.emplace_back(item->data());
}
}
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -72,10 +72,12 @@ private Q_SLOTS:
void on_actionExtract_triggered(bool checked);
+ void on_actionView_triggered(bool checked);
+
void on_actionTest_triggered(bool checked);
void on_actionPassword_triggered(bool checked);
-
+
void on_actionDirTree_toggled(bool checked);
void on_actionDirTreeMode_toggled(bool checked);
@@ -94,6 +96,8 @@ private Q_SLOTS:
void onFileListContextMenu(const QPoint &pos);
+ void onFileListDoubleClicked(const QModelIndex &index);
+
void onFileListActivated(const QModelIndex &index);
private Q_SLOTS:
@@ -137,7 +141,9 @@ private:
const ArchiverItem* itemFromIndex(const QModelIndex& index);
QModelIndex indexFromItem(const QModelIndex& parent, const ArchiverItem* item);
-
+
+ void tempExtractCurFile(bool launch);
+
private:
std::unique_ptr<Ui::MainWindow> ui_;
std::shared_ptr<Archiver> archiver_;
@@ -153,6 +159,10 @@ private:
bool encryptHeader_;
bool splitVolumes_;
unsigned int volumeSize_;
+
+ QString tempDir_;
+ QString launchPath_;
+ QUrl lasrDir_;
};
#endif // MAINWINDOW_H
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -410,6 +410,11 @@
<string>Filename &amp;Encoding</string>
</property>
</action>
+ <action name="actionView">
+ <property name="text">
+ <string>&amp;View Current Item</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections>
--- a/src/progressdialog.cpp
+++ b/src/progressdialog.cpp
@@ -45,7 +45,7 @@ void ProgressDialog::reject() {
}
void ProgressDialog::onProgress(double fraction) {
- qDebug("progress: %lf", fraction);
+ //qDebug("progress: %lf", fraction);
if(fraction < 0.0) {
// negative progress indicates that progress is unknown
ui_->progressBar->setRange(0, 0); // set it to undertermined state
@@ -60,7 +60,7 @@ void ProgressDialog::onFinished(FrAction
}
void ProgressDialog::onMessage(QString msg) {
- qDebug("progress: %s", msg.toUtf8().constData());
+ //qDebug("progress: %s", msg.toUtf8().constData());
ui_->message->setText(msg);
}
@@ -69,7 +69,7 @@ void ProgressDialog::onStoppableChanged(
}
void ProgressDialog::onWorkingArchive(QString filename) {
- qDebug("progress: %s", filename.toUtf8().constData());
+ //qDebug("progress: %s", filename.toUtf8().constData());
ui_->currentFile->setText(filename);
}

10
debian/rules vendored

@ -1,11 +1,12 @@
#!/usr/bin/make -f #!/usr/bin/make -f
# export DH_VERBOSE=1
export LC_ALL=C.UTF-8 export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-format export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-format
export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
%: %:
dh ${@} --buildsystem cmake dh $@
override_dh_missing: override_dh_missing:
dh_missing --fail-missing dh_missing --fail-missing
@ -13,5 +14,4 @@ override_dh_missing:
override_dh_auto_configure: override_dh_auto_configure:
dh_auto_configure -- \ dh_auto_configure -- \
-DUPDATE_TRANSLATIONS=OFF \ -DUPDATE_TRANSLATIONS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo
-DUSE_7Z=ON

@ -1,12 +0,0 @@
# For more information on what jobs are run see:
# https://salsa.debian.org/salsa-ci-team/pipeline
#
# To enable the jobs, go to your repository (at salsa.debian.org)
# and click over Settings > CI/CD > Expand (in General pipelines).
# In "Custom CI config path" write debian/salsa-ci.yml and click
# in "Save Changes". The CI tests will run after the next commit.
---
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

@ -1,2 +0,0 @@
# This is expected
lxqt-archiver source: very-long-line-length-in-source-file * > 512 [src/lxqt-archiver.desktop.in:*]

@ -1 +0,0 @@
tar-ignore=.gitignore

@ -1,5 +0,0 @@
Name: lxqt-archiver
Bug-Database: https://github.com/lxqt/lxqt-archiver/issues
Bug-Submit: https://github.com/lxqt/lxqt-archiver/issues/new
Changelog: https://github.com/lxqt/lxqt-archiver/blob/master/CHANGELOG
Repository: https://github.com/lxqt/lxqt-archiver

@ -1,52 +1,50 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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 =h7ww
sw==
=gSIv
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

6
debian/watch vendored

@ -1,5 +1,3 @@
version=4 version=4
opts="searchmode=plain, \ opts="pgpsigurlmangle=s/$/.asc/" \
pgpsigurlmangle=s/$/.asc/, \ https://github.com/lxqt/lxqt-archiver/releases .*/lxqt-archiver-([\d\.]+).tar.xz
uversionmangle=s/(\d+\.\d+\.\d+).*/$1/" \
https://api.github.com/repos/lxqt/@PACKAGE@/releases https:\/\/github.com\/lxqt\/@PACKAGE@\/releases\/download\/@ANY_VERSION@\/@PACKAGE@-@ANY_VERSION@.tar.xz

Loading…
Cancel
Save