Giter Site home page Giter Site logo

rodlie / qtfm Goto Github PK

View Code? Open in Web Editor NEW
154.0 14.0 42.0 2.76 MB

Qt File Manager

Home Page: https://qtfm.eu

License: GNU General Public License v2.0

C++ 96.39% QMake 1.54% Roff 0.33% Shell 0.59% CMake 1.15%
qt qt5 files file-manager file-management udisks qtfm linux freedesktop xdg

qtfm's People

Contributors

bodwok avatar h5117 avatar ibara avatar kaarrot avatar kakueeen avatar probonopd avatar psikoz avatar rodlie avatar susnux avatar tatsh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qtfm's Issues

compile error

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

Translations

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.

Enhance "open with" to open multiple selected files

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?

UI tweaks/enhancements

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...

Deprecate/replace inotify usage

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.

Rename & Gaps Between Directories

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

1

2

gaps

Fails to launch associated application

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.

Getting included in distros

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:

  • ArchLinux AUR
  • Slackware SlackBuilds
  • PCLinuxOS

Outdated (running 5.9 or lower):

  • FreeBSD
    I have been taking to the maintainer.
  • Gentoo
    Maintainer need to be contacted.
  • Mageia
    Maintainer need to be contacted.

New:

  • Debian (and compatible)
  • Fedora (and compatible)
  • pkgsrc (NetBSD)

So, if anyone want's to help please let me know.

video thumbnail

use ffmpeg to gen a thumbnail. Should be an optional feature.

mtab issue (Ubuntu)

Currently testing qtfm in Ubuntu and something is broken regarding mtab, this breaks storage detection when copy/move.

Selected options get blanked

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.
shot

Clicking Bookmarks Doesn't Change /path

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...

Drag and drop to file tree forbidden

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

Copy(x) of: Custom filename

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

#40 (comment)

My suggestion:

Add a lineedit in settings where the user can customize the filename.

qtfm --settings

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.

Drag and Drop

There are some issues with drag and drop + indicator and modifier keys.

  • Qt5 no indicator
  • Qt4 only copy indicator (seems set move action don't work in qt4?)
  • No default action for drag and drop
  • shift/ctrl should change indicator

Logo proposal

Hey @rodlie

qtfm

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?

qtfm

Custom actions issue

master (and possible 6.1) compares mime type against file type for custom actions, this is wrong! Also use ==, not contains().

Request: Various Items - Wish

Hi,

So here's my request wish list.

  1. When showing hidden files can you make them just appear in normal color, not greyed out?
  2. Single Click option needed.
  3. Change Bookmarks & Folder sizes

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;

path

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

Segfault if missing udisks (Qt4)

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---

power: support Chrome

Firefox works great with org.freedesktop.ScreenSaver, but not Chrome. Find out why (probably uses org.gnome stuff(?)).

Copy/move files in own process

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(?).

power: check if using lilo

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).

"Ask" dialog and multiple files

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!

Deprecate Qt 4.x

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.

Thread thumbnails

The new IM generator needs to be threaded to avoid stalling the application on large files, also limit preview on large files!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.