Index: head/net/rclone-browser/files/patch-src_main__window.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_main__window.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_main__window.cpp (nonexistent) @@ -1,38 +0,0 @@ ---- src/main_window.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/main_window.cpp -@@ -193,7 +193,7 @@ void MainWindow::rcloneGetVersion() - - QProcess* p = new QProcess(); - -- QObject::connect(p, static_cast(&QProcess::finished), this, [=](int code) -+ QObject::connect(p, QOverload::of(&QProcess::finished), this, [=](int code) - { - if (code == 0) - { -@@ -241,7 +241,7 @@ void MainWindow::rcloneConfig() - { - QProcess* p = new QProcess(this); - -- QObject::connect(p, static_cast(&QProcess::finished), this, [=](int code) -+ QObject::connect(p, QOverload::of(&QProcess::finished), this, [=](int code) - { - if (code == 0) - { -@@ -297,7 +297,7 @@ void MainWindow::rcloneListRemotes() - - QProcess* p = new QProcess(); - -- QObject::connect(p, static_cast(&QProcess::finished), this, [=](int code) -+ QObject::connect(p, QOverload::of(&QProcess::finished), this, [=](int code) - { - if (code == 0) - { -@@ -570,7 +570,7 @@ void MainWindow::addStream(const QString& remote, cons - auto rclone = new QProcess(); - rclone->setStandardOutputProcess(player); - -- QObject::connect(player, static_cast(&QProcess::finished), this, [=](int status) -+ QObject::connect(player, QOverload::of(&QProcess::finished), this, [=](int status) - { - player->deleteLater(); - if (status != 0 && player->error() == QProcess::FailedToStart) Property changes on: head/net/rclone-browser/files/patch-src_main__window.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_transfer__dialog.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_transfer__dialog.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_transfer__dialog.cpp (nonexistent) @@ -1,11 +0,0 @@ ---- src/transfer_dialog.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/transfer_dialog.cpp -@@ -131,7 +131,7 @@ QString TransferDialog::getMode() const - return "Sync"; - } - -- return QString::null; -+ return QString(); - } - - QString TransferDialog::getSource() const Property changes on: head/net/rclone-browser/files/patch-src_transfer__dialog.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_item__model.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_item__model.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_item__model.cpp (nonexistent) @@ -1,67 +0,0 @@ ---- src/item_model.cpp.orig 2017-03-11 22:16:36.000000000 +0000 -+++ src/item_model.cpp 2019-09-01 18:49:37.991420000 +0000 -@@ -2,6 +2,8 @@ - #include "icon_cache.h" - #include "utils.h" - -+#include -+ - namespace - { - static void advanceSpinner(QString& text) -@@ -10,7 +12,7 @@ - QChar current = text[spinnerPos]; - static const QChar spinner[] = { '-', '\\', '|', '/' }; - size_t spinnerCount = sizeof(spinner) / sizeof(*spinner); -- const QChar* found = qFind(spinner, spinner + spinnerCount, current); -+ const QChar* found = std::find(spinner, spinner + spinnerCount, current); - size_t idx = found - spinner; - size_t next = idx == spinnerCount - 1 ? 0 : idx + 1; - text[spinnerPos] = spinner[next]; -@@ -161,7 +163,7 @@ - { - Item* item = get(index); - item->name = name; -- item->path = item->parent->path.filePath(item->name); -+ item->path.setPath(item->parent->path.filePath(item->name)); - emit dataChanged(index, index, QVector{Qt::DisplayRole}); - } - -@@ -182,7 +184,7 @@ - Item* item = new Item(); - item->isFolder = true; - item->name = name; -- item->path = path; -+ item->path.setPath(path); - item->parent = mRoot; - mRoot->childs.append(item); - -@@ -500,7 +502,7 @@ - auto it = existing.find(item->name); - if (it == existing.end()) - { -- item->path = parent->path.filePath(item->name); -+ item->path.setPath(parent->path.filePath(item->name)); - if (!item->isFolder && mFileIcons) - { - QString ext = QFileInfo(item->name).suffix(); -@@ -561,8 +563,8 @@ - } - }; - -- QObject::connect(lsd, static_cast(&QProcess::finished), this, rcloneFinished); -- QObject::connect(lsl, static_cast(&QProcess::finished), this, rcloneFinished); -+ QObject::connect(lsd, QOverload::of(&QProcess::finished), this, rcloneFinished); -+ QObject::connect(lsl, QOverload::of(&QProcess::finished), this, rcloneFinished); - - QObject::connect(lsd, &QProcess::readyRead, this, [=]() - { -@@ -617,7 +619,7 @@ - - void ItemModel::sortRecursive(Item* item, const ItemSorter& sorter) - { -- qSort(item->childs.begin(), item->childs.end(), sorter); -+ std::sort(item->childs.begin(), item->childs.end(), sorter); - - for (auto child : item->childs) - { Property changes on: head/net/rclone-browser/files/patch-src_item__model.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_remote__widget.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_remote__widget.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_remote__widget.cpp (nonexistent) @@ -1,54 +0,0 @@ ---- src/remote_widget.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/remote_widget.cpp -@@ -129,7 +129,7 @@ RemoteWidget::RemoteWidget(IconCache* iconCache, const - UseRclonePassword(&process); - process.setProgram(GetRclone()); - process.setArguments(QStringList() << "mkdir" << GetRcloneConf() << remote + ":" + folder); -- process.setReadChannelMode(QProcess::MergedChannels); -+ process.setProcessChannelMode(QProcess::MergedChannels); - - ProgressDialog progress("New Folder", "Creating...", folderMsg, &process, this); - if (progress.exec() == QDialog::Accepted) -@@ -158,7 +158,7 @@ RemoteWidget::RemoteWidget(IconCache* iconCache, const - << GetRcloneConf() - << remote + ":" + path - << remote + ":" + model->path(index.parent()).filePath(name)); -- process.setReadChannelMode(QProcess::MergedChannels); -+ process.setProcessChannelMode(QProcess::MergedChannels); - - ProgressDialog progress("Rename", "Renaming...", pathMsg, &process, this); - if (progress.exec() == QDialog::Accepted) -@@ -182,13 +182,13 @@ RemoteWidget::RemoteWidget(IconCache* iconCache, const - UseRclonePassword(&process); - process.setProgram(GetRclone()); - process.setArguments(QStringList() << (model->isFolder(index) ? "purge" : "delete") << GetRcloneConf() << remote + ":" + path); -- process.setReadChannelMode(QProcess::MergedChannels); -+ process.setProcessChannelMode(QProcess::MergedChannels); - - ProgressDialog progress("Delete", "Deleting...", pathMsg, &process, this); - if (progress.exec() == QDialog::Accepted) - { - QModelIndex parent = index.parent(); -- QModelIndex next = parent.child(index.row() + 1, 0); -+ QModelIndex next = parent.model()->index(index.row() + 1, 0, parent); - ui.tree->selectionModel()->select(next.isValid() ? next : parent, QItemSelectionModel::SelectCurrent); - model->removeRow(index.row(), parent); - } -@@ -281,7 +281,7 @@ RemoteWidget::RemoteWidget(IconCache* iconCache, const - UseRclonePassword(&process); - process.setProgram(GetRclone()); - process.setArguments(QStringList() << "size" << GetRcloneConf() << remote + ":" + path); -- process.setReadChannelMode(QProcess::MergedChannels); -+ process.setProcessChannelMode(QProcess::MergedChannels); - - ProgressDialog progress("Get Size", "Calculating...", pathMsg, &process, this, false); - progress.expand(); -@@ -314,7 +314,7 @@ RemoteWidget::RemoteWidget(IconCache* iconCache, const - UseRclonePassword(&process); - process.setProgram(GetRclone()); - process.setArguments(QStringList() << GetRcloneConf() << e.getOptions()); -- process.setReadChannelMode(QProcess::MergedChannels); -+ process.setProcessChannelMode(QProcess::MergedChannels); - - ProgressDialog progress("Export", "Exporting...", dst, &process, this); - file->setParent(&progress); Property changes on: head/net/rclone-browser/files/patch-src_remote__widget.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-scripts_rclone-browser.desktop =================================================================== --- head/net/rclone-browser/files/patch-scripts_rclone-browser.desktop (revision 518749) +++ head/net/rclone-browser/files/patch-scripts_rclone-browser.desktop (nonexistent) @@ -1,13 +0,0 @@ ---- scripts/rclone-browser.desktop.orig 2019-06-03 23:30:21 UTC -+++ scripts/rclone-browser.desktop -@@ -1,8 +1,8 @@ - [Desktop Entry] - Name=Rclone Browser - Comment=Simple cross-platform GUI for rclone --Exec=/usr/bin/rclone-browser --Icon=/usr/share/pixmaps/rclone-browser.png -+Exec=%%PREFIX%%/bin/rclone-browser -+Icon=%%PREFIX%%/share/pixmaps/rclone-browser.png - Terminal=false - Type=Application - Categories=Network Property changes on: head/net/rclone-browser/files/patch-scripts_rclone-browser.desktop ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_job__widget.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_job__widget.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_job__widget.cpp (nonexistent) @@ -1,11 +0,0 @@ ---- src/job_widget.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/job_widget.cpp -@@ -162,7 +162,7 @@ JobWidget::JobWidget(QProcess* process, const QString& - } - }); - -- QObject::connect(mProcess, static_cast(&QProcess::finished), this, [=](int status) -+ QObject::connect(mProcess, QOverload::of(&QProcess::finished), this, [=](int status) - { - mProcess->deleteLater(); - for (auto label : mActive) Property changes on: head/net/rclone-browser/files/patch-src_job__widget.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_mount__widget.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_mount__widget.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_mount__widget.cpp (nonexistent) @@ -1,11 +0,0 @@ ---- src/mount_widget.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/mount_widget.cpp -@@ -57,7 +57,7 @@ MountWidget::MountWidget(QProcess* process, const QStr - } - }); - -- QObject::connect(mProcess, static_cast(&QProcess::finished), this, [=](int status) -+ QObject::connect(mProcess, QOverload::of(&QProcess::finished), this, [=](int status) - { - mProcess->deleteLater(); - mRunning = false; Property changes on: head/net/rclone-browser/files/patch-src_mount__widget.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_icon__cache.h =================================================================== --- head/net/rclone-browser/files/patch-src_icon__cache.h (revision 518749) +++ head/net/rclone-browser/files/patch-src_icon__cache.h (nonexistent) @@ -1,11 +0,0 @@ ---- src/icon_cache.h.orig 2019-06-03 23:11:44 UTC -+++ src/icon_cache.h -@@ -23,7 +23,7 @@ signals: (private) - - QHash mIcons; - --#ifdef Q_OS_LINUX -+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) - QMimeDatabase mMimeDatabase; - #endif - }; Property changes on: head/net/rclone-browser/files/patch-src_icon__cache.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/files/patch-src_stream__widget.cpp =================================================================== --- head/net/rclone-browser/files/patch-src_stream__widget.cpp (revision 518749) +++ head/net/rclone-browser/files/patch-src_stream__widget.cpp (nonexistent) @@ -1,11 +0,0 @@ ---- src/stream_widget.cpp.orig 2017-03-11 22:16:36 UTC -+++ src/stream_widget.cpp -@@ -58,7 +58,7 @@ StreamWidget::StreamWidget(QProcess* rclone, QProcess* - } - }); - -- QObject::connect(mRclone, static_cast(&QProcess::finished), this, [=]() -+ QObject::connect(mRclone, QOverload::of(&QProcess::finished), this, [=]() - { - mRclone->deleteLater(); - mRunning = false; Property changes on: head/net/rclone-browser/files/patch-src_stream__widget.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/rclone-browser/Makefile =================================================================== --- head/net/rclone-browser/Makefile (revision 518749) +++ head/net/rclone-browser/Makefile (revision 518750) @@ -1,25 +1,21 @@ # $FreeBSD$ PORTNAME= rclone-browser -DISTVERSION= 1.2 +DISTVERSION= 1.7.0 CATEGORIES= net MAINTAINER= woodsb02@FreeBSD.org COMMENT= Simple cross platform GUI for rclone LICENSE= UNLICENSE LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= rclone:net/rclone USES= cmake pkgconfig qt:5 USE_GITHUB= yes -GH_ACCOUNT= mmozeiko +GH_ACCOUNT= kapitainsky GH_PROJECT= RcloneBrowser USE_QT= buildtools_build core gui qmake_build widgets - -post-patch: - ${REINPLACE_CMD} -e 's!%%PREFIX%%!${PREFIX}!g' \ - ${WRKSRC}/scripts/rclone-browser.desktop .include Index: head/net/rclone-browser/distinfo =================================================================== --- head/net/rclone-browser/distinfo (revision 518749) +++ head/net/rclone-browser/distinfo (revision 518750) @@ -1,3 +1,3 @@ -TIMESTAMP = 1559534900 -SHA256 (mmozeiko-RcloneBrowser-1.2_GH0.tar.gz) = 679c4cae5ede309e8ae8f67c482ecef0194fac5fabe9c1784fe4638c4d5bfdb6 -SIZE (mmozeiko-RcloneBrowser-1.2_GH0.tar.gz) = 480391 +TIMESTAMP = 1575163272 +SHA256 (kapitainsky-RcloneBrowser-1.7.0_GH0.tar.gz) = add7eb35fa521e87eddf9cfb36ddd11983f6fc78f520c3a887d353b574e3f083 +SIZE (kapitainsky-RcloneBrowser-1.7.0_GH0.tar.gz) = 380349 Index: head/net/rclone-browser/pkg-descr =================================================================== --- head/net/rclone-browser/pkg-descr (revision 518749) +++ head/net/rclone-browser/pkg-descr (revision 518750) @@ -1,22 +1,29 @@ Simple cross platfrom GUI for rclone command line tool. Features: * Allows to browse and modify any rclone remote, including encrypted ones * Uses same configuration file as rclone, no extra configuration required -* Supports custom location and encryption for `.rclone.conf` configuration file +* Supports custom location and encryption for rclone.conf configuration file * Simultaneously navigate multiple repositories in separate tabs * Lists files hierarchically with file name, size and modify date * All rclone commands are executed asynchronously, no freezing GUI * File hierarchy is lazily cached in memory, for faster traversal of folders -* Allows to upload, download, create new folders, rename or delete files/folders +* Allows to upload, download, create new folders, rename or delete files and + folders * Allows to calculate size of folder, export list of files and copy rclone - copmmand to clipboard + command to clipboard * Can process multiple upload or download jobs in background * Drag & drop support for dragging files from local file explorer for uploading -* Streaming media files for playback in player like [mpv][6] or similar -* Mount and unmount folders on macOS and GNU/Linux +* Streaming media files for playback in player like vlc or similar +* Mount and unmount folders on macOS, GNU/Linux and Windows (for Windows + requires winfsp and for mac fuse for macOS) * Optionally minimizes to tray, with notifications when upload/download finishes * Supports portable mode (create .ini file next to executable with same name), - rclone and .rclone.conf path now can be relative to executable + rclone and rclone.conf path now can be relative to executable +* Supports drive-shared-with-me (Google Drive specific) +* For remotes supporting public link sharing has an option (right-click menu) + to fetch it +* Supports tasks. Created jobs can be saved and run or edited later. +* Configurable dark mode for all systems -WWW: https://martins.ninja/RcloneBrowser/ +WWW: https://github.com/kapitainsky/RcloneBrowser Index: head/net/rclone-browser/pkg-plist =================================================================== --- head/net/rclone-browser/pkg-plist (revision 518749) +++ head/net/rclone-browser/pkg-plist (revision 518750) @@ -1,3 +1,8 @@ bin/rclone-browser share/applications/rclone-browser.desktop -share/pixmaps/rclone-browser.png +share/icons/hicolor/128x128/apps/rclone-browser.png +share/icons/hicolor/256x256/apps/rclone-browser.png +share/icons/hicolor/32x32/apps/rclone-browser.png +share/icons/hicolor/512x512/apps/rclone-browser.png +share/icons/hicolor/64x64/apps/rclone-browser.png +share/icons/hicolor/scalable/apps/rclone-browser.svg