rodlie / qtfm Goto Github PK
View Code? Open in Web Editor NEWQt File Manager
Home Page: https://qtfm.eu
License: GNU General Public License v2.0
Qt File Manager
Home Page: https://qtfm.eu
License: GNU General Public License v2.0
tray with support for various device actions
Hi all, When I compile, I see the following:|
10:29:31: Running steps for project qtfm... 10:29:31: Starting: "C:\Qt\5.11.1\mingw53_32\bin\qmake.exe" "E:\memories\2018 git\qtfm\qtfm.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" Info: creating stash file E:\memories\2018 git\build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug\.qmake.stash 10:29:31: The process "C:\Qt\5.11.1\mingw53_32\bin\qmake.exe" exited normally. 10:29:31: Starting: "C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe" qmake_all cd libfm\ && C:\Qt\5.11.1\mingw53_32\bin\qmake.exe -o Makefile "E:\memories\2018 git\qtfm\libfm\libfm.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" cd libfm\ && C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all mingw32-make[1]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' mingw32-make[1]: Nothing to be done for 'qmake_all'. mingw32-make[1]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' cd libdisks\ && C:\Qt\5.11.1\mingw53_32\bin\qmake.exe -o Makefile "E:\memories\2018 git\qtfm\libdisks\libdisks.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" cd libdisks\ && C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all mingw32-make[1]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libdisks' mingw32-make[1]: Nothing to be done for 'qmake_all'. mingw32-make[1]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libdisks' cd fm\ && C:\Qt\5.11.1\mingw53_32\bin\qmake.exe -o Makefile "E:\memories\2018 git\qtfm\fm\fm.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" cd fm\ && C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all mingw32-make[1]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/fm' mingw32-make[1]: Nothing to be done for 'qmake_all'. mingw32-make[1]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/fm' cd tray\ && C:\Qt\5.11.1\mingw53_32\bin\qmake.exe -o Makefile "E:\memories\2018 git\qtfm\tray\tray.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" cd tray\ && C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile qmake_all mingw32-make[1]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/tray' mingw32-make[1]: Nothing to be done for 'qmake_all'. mingw32-make[1]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/tray' 10:29:38: The process "C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe" exited normally. 10:29:38: Starting: "C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe" cd libfm\ && ( if not exist Makefile C:\Qt\5.11.1\mingw53_32\bin\qmake.exe -o Makefile "E:\memories\2018 git\qtfm\libfm\libfm.pro" -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug" ) && C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile mingw32-make[1]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' C:/Qt/Tools/mingw530_32/bin/mingw32-make -f Makefile.Debug mingw32-make[2]: Entering directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I..\..\qtfm\libfm -I. -IC:\Qt\5.11.1\mingw53_32\include -IC:\Qt\5.11.1\mingw53_32\include\QtWidgets -IC:\Qt\5.11.1\mingw53_32\include\QtGui -IC:\Qt\5.11.1\mingw53_32\include\QtANGLE -IC:\Qt\5.11.1\mingw53_32\include\QtDBus -IC:\Qt\5.11.1\mingw53_32\include\QtCore -Idebug -IC:\Qt\5.11.1\mingw53_32\mkspecs\win32-g++ -o debug\desktopfile.o ..\..\qtfm\libfm\desktopfile.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I..\..\qtfm\libfm -I. -IC:\Qt\5.11.1\mingw53_32\include -IC:\Qt\5.11.1\mingw53_32\include\QtWidgets -IC:\Qt\5.11.1\mingw53_32\include\QtGui -IC:\Qt\5.11.1\mingw53_32\include\QtANGLE -IC:\Qt\5.11.1\mingw53_32\include\QtDBus -IC:\Qt\5.11.1\mingw53_32\include\QtCore -Idebug -IC:\Qt\5.11.1\mingw53_32\mkspecs\win32-g++ -o debug\fileutils.o ..\..\qtfm\libfm\fileutils.cpp ..\..\qtfm\libfm\fileutils.cpp:3:21: fatal error: sys/vfs.h: No such file or directory compilation terminated. Makefile.Debug:1028: recipe for target 'debug/fileutils.o' failed mingw32-make[2]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' mingw32-make[2]: *** [debug/fileutils.o] Error 1 Makefile:36: recipe for target 'debug' failed mingw32-make[1]: Leaving directory 'E:/memories/2018 git/build-qtfm-Desktop_Qt_5_11_1_MinGW_32bit-Debug/libfm' mingw32-make[1]: *** [debug] Error 2 Makefile:43: recipe for target 'sub-libfm-make_first' failed mingw32-make: *** [sub-libfm-make_first] Error 2 10:29:42: The process "C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe" exited with code 2. Error while building/deploying project qtfm (kit: Desktop Qt 5.11.1 MinGW 32bit) When executing step "Make" 10:29:42: Elapsed time: 00:11.
My versions:
Qt 5.11.1 Mingw 5.3 32 bit
windows 7 profesional SP1
Cheers,
Cedric
Add a basic dbus service to fm
Make sure qtfm works 100% in FreeBSD.
QtFM 5.x had translations, but since stuff has been modified I disabled the existing translations (and code that loads it).
If someone wants translations let me know.
I can create a custom action to open multiple selected files like "gvim %f" but this doesn't work with the normal open. If I select two files and open with gvim only one file is opened. Can open with be updated to open multiple files too?
Add a (separate) power manager.
I noticed in the latest version, that a long name is not completely show and the text is cut off.
These are some words I've noticed to give examples. (Also 3 dots trail after the text like below)
Transmission - appears as > Transmissi...
qtfm-6.0.1.tar.gz - appears as > qtfm-6.0.1....
/usr/x86_64-slackware-linux - appears as > x86_64-sla...
Numix Blue Slack.jpg - appears as > Numix Blu...
Add optional support for ImageMagick to generate thumbnails (it supports more formats, depth etc).
bookmark state is only saved when closing, not good.
It would be nice to be a bit more portable.
Currently to use qtfm on *BSD you will need to use the inotify wrapper lib, it works, but I think most *BSD users would prefer a more "native" solution.
I have tried to move to QFileSystemWatcher (Thanks to Zhihao at FreeBSD/ports for patches (5.5)), but it's too limited (yet).
Anyway, not high priority.
Hi,
I just grabbed the 6.0.2 release to check it out, and /libdisks/libdisks.pro is missing...
Hi,
I noticed a few things in Master, that when right clicking to rename a file or directory, the entire file, folder, image, etc., is highlighted. Please change this, so only the name is highlighted in color.
Please see the attached screen shots showing how a folder and image gets highlighted with blue all around it.
Also please see the screen shot under / showing the directories and the gaps. Left - Right Gaps are ok, it's the Up - Down Gaps is to big, folders should be closer together underneath each other...
Thanks
When double clicking a txt file associated with gvim, or right clicking and selecting open with gvim, nothing happens (expect the file to open in gvim). When selecting open with Libre Office you can see the Libre Office splash screen flicker into view but then nothing else happens. Open with xfw appears to work. Open with vim doesn't respond either.
Linux carbon 4.16.12-1-ARCH #1 SMP PREEMPT Fri May 25 23:30:31 UTC 2018 x86_64 GNU/Linux
If you can tell me where to find logs or get debug output I'll see if I can help.
qtfm needs to be included in more distros. I can create builds scripts for any distro, but I can't be the maintainer for every (major) distro out there.
Updated:
Outdated (running 5.9 or lower):
New:
So, if anyone want's to help please let me know.
use ffmpeg to gen a thumbnail. Should be an optional feature.
Currently testing qtfm in Ubuntu and something is broken regarding mtab, this breaks storage detection when copy/move.
Hi Rodlie, I really hope this is just my install or something like that. I was using the Archlinux AUR package but since that is now only 1.0.3 I've started building from your Github master in order to test recent additions to 6.1.0. I find that when selecting certain navigation options such as directories in the bookmarks list or different option sections in preferences, the label gets blanked when selected. See screenshot.
Hi,
I noticed now that you fixed the Bookmark icons, that when clicking on the default bookmarks;
Computer - Home - Desktop - Trash
qtfm doesn't change to these /paths now...
Clicking them does nothing...
If file is modified and has an thumbnail, gen a new
Hi,
I just noticed for some odd reason, that the Aw0Ken icon set appears with all the folder and file icons very tiny... hmm
https://www.deviantart.com/alecive/art/AwOken-163570862
Aw0ken - small size
Faenza - normal size
start xscreensaver if not running (and add some settings in the config app).
When I select and drag files from the main pane to the left hand side bookmarks list pane, I can drop the files into the bookmarked folders there.
When dragging same files to the file tree below them, to the same folder, drag and drop shows a forbidden / no entry cursor and will not drop the files there. I expected this to initiate a copy/move as for the bookmarked folders.
Also, when dragging over a folder I'm pretty sure there used to be an indicator that a particular folder was selected for drop, like a rectangular blue highlight around it or something. That highlight no longer happens so it's a bit hit and miss to make sure you get the right folder.
Qtfm 6.1.0 built from https://github.com/rodlie/qtfm 2018-07-29T20:47
Come to think of it, would you consider, when pasting copies of a file, instead of "Copy (n) of ", how about something systemically suitable like "-YYYYMMDD.HHMM" or "-copy-YYYYMMDD.HHMM" if you think including "copy" is needed, or for some users you may want "-YYYYMMDD-HHM
My suggestion:
Add a lineedit in settings where the user can customize the filename.
Make it possible to launch just the settings.
Maybe you just want to edit some mime types, or modify the systray settings. It should not be mandatory to launch qtfm to access the settings.
Also, qtfm and qtfm-tray should monitor the config file for modifications and reload if needed.
There are some issues with drag and drop + indicator and modifier keys.
Hey @rodlie
I created a logo by combining the qt logos and the file icon. I think this logo will be very elegant in the readme file. that's how it will look; WDYT?
Add a app launcher (for use in *box etc).
master (and possible 6.1) compares mime type against file type for custom actions, this is wrong! Also use ==
, not contains()
.
Hi,
So here's my request wish list.
If I think of anymore I'll add them here.
Thank you for your time and consideration! ๐
New Options
The Title name QtFM - Changes to a Directory name, but since there is already /path next to the Home icon, I'd leave the title always displaying the name QtFM.
Please allow in the Settings an Option for the /path to not keep a History, so that it can only be used to search /paths, but no history is being kept. The /path showing /home/foo below;
For the /path section, if you need me to file a bug report, please let me know, because if you go to a /path several times, it adds that in, so you see the same /paths over like as example;
/home/foo/
/opt/game
/home/foo
/usr/lib
/
/boot/
/boot/grub
/boot
/boot/grub
/
/home/foo
Hi,
First let me say this is awesome to see qtfm back in development!
My Specs
Slackware 14.2 x86_64
Openbox 3.6.1
file-5.25
qt-4.8.7
xorg-server-1.18.3
nvidia-driver-396.24
upower-0.9.23
I don't have udisks installed...
I compiled 6.0.0 from source using these cmds in a slackware build script;
QMAKE_CFLAGS="$SLKCFLAGS"
QMAKE_CXXFLAGS="$SLKCFLAGS"
mkdir -p build
cd build
qmake CONFIG+=debug PREFIX=/usr ..
make
make install INSTALL_ROOT=$PKG
When I run qtfm from the term, it just seg faults, this is all I see;
~ >qtfm
zsh: segmentation fault qtfm
Below is output from gdb....
Reading symbols from qtfm...done.
(gdb) r
Starting program: /usr/bin/qtfm
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff66b15c0 in QVariant::QVariant(QVariant const&) () from /usr/lib64/qt/lib/libQtCore.so.4
(gdb) bt full
#0 0x00007ffff66b15c0 in QVariant::QVariant(QVariant const&) () at /usr/lib64/qt/lib/libQtCore.so.4
#1 0x00007ffff7996de8 in QDBusPendingReplyData::argumentAt(int) const () at /usr/lib64/qt/lib/libQtDBus.so.4
#2 0x0000000000489e4f in QDBusPendingReply<QString, void, void, void, void, void, void, void>::argumentAt<0>() const (this=0x7fffffffd778)
at /usr/lib64/qt/include/QtDBus/qdbuspendingreply.h:176
#3 0x00000000004890b7 in QDBusPendingReply<QString, void, void, void, void, void, void, void>::value() const (this=0x7fffffffd778)
at /usr/lib64/qt/include/QtDBus/qdbuspendingreply.h:181
#4 0x00000000004881e6 in uDisks2::getDevices() () at ../../libdisks/udisks2.h:161
result =
{<QList> = {{p = {static shared_null = {ref = {_q_value = 97}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x6c63a0 QListData::shared_null}, d = 0x6c63a0 QListData::shared_null}}, }
call = {d_ptr = 0x8f15c0}
reply = { = { = {d = {d = 0x8f2950}}, }, }
devices =
{{p = {static shared_null = {ref = {_q_value = 97}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x6c63a0 QListData::shared_null}, d = 0x6c63a0 QListData::shared_null}}
xml = {d_ptr = {d = 0x7ffff799b4c0}}
#5 0x0000000000483e45 in Disks::scanDevices() (this=0x8e65a0) at ../../libdisks/disks.cpp:129
foundDevices =
{<QList> = {{p = {static shared_null = {ref = {_q_value = 97}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x6c63a0 QListData::shared_null}, d = 0x6c63a0 QListData::shared_null}}, }
#6 0x0000000000483d24 in Disks::setupDBus() (this=0x8e65a0) at ../../libdisks/disks.cpp:123
system = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff799e8e0 "QDBusConnection", data = 0x7ffff799eb00, extradata = 0x0}}, d = 0x76bff0}
#7 0x0000000000483a03 in Disks::Disks(QObject*) (this=0x8e65a0, parent=0x0) at ../../libdisks/disks.cpp:110
#8 0x0000000000419cb4 in MainWindow::MainWindow() (this=0x7fffffffde20) at ../../fm/src/mainwindow.cpp:50
temp =
{static null = {}, static shared_null = {ref = {_q_value = 117}, alloc = 0, size = 0, data = 0x6c60fa QString::shared_null+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, data = 0x7ffff69f70da QString::shared_empty+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7ffff6504568, static codecForCStrings = 0x0}
tmp =
{static null = {}, static shared_null = {ref = {_q_value = 117}, alloc = 0, size = 0, data = 0x6c60fa QString::shared_null+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, data = 0x7ffff69f70da QString::shared_empty+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x92f, static codecForCStrings = 0x0}
realMime = 255
hl1 = 0x7fffffffe178
page2 = 0xe
args =
{<QList> = {{p = {static shared_null = {ref = {_q_value = 97}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x7ffff651d948}, d = 0x7ffff651d948}}, }
name =
{static null = {}, static shared_null = {ref = {_q_value = 117}, alloc = 0, size = 0, data = 0x6c60fa QString::shared_null+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, data = 0x7ffff69f70da QString::shared_empty+26, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x92f, static codecForCStrings = 0x0}
---Type to continue, or q to quit---
Firefox works great with org.freedesktop.ScreenSaver, but not Chrome. Find out why (probably uses org.gnome stuff(?)).
Copy/move actions should happen independent of the FM, so that the user can safely close the window during a move/copy action.
The move/copy action should also be power-aware (low battery, about to suspend etc).
if tray exist use that, else own proc(?).
lilo needs resume=xxx
for hibernate to work, check for resume=
and only if present actually hibernate. Also notify user if hibernate is "broken".
This is mostly just an issue on Slackware (and most Slackware users knows about this issue).
If I copy/move multiple files using the ask dialog I get one dialog for each file. Only show one dialog no matter how many files are selected!
This function seems to have been broken in qt for years (does not work in qt4.8+), implement this manually.
There are too many issues with Qt4, and most of the world has moved on. So starting with qtfm 6.2 Qt 4.x will not be supported anymore.
Check status in NetBSD.
don't override contextmenu on toolbar widgets.
The new IM generator needs to be threaded to avoid stalling the application on large files, also limit preview on large files!
Hi,
I noticed when I make a settings change under 'General, and save, then the hidden files appear...
I've haven't tried this in the other sections.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.