Image viewer

I've just made my first usable release of my image viewer. Any comments and opinions are appreciated.
https://github.com/Helios-vmg/Borderless/releases/tag/v0.2.0
I've provided both a Windows installer (x64 only) and detailed instructions for how to build under Linux and BSD. It's pretty thoroughly tested under Windows, since it's the viewer I personally use; I've done basic functionality tests under Lubuntu and PC-BSD.
Important note: the program doesn't have an "open file" dialog. It's intended to work with the file browser. The Windows installer creates the registry entries that add the program to the list of "open with" suggestions for the supported files.

The main raison d'etre of this project is the (IMO) lack of good, free image viewers for Windows. Before starting this project I was using IrfanView, but it was often frustrating. It's been over ten years and it still displays alpha as a solid color. Other more minor annoyances are: it has a delay of a few seconds when opening an image in a directory with thousands of images because it scans the entire directory in the GUI thread before displaying the image, work that it has to redo if you close the window and open another, or the same, image; it has like six different zoom modes (automatic zooms dependent on the relative sizes of the image and the screen), but not a simple fill (minimum zoom that covers the entire screen).
I've also tried XnView, which does do alpha properly, but I found the UI to be both awkward to use and not at all fluid. Not very friendly to keyboard-only operation, either. I didn't care much for the tabbed interface compared to a multiple window interface, and the UI in general had too much going on, far too intrusive for my taste.
Both programs have a severe case of featuritis, and rather than being content with being the best possible viewers, they want to be mediocre image editors.
Interesting idea.
I was thinking the same things about IrfanView. But I don't actually use it too much. So, it doesn't really bother me.

I found one interesting expression in your code that I don't quite understand.
foo = (!!x) * bar;
What's the purpose of the !!x ?
Forcing the compiler to assume a certain type?

(from FSD.cpp)
For basic types, !!x maps non-zero values to one, and zero to zero.
The menu options under "Transform" do not play well with a 4K display at all (Windows 10). They aren't even remotely legible.

There is no setting to disable "remember current session for next launch". I find it annoying when I open an image only to have every previous image that I didn't explicitly close with esc come up with it.

Bugs:
It will also open multiple instances of the same image if that image was open in a previous session that was ended with 'Q'.
Steps to recreate:
- Open image with Borderless.
- Close instance of Borderless by right-clicking and selecting Quit or with the 'Q' hotkey.
- Open same image again.


If I delete or move an image I'm stuck with an "invisible" instance of the application in my task bar.
Steps to recreate:
- Open image with borderless.
- Close Borderless by right-clicking and selecting Quit or with the 'Q' hotkey.
- Delete that image file.
- Open a different image file in Borderless.

I do like the minimalist interface, I'd consider this for my default image viewer.
Thanks for the reply.

The menu options under "Transform" do not play well with a 4K display at all (Windows 10). They aren't even remotely legible.
Can you send me a screenshot? I'm not sure how I'll test this since I don't have a 4K monitor, but I'll give it a try. Maybe I can coax a hypervisor to emulate a 4K display.

There is no setting to disable "remember current session for next launch".
It's in the TODO already. I was going to put it in 0.2.1, but I kinda forgot.

Bugs:
It will also open multiple instances of the same image if that image was open in a previous session that was ended with 'Q'.
Steps to recreate:
- Open image with Borderless.
- Close instance of Borderless by right-clicking and selecting Quit or with the 'Q' hotkey.
- Open same image again.
That's working as intended. If you tell it to open several copies of the same image, it will happily do so.

If I delete or move an image I'm stuck with an "invisible" instance of the application in my task bar.
Steps to recreate:
- Open image with borderless.
- Close Borderless by right-clicking and selecting Quit or with the 'Q' hotkey.
- Delete that image file.
- Open a different image file in Borderless.
Noted.
Here's the screenshot: http://imgur.com/3A7oooN

At least I'm assuming that it's because of the 4K display. I guess I don't really know.
Does adding this INI section to {ProgramFiles(x64)}\BorderlessImageViewer\qt.conf fix it?
1
2
[Platforms]
WindowsArguments = dpiawareness=0
It does, but now larger images, like the full screenshot I posted earlier, are rendered too large to view in their entirety.
Ah, makes sense. I'll have to do something more fine-grained, then.
https://github.com/Helios-vmg/Borderless/releases/tag/v0.2.2

New feature: "save state on exit" setting.
FIX: An error message is displayed when an image that was deleted is attempted to open while restoring the last session.
FIX: GUI improvements on high-DPI displays.
FIX: Source package no longer includes the Git repository, thus making it lighter.
This works much better. I'm getting a black-box with "Image does not exist" if I allow the app to save it's state on exit and delete the image before opening again, but that feels like it's by design.
Topic archived. No new replies allowed.