Skip to content

Commit a0b66c6

Browse files
committed
Merge remote-tracking branch 'origin/kptsky_testing'
2 parents 79f0c1c + da000aa commit a0b66c6

21 files changed

Lines changed: 1143 additions & 407 deletions

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
# Change Log
2+
## [1.8.0][1.8.0] - 2020-02-17
3+
- NEW: http(s) proxy configuration for rclone
4+
- NEW: remotes icons size option selector
5+
- NEW: directories tree display for remotes
6+
- NEW: rclone extra default options for all operations (e.g. --fast-list)
7+
- NEW: added "Public Link" button to remote view
8+
- FIXED: option to show hidden files and folders was not always working as expected
9+
- FIXED: for sftp server default to home user directory (as normal sftp would do)
10+
- FIXED: an issue when on Windows local remote only allowed to browse drive C:
11+
- FIXED: problem using rclone and rclone.conf when path contained spaces
12+
- FIXED: bandwidth box on jobs tab is too small for fast connections
13+
- bunch of usual small tweaks and fixes
14+
215
## [1.7.0][1.7.0] - 2019-11-27
316
- NEW: built all releases with the latest Qt 5.13.2
417
- NEW: changed Linux releases format to AppImage only
@@ -112,6 +125,7 @@
112125
- Mount and unmount folders on macOS and GNU/Linux
113126
- Optionally minimizes to tray, with notifications when upload/download finishes
114127

128+
[1.8.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.8.0
115129
[1.7.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.7.0
116130
[1.6.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.6.0
117131
[1.5.3]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.5.3

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.7.0
1+
1.8.0

assets/rclone-browser.appdata.xml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!-- Copyright 2019 Dariusz Bogdanski <[email protected]> -->
33
<component type="desktop-application">
4-
<id>org.kapitainsky.rclone-browser</id>
5-
<metadata_license>Unlicense</metadata_license>
6-
<project_license>Unlicense</project_license>
4+
<id>org.kapitainsky.rclone_browser</id>
5+
<metadata_license>MIT</metadata_license>
6+
<project_license>MIT</project_license>
77
<name>Rclone Browser</name>
8-
<summary>Simple cross platfrom GUI for rclone command line.</summary>
8+
<summary>Simple cross platfrom GUI for rclone command line</summary>
99
<description>
1010
<p>Rclone Browser is a cross-platform Qt5 GUI for Rclone, a command line tool to synchronize (and mount) files from remote cloud storage services like Google Drive, OneDrive, Nextcloud, Dropbox, Amazon Drive and S3, Mega, and others. Use it to copy a file from one cloud storage service to another, from a cloud storage to your system or the other way around, and to mount some cloud storage on your system with a single click.</p>
1111
<p> - Allows to browse and modify any rclone remote, including encrypted ones</p>
@@ -25,7 +25,8 @@
2525
<p> - Supports portable mode (create .ini file next to executable with same name), rclone and .rclone.conf path now can be relative to executable</p>
2626
<p> - Supports drive-shared-with-me (Google Drive specific)</p>
2727
<p> - For remotes supporting public link sharing has an option (right-click menu) to fetch it</p>
28-
<p> - Supports tasks. Created jobs can be saved and run or edited later.</p>
28+
<p> - Supports tasks. Created jobs can be saved and run or edited later</p>
29+
<p> - Configurable dark mode for all systems</p>
2930
</description>
3031
<screenshots>
3132
<screenshot type="default">

scripts/release_AppImage.sh

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,53 @@
11
#!/bin/bash
22

3-
if [ "$1" = "SIGN" ]; then
4-
export SIGN="1"
5-
fi
6-
73
# x86_64 build on CentOS 7.7
4+
# gcc 7 installed
5+
# sudo yum install -y centos-release-scl
6+
# sudo yum install -y devtoolset-7-gcc*
7+
# run below command before build
8+
# scl enable devtoolset-7 bash
9+
10+
# newer cmake is required than one included in CentOS 7
11+
# download from http://www.cmake.org/download
12+
# sudo mkdir /opt/cmake
13+
# sudo sh cmake-$version.$build-Linux-x86_64.sh --prefix=/opt/cmake
14+
15+
if [ $(arch) = "x86_64" ]; then
16+
CMAKE="/opt/cmake/bin/cmake"
17+
fi
18+
819
# i686 build on Ubuntu 16.04 LTS
9-
# armv7l build on raspbian stretch
1020

11-
# Qt path and flags set in env
12-
# export PATH="/opt/Qt/5.13.2/bin/:$PATH"
13-
# export CPPFLAGS="-I/opt/Qt/5.13.2/bin/include/"
14-
# export LDFLAGS="-L/opt/Qt/5.13.2/bin/lib/"
15-
# export LD_LIBRARY_PATH="/opt/Qt/5.13.2/bin/lib/:$LD_LIBRARY_PATH"
21+
# armv7l build on raspbian stretch
1622

23+
# Qt path and flags set in env e.g.:
24+
# export PATH="/opt/Qt/5.14.0/bin/:$PATH"
25+
# export CPPFLAGS="-I/opt/Qt/5.14.0/bin/include/"
26+
# export LDFLAGS="-L/opt/Qt/5.14.0/bin/lib/"
27+
# export LD_LIBRARY_PATH="/opt/Qt/5.14.0/bin/lib/:$LD_LIBRARY_PATH"
1728

18-
# for x86 platform
19-
# Qt 5.13.2 uses openssl 1.1 and some older distros still use 1.0
29+
# for x86_64 and i686 platform
30+
# Qt 5.14.0 uses openssl 1.1 and some older distros still use 1.0
2031
# we build openssl 1.1.1d from source using following setup:
2132
# ./config shared --prefix=/opt/openssl-1.1.1/ && make --jobs=`nproc --all` && sudo make install
2233
# and add to build env
2334
# export LD_LIBRARY_PATH="/opt/openssl-1.1.1/lib/:$LD_LIBRARY_PATH"
2435

36+
if [ "$1" = "SIGN" ]; then
37+
export SIGN="1"
38+
fi
39+
40+
# check gcc version on Centos
41+
if [ $(arch) = "x86_64" ]; then
42+
currentver="$(gcc -dumpversion)"
43+
if [ "${currentver:0:1}" -lt "7" ]; then
44+
echo "gcc version 7 or newer required"
45+
echo "on Cetos 7 run"
46+
echo "scl enable devtoolset-7 bash"
47+
exit
48+
fi
49+
fi
50+
2551
# building AppImage in temporary directory to keep system clean
2652
# use RAM disk if possible (as in: not building on CI system like Travis, and RAM disk is available)
2753
if [ "$CI" == "" ] && [ -d /dev/shm ]; then
@@ -55,15 +81,15 @@ mkdir -p "$ROOT"/release
5581

5682
# clean current version previous build
5783
if [ $(arch) = "armv7l" ] && [ -f "$ROOT"/release/rclone-browser-"$VERSION"-armhf.AppImage ]; then
58-
rm "$ROOT"/release/rclone-browser-"$VERSION"-linux-armhf.AppImage
84+
rm "$ROOT"/release/rclone-browser-"$VERSION"-armhf.AppImage
5985
fi
6086

6187
if [ $(arch) = "i686" ] && [ -f "$ROOT"/release/rclone-browser-"$VERSION"-i386.AppImage ]; then
62-
rm "$ROOT"/release/rclone-browser-"$VERSION"-linux-i386.AppImage
88+
rm "$ROOT"/release/rclone-browser-"$VERSION"-i386.AppImage
6389
fi
6490

6591
if [ $(arch) = "x86_64" ] && [ -f "$ROOT"/release/rclone-browser-"$VERSION"-x86_64.AppImage ]; then
66-
rm "$ROOT"/release/rclone-browser-"$VERSION"-linux-amd64.AppImage
92+
rm "$ROOT"/release/rclone-browser-"$VERSION"-x86_64.AppImage
6793
fi
6894

6995
# build and install to temporary AppDir folder
@@ -76,7 +102,7 @@ if [ $(arch) = "armv7l" ]; then
76102
fi
77103

78104
if [ $(arch) = "x86_64" ]; then
79-
/opt/cmake/cmake-3.15.5-Linux-x86_64/bin/cmake .. -DCMAKE_INSTALL_PREFIX=/usr
105+
"$CMAKE" .. -DCMAKE_INSTALL_PREFIX=/usr
80106
make --jobs=$(nproc --all)
81107
fi
82108

@@ -114,7 +140,6 @@ fi
114140
# https://github.com/linuxdeploy/linuxdeploy-plugin-appimage
115141
linuxdeploy-plugin-appimage --appdir=AppDir
116142

117-
118143
# raspberry pi build
119144
if [ $(arch) = "armv7l" ]; then
120145
rename 's/Rclone_Browser/rclone-browser/' Rclone_Browser*

src/item_model.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,13 +529,14 @@ void ItemModel::load(const QPersistentModelIndex &parentIndex, Item *parent) {
529529

530530
lsd->start(GetRclone(),
531531
QStringList() << "lsd" << GetRcloneConf() << GetDriveSharedWithMe()
532-
<< GetShowHidden()
532+
<< GetShowHidden() << GetDefaultRcloneOptionsList()
533533
<< mRemote + ":" + parent->path.path(),
534534
QIODevice::ReadOnly);
535535
lsl->start(GetRclone(),
536536
QStringList() << "lsl" << GetRcloneConf() << GetDriveSharedWithMe()
537537
<< GetShowHidden() << "--max-depth"
538-
<< "1" << mRemote + ":" + parent->path.path(),
538+
<< "1" << GetDefaultRcloneOptionsList()
539+
<< mRemote + ":" + parent->path.path(),
539540
QIODevice::ReadOnly);
540541
}
541542

src/job_options.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "job_options.h"
2+
#include "utils.h"
23
#include <qexception.h>
34
#include <qlogging.h>
45
#ifdef _WIN32
@@ -148,6 +149,11 @@ QStringList JobOptions::getOptions() const {
148149
list << "--stats-file-name-length"
149150
<< "0";
150151

152+
QStringList defaultRcloneOptionsList = GetDefaultRcloneOptionsList();
153+
if (!defaultRcloneOptionsList.isEmpty()) {
154+
list << defaultRcloneOptionsList;
155+
}
156+
151157
list << source;
152158
list << dest;
153159

src/job_widget.ui

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>896</width>
9+
<width>966</width>
1010
<height>449</height>
1111
</rect>
1212
</property>
@@ -117,6 +117,12 @@
117117
<verstretch>0</verstretch>
118118
</sizepolicy>
119119
</property>
120+
<property name="minimumSize">
121+
<size>
122+
<width>140</width>
123+
<height>0</height>
124+
</size>
125+
</property>
120126
<property name="alignment">
121127
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
122128
</property>
@@ -143,6 +149,12 @@
143149
<verstretch>0</verstretch>
144150
</sizepolicy>
145151
</property>
152+
<property name="minimumSize">
153+
<size>
154+
<width>140</width>
155+
<height>0</height>
156+
</size>
157+
</property>
146158
<property name="alignment">
147159
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
148160
</property>
@@ -169,6 +181,12 @@
169181
<verstretch>0</verstretch>
170182
</sizepolicy>
171183
</property>
184+
<property name="minimumSize">
185+
<size>
186+
<width>140</width>
187+
<height>0</height>
188+
</size>
189+
</property>
172190
<property name="alignment">
173191
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
174192
</property>
@@ -227,6 +245,12 @@
227245
<verstretch>0</verstretch>
228246
</sizepolicy>
229247
</property>
248+
<property name="minimumSize">
249+
<size>
250+
<width>140</width>
251+
<height>0</height>
252+
</size>
253+
</property>
230254
<property name="alignment">
231255
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
232256
</property>
@@ -322,6 +346,12 @@
322346
<verstretch>0</verstretch>
323347
</sizepolicy>
324348
</property>
349+
<property name="minimumSize">
350+
<size>
351+
<width>140</width>
352+
<height>0</height>
353+
</size>
354+
</property>
325355
<property name="alignment">
326356
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
327357
</property>
@@ -370,6 +400,12 @@
370400
<verstretch>0</verstretch>
371401
</sizepolicy>
372402
</property>
403+
<property name="minimumSize">
404+
<size>
405+
<width>140</width>
406+
<height>0</height>
407+
</size>
408+
</property>
373409
<property name="alignment">
374410
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
375411
</property>

src/main.cpp

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,34 @@ int main(int argc, char *argv[]) {
2929
QDir::setCurrent(currentDir);
3030
#endif
3131

32-
// remmber darkMode state on app startup
33-
3432
auto settings = GetSettings();
33+
34+
// initialize proxy settings
35+
if (!(settings->contains("Settings/useProxy"))) {
36+
settings->setValue("Settings/useProxy", "false");
37+
};
38+
if (!(settings->contains("Settings/http_proxy"))) {
39+
settings->setValue("Settings/http_proxy", "");
40+
};
41+
if (!(settings->contains("Settings/https_proxy"))) {
42+
settings->setValue("Settings/https_proxy", "");
43+
};
44+
if (!(settings->contains("Settings/no_proxy"))) {
45+
settings->setValue("Settings/no_proxy", "");
46+
};
47+
48+
if (settings->value("Settings/useProxy").toBool()) {
49+
qputenv("HTTP_PROXY", settings->value("Settings/http_proxy").toByteArray());
50+
qputenv("http_proxy", settings->value("Settings/http_proxy").toByteArray());
51+
qputenv("HTTPS_PROXY",
52+
settings->value("Settings/https_proxy").toByteArray());
53+
qputenv("https_proxy",
54+
settings->value("Settings/https_proxy").toByteArray());
55+
qputenv("NO_PROXY", settings->value("Settings/no_proxy").toByteArray());
56+
qputenv("no_proxy", settings->value("Settings/no_proxy").toByteArray());
57+
}
58+
59+
// remmber darkMode state on app startup
3560
// during first run the darkModeIni key might not exist
3661
if (!(settings->contains("Settings/darkModeIni"))) {
3762
// if darkModeIni does not exist create new key
@@ -48,6 +73,12 @@ int main(int argc, char *argv[]) {
4873

4974
settings->setValue("Settings/darkModeIni", darkMode);
5075

76+
// during first run the iconSize key might not exist
77+
if (!(settings->contains("Settings/iconSize"))) {
78+
// if iconSize does not exist create new key
79+
settings->setValue("Settings/iconSize", "medium");
80+
};
81+
5182
// enforce one instance of Rclone Browser per user
5283
QString tmpDir;
5384
QString applicationNameBase;

0 commit comments

Comments
 (0)