Comments (38)
@easymodo new qimgv is absolutely amazing! Just got back from a vacation and noticed there's a new version so I compiled it. Pretty much everything is now in it. It works flawlessly! New UI is superb! Thank you so much for all this hard work! This is now the best viewer I've ever used.
I do have one small request: drag & drop. Say you have an image open... in viewers like EOG/Xviewer, you can drag the image and it will copy it wherever you drop it. You can also drag it to a "File upload" field of all of the browsers. That's super handy when you want to post an image somewhere.
Anyway, now that there's Trash support, I've associated qimgv with all of the image files! Thank you!!!
from qimgv.
This should be pretty easy, will add as an option for next release
from qimgv.
Thanks a lot for the feedback!
Delete/trash support.
I already have this in dev branch, as well as quick copy/move for image sorting. Just need to implement a confirmation before deleting.
and if it's smaller, it should be zoomed so it fills width or height
I will add this in future, though not as default behavior. A shortcut/toggle should suffice.
Pressing the Esc key while in full-screen should drop the viewer into windowed mode.
Fair enough.
zoom
Yeah, zoom is shitty right now. There is some old spaghetti code i plan on rewriting, so that will be fixed.
Lanczos
Agreed, bilinear does not look very good right now. I'll look into it.
coming webm support
It already works, just need to fix the thumbnail creation. Will do it maybe tomorrow.
Thanks again for the suggestions, i really appreciate it.
from qimgv.
Stretching and shrinking of images so they fill the window
Done! (See expand smaller images
in settings)
zooming in and zooming out with a mouse does not use mouse pointer as the origin
Fixed!
Also, wish there was more zoom levels
Also done. Up to x8, there is now a slider in settings.
Reset your shortcuts so things work properly (or manually rebind mouse wheel to zoomInCursor / zoomOutCursor)
from qimgv.
Consider using system fonts instead of hardcoded ones. On HiDPI (4k, 3840x2160) screens thumbnail hints are barely visible.
from qimgv.
Fantastic! And, if there's a modal confirmation for moving to trash, please make it so it can be permanently disabled.
from qimgv.
I plan on going without modal dialogs altogether (hate that shit). You will hold delete for like half a second and it will remove the file.
from qimgv.
If you're planning on making changes to the scaling please consider enabling/re-implementing the nearest neighbor option (aka fast scaling/no smoothing.) I've been using qimgv but dropping in to MS paint to look at pixel art for years now! Thank you for your continued work on this.
from qimgv.
Hi dusty! I'll enable that option, shouldnt be a problem.
from qimgv.
@easymodo "You will hold delete for like half a second and it will remove the file." what happens if you hold it for longer than that? Will it start deleting other files? Why not just make the keypress normal and have the option in settings to remove the delete warning? That seems a lot more intuitive. It would be annoying to have to hold the key longer to delete something... and that would also slow you down as you move through the files in a folder.
BTW, I'm really interested in how you will implement moving/copying of files. On a Mac, there's this really interesting and excellent image viewer called Xee^3 and it has a slew of all kinds of interesting features and it does copying/moving of files really well. You can see how it looks from this screenshot: https://xee.c3.cx/images/screenshot2.jpg Basically, you use Cmd/Ctrl+ key to move files and Alt+ key to copy files to pre-specified folders. If you have access to a Mac or have OSX in a VM, try that viewer to get a feel of how it works. It gets almost everything right.
from qimgv.
Great. I agree that deletion should be immediate or the program will feel unresponsive. Even having to hit Tab->Enter to respond to a deletion dialogue for every file is faster and feels better than a delay.
from qimgv.
The idea is that you bring up the panel, set target directories, then use assigned shortcuts to copy (1-9 keys). Directories will be saved, so you dont have to assign them every time.
from qimgv.
@easymodo looks good! keyboard shortcut are the most important anyway for power users.
BTW, I can't view webms. Have the latest version compiled but I get "Invalid/Missing file". No other messages in any logs that I could see.
from qimgv.
Check if you have webms enabled in settings.
They were disabled in previous commits so maybe that's the reason.
Nvm, I think it is fixed now. Please rebuild and try again.
from qimgv.
Thanks! Webms now work after enabling support in Prefs. Prefs were previously disabled for webms..
from qimgv.
Just compiled the latest version from git... very nice progress! Images now load faster than any other image viewer I've used. Really excellent progress. I've managed to configure keyboard shortcuts for scrubbing through images the way I'm used to.
One thing that's missing is jumping to first/last image. Shortcuts panel is missing something like firstImage
and lastImage
property. I'd like to bind those to Home/End keys. Other than that, lack of trash (i.e. have some way of undoing a delete) is probably the biggest issue to me. Hope that makes it in at some point. Really nice job @easymodo !
from qimgv.
Added jumpToFirst / jumpToLast.
I'll figure something out about trash support. It seems Qt does not have it.
from qimgv.
@easymodo came across this: https://stackoverflow.com/questions/17964439/move-files-to-trash-recycle-bin-in-qt
There's some code for Win and Linux.
Another option would be to just allow a generic binding that allows you to specify any command to run and pass the URI of the file to it.
from qimgv.
+1 to all the suggestions here, especially #2 "Stretching and shrinking of images so they fill the window".
I think this viewer has a lot of promise, and love the webm / gif support! I've been using HoneyView for a while, but the developers are no longer adding features, and it has never had webm support, so I think this may be my new go-to viewer. Thanks for your work!
A few suggestions of my own:
- An option similar to "infinite scrolling" but instead of looping back in the same directory, it moves to the next available directory. For example, if I have a file structure like the below and I'm viewing images in vacation_1, when I reach the last image in vacation_1, it seamlessly moves to vacation_2.
- all_images
- vacation_1
- [lots of images]
- vacation_2
- [lots of images]
- vacation_3
- [lots of images]
- [more directories]
- vacation_1
-
An alternative or addition to my first suggestion: The ability to combine multiple directories into one "mega directory" in the viewer. So, taking the example above, if I selected both vacation_1 and vacation_2 and dropped them into the viewer, it would combine all images in both directories and allow me to view them seamlessly. Keep in mind that with this option, directories don't have to be consecutive, so I could select vacation_1 and vacation_3, skipping vacation_2, and it would show me all images in vacation_1 and vacation_3, but not vacation_2.
-
A slideshow feature. It would be especially nice to have a random mode where it goes to randomly selected images every X seconds, with X being configurable.
-
If slideshow is implemented, an option to allow gifs / webms to fully play before moving on, overriding the X second delay before switching images if X seconds is less than the time it takes to play the gif / webm.
-
If image fitting / stretching / filling is implemented, also an option to view images in parallel if there is enough screen space. Honeyview has this - it calculates if two consecutive images would fit side-by-side and displays both of them if so.
These features would make qimgv the perfect image viewer for me. Thanks again!
from qimgv.
Fantastic update! I was afraid you might have abandoned this projects so I was overjoyed when I saw a notice. Thanks!
from qimgv.
That will come in v0.6 in a few days. As well as image editing
from qimgv.
Also I can't build the dev branch:
CMake Error at CMakeLists.txt:33 (add_subdirectory):
The source directory
/tmp/qimgv/gui/panels/sidepanel
does not contain a CMakeLists.txt file.
Sorry for the noise here =/
from qimgv.
That's fine. It was broken because i use qmake for development (for reasons).
Anyway it's fixed now.
Please tell me if anything looks too big/too small on your screen
from qimgv.
Eh, it's kinda smaller than things in e.g. qpdfview or wireshark. But that's probably because I'm using QT_SCALE_FACTOR=0.5 + Ubuntu 14 that gives me more space on the screen. Both qpdfview and wireshark follow qt5ct preferences regarding fonts, but in qimgv fonts are hard-coded. Everything else look more or less ok.
P.S. Spaces in the terminal title ([_1_/_2_]) look weird.
P.P.S. For some reason dialogue windows are considered regular windows by my NotIon WM. I'm not observing this with other Qt5 applications.
from qimgv.
I've actually just pushed more ui fixes. It should now use system font size everywhere.
Fixed dialogs (hopefully).
from qimgv.
Well... It's kinda too big actually. Here, a screenshot.
from qimgv.
Have you considered using QML? I find it a) almost as fast as widgets b) much more readable than xml.
from qimgv.
Is that screenshot with QT_SCALE_FACTOR=0.5? It's now locked to 1.0 because other values currently produce very bad image quality - i'll need to rewrite some drawing & scaling logic to fix it.
If you set smaller system font size for qt it should look ok.
I've thought about QML but i don't want to lose current ui snappiness. Startup time would get worse too.
from qimgv.
- Yes, it is QT_SCALE_FACTOR=0.5. Unfortunately, if I set smaller font size it will be barely readable in other Qt5 program.
- I failed to notice any startup delay with QML (though I do have a fast nvme). In the recent Qt5 versions QML engine creates a QML cache to reduce the startup time.
from qimgv.
I didn't want to open another issue, since this is on topic of usability suggestions, so I'll just add to this issue;
RFE: Stretching and shrinking qimgv's window geometry to match image size
It's semi-related to @nick-s-b proposal # 2 (Stretching and shrinking of images so they fill the window by default.), but in reverse. I propose to make qimgv's window geometry change to fit the viewed image. Say user is viewing an image with 500x500px dimensions, we make the window 500x500 px. User views the next image and it's dimensions are 500x400, so change the window geometry to match that etc.
Proposal would remove the black sidebars from this image:
End result would be this:
from qimgv.
@easymodo any chance of adding "Rename" feature? Something really simple would suffice.
Also, any ETA on adding trash support or a "custom command" that can be bound to any shell command?
Thanks!
from qimgv.
A week or two probably. Sorry for dragging this out, was kinda busy irl.
from qimgv.
@easymodo Yay! No rush. I'm just happy it's coming :)
from qimgv.
Hi ! Fresh user here, I'd like to make this nice little viewer my daily driver :)
Something that is bothering me is that the fullscreen "OSD" with picture size, weight, as well as the parameter icon, all this is staying visible when I'm watching my pretty pictures :(
Could it be possible to make all this disappear at the same time as the mouse cursor ?
from qimgv.
Could it be possible to make all this disappear at the same time as the mouse cursor ?
Yes. This will be v0.7
Also, here's something for kde users ;)
https://www.youtube.com/watch?v=t1OVejmGR4U
from qimgv.
@easymodo sweet! 0.7 should be great!
from qimgv.
I am excited for v0.7 as well... 😄
But I also want to make a suggestion here:
Extend the current image navigation (next/previous, goto first / goto last) with a control command to display images in random order, i.e. moving randomly through the items of the sequence (the "opened" or current working directory) by using a random permutation of this sequence.
Ideally, this is done by a shuffling algorithm like this one: Fisher-Yates Shuffle (Wikipedia).
At best, it should be possible to move in both directions (i.e. next/previous) by keeping the order of the random permutation in memory.
I think it is best to explain this more from the usability perspective.
- Let's say key
X
is defined as the command to enter "random mode" - So, Press
X
to start random mode - Generate the shuffled oder / random permutation
- Navigate through this new sequence with the normal keys / shortcuts (i.e. left, right etc.)
- If you reach the
last
element of the sequence, either generate a new permutation and start again or drop out of random mode - Press
X
again to drop out of random mode any time
Edit: IIRC, mpv uses such a method for shuffling...
Let me see... yeah, here's the commit that changed it: mpv-player/mpv@b9c48ca
from qimgv.
+1 for EWA Lanczos support.
from qimgv.
Related Issues (20)
- Request: offline thumbnail processor
- Network shares won't render images
- Image has wrong scale with multiple monitors in different scale HOT 2
- Update Qt to 6.6 HOT 1
- Time to switch HOT 9
- The application crashes when trying to view some JXL files HOT 1
- App crashes on ICO (v1.0.3-alpha-101) HOT 1
- Some SVG images, aren't displayed at all
- [Feature] German translation HOT 1
- [FEATURE] manual labels on the "move to" quick folders.
- How do I designate a quick folder? HOT 2
- [Feature request] Automatically switch to nearest neighbour upscaling for very small pictures (Pixelart)
- Failed to build with exiv2 v0.28.0 HOT 1
- Dark fusion theme [Qt6, Win11] HOT 4
- advices
- Zoom out less than 100% HOT 2
- Show current scale factor somewhere
- Some keystroke detection is broken [Qt 6.7.0] HOT 4
- Feature: Add option to use embedded cover as thumbnail (for video files)
- Video playback detaches on mpv v0.38.0 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qimgv.