Glad you like Kuadro. Yeah the autoarrange thing is something in the back of my head. I have a couple of questions for you though, what metrics would you want used to determine the size of an image? The size of the original image?
And would you be OK with Kuadro just auto arranging on screen and ignoring open windows? Or would it have to respect your other software and work around it?
There are a tons of ways of skinning this cat, just trying to figure out the most intuitive for the users. Would it arrange top to bottom? Frame the screen? Just tile? It's an interesting problem.
I'll look into it, I think having square images is a bit of a cop out, I rather at least keep already sized images the proper size and just try to fit them. Because if you went through the trouble or sizing the image and focusing on the area you care about, and then I stomp that work when you auto arrange it's kinda crappy.
This is a solved problem, someone else already figured out a way to fit rectangles into a larger rectangle, I just need to do a little research into what's the best solution for Kuadro. And yeah, moving multiple images at the same time is also something that has been requested and it's a good feature to have.
I'll add this to my todo list. I just got Kuadro for mac working yesterday and I have a few new features coming (desaturate image, open images from web, few bugfixes). If anyone has a mac 10.9 or above and would like to be a guinea pig, send me a PM and I'll hook you up with an .dmg.
I'm hoping to have another release ready in the next couple of weeks.
Here's a few things that came to my mind while working with it and would be nice to have.
Image scaling:
Holding down CTRL while dragging one of the corners scales the image with the current proportions. Right now if I want to scale a image bigger, I have to drag to scale the canvas and then zoom in.
Fix image duplication:
Duplicating an image currently offsets the duplicate a lot from the original,
thus sometimes ending up outside of my screen, a slight offset (10x10px) from the original position would be enough, since the user is going to reposition it anyway, this should also prevent if from getting offset outside the screen.
Snapping:
Snapping to the screen border and other images during movement if they are close together, this could be the first step for an easier image arrangement. Here's an example based on the STEAM-windows, for easier understanding:
Better image rotation: Image Rotation just like in Photoshop when OpenGL is enabled. It's stepless but can also be constrained to 15° steps when a second key is held down.
Rotation centre should be based on the canvas centre.
The current implementation of Kuadro is pretty quirky and doesn't allow precise rotation.
Thanks for taking the time to post! Yeah the rotation is kinda janky, I've never been super happy with that implementation myself, I'll have to revisit it at some point.
Good idea on the Ctrl Resize to scale the image, I'll throw that into the todo list.
The Duplication issue is an easy fix, right now I offset the image by the image's width so they're side by side, but I guess you're right, just a 20px offset should be plenty.
And yeah, snapping is on my todo list already, I'll have to think of a good way of solving that one.
thanks for the update, though I'm encountering some issues.
Using the arrow keys to navigate through the available images sometimes stops working,
I then have to rescale the canvas first in order to update the canvas and to have the next image show up.
I think this has something to do with the original scale of the image and the proportions, like it's not always able to fit it to the canvas.
Duplicating images as well as loading a *.ref file takes a lot of time if the refence-images are part of a folder with a lot of images.
EDIT: This has NOT been the case in the old version, just tested it again.
If you need more information or want to do some debugging, I'm happy to help
Thank you for the updates! The software is getting better and better
Btw, later could you add the "Send to top" option into the right click menu (when i right click on the images, i cannot find that, but it would be a lot more confortable than having to go down to my system tray to do that)
thx for your hard work! Gonna donate more for sure!
If you hit Spacebar it should send the current image to top, are you looking for something to send all of them to the top? That can certainly be added.
well, i did not know about that space option. but it's great to know!
what i was wondering is that there is a "send to top" option now in the right click menu if i click on the system tray icon. and i just would like to have the same option when right i click on the images. if that is possible. thx for your hard work btw!
I just finished the Kuadro for OSX port. I have the website ready to go, but wanted to see if anyone here wanted to test it and make sure it works for them. You can grab the .dmg at
kruelgames.com/tools/kuadro/latest_mac
Please let me know if you guys run into anything, I'm hoping to go live either tonight or tomorrow
I've just downloaded Kuadro for mac and can't run it, maybe it's the fact that I have OS X 10.8.5, and not the last version of it. Here is console output for the error:
4/27/15 1:31:09.921 PM kuadro[279]: Traceback (most recent call last):
4/27/15 1:31:09.921 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/__boot__.py", line 77, in <module>
4/27/15 1:31:09.921 PM kuadro[279]: _run()
4/27/15 1:31:09.922 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/__boot__.py", line 62, in _run
4/27/15 1:31:09.922 PM kuadro[279]: exec(compile(source, path, 'exec'), globals(), globals())
4/27/15 1:31:09.922 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/run.py", line 3, in <module>
4/27/15 1:31:09.922 PM kuadro[279]: from PySide import QtGui, QtNetwork, QtCore
4/27/15 1:31:09.924 PM kuadro[279]: File "PySide/QtGui.pyc", line 14, in <module>
4/27/15 1:31:09.924 PM kuadro[279]: File "PySide/QtGui.pyc", line 10, in __load
4/27/15 1:31:09.924 PM kuadro[279]: ImportError: dlopen(/Applications/kuadro.app/Contents/Resources/lib/python2.7/lib-dynload/PySide/QtGui.so, 2): Symbol not found: ___sincos_stret
4/27/15 1:31:09.924 PM kuadro[279]: Referenced from: /Applications/kuadro.app/Contents/MacOS/../Frameworks/QtCore.framework/Versions/4/QtCore
4/27/15 1:31:09.924 PM kuadro[279]: Expected in: /usr/lib/libSystem.B.dylib
4/27/15 1:31:09.925 PM kuadro[279]: in /Applications/kuadro.app/Contents/MacOS/../Frameworks/QtCore.framework/Versions/4/QtCore
4/27/15 1:31:09.989 PM kuadro[279]: kuadro Error
4/27/15 1:31:12.456 PM com.apple.launchd.peruser.501[153]: ([0x0-0x17017].org.pythonmac.unspecified.kuadro[279]) Exited with code: 255
I've downloaded the last version of Kuadro for windows and I see that it doesn't save the presets anymore. I see that version 0.7.0 save them fine but from 0.8 it doesn't.
That's really weird, I just downloaded .85 from the website and made a new ref without any issues. Do you have any non-ascii characters in your directory or trying to do anything special?
I think I've identified the problem, I was trying to save the preset on a different volume than the one I have the references. For example I have the images in f:\refs and I was trying to save them on Desktop or C:\
1) Make the About screen (the list of hotkeys) have a vertical scrollbar and be resizable at least vertically.
My monitor is 1080p and some of the hotkeys are below the visible area (the window is larger than the screen).
2) Enable combining more than one image in the same "application instance", so a single Alt+Tab brings all your references to the front.
3) Add an option to enable the snapping of images between themselves and with the screen geometry.
If the snapping is on, dragging an image close to another would snap it to the edges of the other. Dragging an image close to the edges of the screen would snap it to that edge of the screen.
I've been meaning to add a scrollbar to the About screen, I'll make sure it's in for the next version.
Have you tried hitting Spacebar? That should bring all of the reference up together.
And yeah, snapping would be awesome, I can see adding snapping between the windows fairly easily, against open windows it might be a bit tricker. I'll see what I can do.
Just wanted to say thanks for making such an awesome tool! Especially awesome when I'm working on my 14" laptop. Always on top and opacity saves my life!
Thanks for a wonderful tool and for being accessible and transparent throughout its development. I just voted for snaps functionality with a little donation.
Thanks! That certainly greases the wheel it's really appreciated!
I'll look at the snapping amongst themselves, that should be totally doable. Snapping with other windows gets trickier, but might be doable in the Windows version.
Thanks for the compliments and the donation. I definitely try my best to keep it transparent and develop my tools with the people that live with them it's nice to know it's appreciated
Yeah, this tool is awesome. I used to use refBoard, but when I tried this I knew there was no goin back. THANK YOU for giving us such an awesome help in our work!
A few small comments:
-Don't know if this was fixed in later versions (using 0.8.5), but whenever I open the window to see the shortcuts, it's too big in my 1366x768 screen and I can't resize the window, for which I can't see all shortcuts (pic below).
-It'd be great if there was a shortcut to Restore All once you press M to minimize all. M is actually the only key I use heh. I know this can be hard since it should be something like a global command since all Kuadro pics will be minimized I guess mmmm...
-This same thing happened with refBoard: even if they're set to Always on Top, images will go to the background whenever I switch viewports with the space bar in a 3d app (Maya and Max, to be more specific). I don't know what causes this and it's a bit tedious to have to go to the task bar again and Restore All.
But seriously, they are very small cons to this awesome awesome piece of app. If you never do anything regarding these 3 issues, my love for Kuadro wouldn't diminish in the slightest.
Great tool.
But i got few crashes now. If i open new large JPEG about 2500x3500 and press G for the first time, it takes about 10 seconds (which is not a big problem) to convert, but sometimes it just freezes completely and windows says that Kuadro stopped working. I'm on W7x64
Justo- Thanks for the feedback, adding a scrollbar to that window is my next top priority The restore all once it's been minimized it's a bit tricky, but I'll look into it!
Zelfit - Glad you liked it. I'm sorry it's hanging on you when generating the grayscale. I'll do some more testing on that. Thanks for reporting it!
Paint Through Kuadro - When you lock Kuadro's images your mouse events pass through to the application below! This allows you to use Kuadro to trace images in other applications.
The QT one didn't work in OSX. and I need to do some research on to how to call OSX flags from Python. Windows has the win32api module that lets me get down to the window low level flags, but I haven't dug deep enough on Mac
I don't think the Qt one is supposed to work because it's an internal attribute that tells Qt how to propagate mouse events to its own widgets.
By this point the Qt application has already intercepted the mouse event, so it's too late. This really needs to be done with the OS API.
The trick was just getting a python library to do all of the NSWIndow stuff. I found one with PyObjC I'll give it a shot this weekend and post back with the update.
Really appreciate the code though, very nice of you
Update: looking at it, Qt on the mac doesn't implement setIgnoresMouseEvents properly. It wraps the NSWindow into a QCocoaWindow and doesn't provide me access to it. It would take recompiling Qt to add the hooks I need. It's doable, but not a small endeavor.
I'm using PySide. I did all of what you said, the trick is that when you get back the PyCObject it's a QCocoaView or a QCocoaWindow. The QCocoaWindow has the NSWindow as one of it's private members, and it's the interface layer to the native NSWindow, unfortunately it doesn't expose the setTransparent command, it calls it in one of its functions, but not in a way that I could use it. The code fix to Qt would be minimal to expose that function and hit it. It'll just take a little bit to get everything building and working.
Thanks for digging for it though!
Sam,
Thanks! Glad you liked it and I appreciate the donation! Everything helps. I'll take a look at the snapping, I fixed the about window yesterday and then got caught on the rabbit hole of OSX api calls, I'll get back on the easier stuff next.
The one thing I've seen is that Kuadro doesnt like special characters, like accents, or non standard ascii, maybe it's that?
That's a really nice app, I've been using it since Version 0.6, and it's great. Now, I dont need to store more refs in my HD, only reference files. It's cool to have them all linked from the web URL. The logo looks like Mondrian, awesome.
Neat app. All it needs is DDS and Animated GIF support and I'll be able to dump my other image viewers completely
Is there any way to 'select' and close or move multiple windows at once?
Also found a bug. Steps to reproduce;
1. ctrl+lmb duplicate image a few times, then close all but one of them.
2. Scale the image via alt+ctrl+shift+lmb
3. ctrl+lmb on image again. BOOM. all the closed windows reappear.
Replies
Thanks for the download. I'll look into it, should be possible. thanks for the suggestion
Glad you like Kuadro. Yeah the autoarrange thing is something in the back of my head. I have a couple of questions for you though, what metrics would you want used to determine the size of an image? The size of the original image?
And would you be OK with Kuadro just auto arranging on screen and ignoring open windows? Or would it have to respect your other software and work around it?
There are a tons of ways of skinning this cat, just trying to figure out the most intuitive for the users. Would it arrange top to bottom? Frame the screen? Just tile? It's an interesting problem.
Thanks for the download.
Thanks for the answer!
I'll look into it, I think having square images is a bit of a cop out, I rather at least keep already sized images the proper size and just try to fit them. Because if you went through the trouble or sizing the image and focusing on the area you care about, and then I stomp that work when you auto arrange it's kinda crappy.
This is a solved problem, someone else already figured out a way to fit rectangles into a larger rectangle, I just need to do a little research into what's the best solution for Kuadro. And yeah, moving multiple images at the same time is also something that has been requested and it's a good feature to have.
I'll add this to my todo list. I just got Kuadro for mac working yesterday and I have a few new features coming (desaturate image, open images from web, few bugfixes). If anyone has a mac 10.9 or above and would like to be a guinea pig, send me a PM and I'll hook you up with an .dmg.
I'm hoping to have another release ready in the next couple of weeks.
Thanks for the feedback!
I'm really liking Kuadro so far!
Here's a few things that came to my mind while working with it and would be nice to have.
Image scaling:
Holding down CTRL while dragging one of the corners scales the image with the current proportions. Right now if I want to scale a image bigger, I have to drag to scale the canvas and then zoom in.
Fix image duplication:
Duplicating an image currently offsets the duplicate a lot from the original,
thus sometimes ending up outside of my screen, a slight offset (10x10px) from the original position would be enough, since the user is going to reposition it anyway, this should also prevent if from getting offset outside the screen.
Snapping:
Snapping to the screen border and other images during movement if they are close together, this could be the first step for an easier image arrangement. Here's an example based on the STEAM-windows, for easier understanding:
Better image rotation:
Image Rotation just like in Photoshop when OpenGL is enabled. It's stepless but can also be constrained to 15° steps when a second key is held down.
Rotation centre should be based on the canvas centre.
The current implementation of Kuadro is pretty quirky and doesn't allow precise rotation.
Example from Photoshop:
Keep up the good work!
Thanks for taking the time to post! Yeah the rotation is kinda janky, I've never been super happy with that implementation myself, I'll have to revisit it at some point.
Good idea on the Ctrl Resize to scale the image, I'll throw that into the todo list.
The Duplication issue is an easy fix, right now I offset the image by the image's width so they're side by side, but I guess you're right, just a 20px offset should be plenty.
And yeah, snapping is on my todo list already, I'll have to think of a good way of solving that one.
Thanks for the post!
Luiz
Kuadro version .8 is out!
Tons of features in this one, 32 bit compatibility, open images from the web, relative paths, and many more.
Download it for free at:
http://kruelgames.com/tools/kuadro/
As always, thanks for the support and suggestions!
thanks for the update, though I'm encountering some issues.
Using the arrow keys to navigate through the available images sometimes stops working,
I then have to rescale the canvas first in order to update the canvas and to have the next image show up.
I think this has something to do with the original scale of the image and the proportions, like it's not always able to fit it to the canvas.
Duplicating images as well as loading a *.ref file takes a lot of time if the refence-images are part of a folder with a lot of images.
EDIT: This has NOT been the case in the old version, just tested it again.
If you need more information or want to do some debugging, I'm happy to help
Thanks for letting me know, I'll check it out and see if I can make it better.
Stephen, Glad you liked it
Btw, later could you add the "Send to top" option into the right click menu (when i right click on the images, i cannot find that, but it would be a lot more confortable than having to go down to my system tray to do that)
thx for your hard work! Gonna donate more for sure!
If you hit Spacebar it should send the current image to top, are you looking for something to send all of them to the top? That can certainly be added.
Thanks!
what i was wondering is that there is a "send to top" option now in the right click menu if i click on the system tray icon. and i just would like to have the same option when right i click on the images. if that is possible. thx for your hard work btw!
I thought space only brings pictures to top individually. So never mind!
Popeye9, awesome, glad it's been helpful!
I just finished the Kuadro for OSX port. I have the website ready to go, but wanted to see if anyone here wanted to test it and make sure it works for them. You can grab the .dmg at
kruelgames.com/tools/kuadro/latest_mac
Please let me know if you guys run into anything, I'm hoping to go live either tonight or tomorrow
Grab it at http://kruelgames.com/tools/kuadro
Thanks for the support!
I've just downloaded Kuadro for mac and can't run it, maybe it's the fact that I have OS X 10.8.5, and not the last version of it. Here is console output for the error:
4/27/15 1:31:09.921 PM kuadro[279]: Traceback (most recent call last):
4/27/15 1:31:09.921 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/__boot__.py", line 77, in <module>
4/27/15 1:31:09.921 PM kuadro[279]: _run()
4/27/15 1:31:09.922 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/__boot__.py", line 62, in _run
4/27/15 1:31:09.922 PM kuadro[279]: exec(compile(source, path, 'exec'), globals(), globals())
4/27/15 1:31:09.922 PM kuadro[279]: File "/Applications/kuadro.app/Contents/Resources/run.py", line 3, in <module>
4/27/15 1:31:09.922 PM kuadro[279]: from PySide import QtGui, QtNetwork, QtCore
4/27/15 1:31:09.924 PM kuadro[279]: File "PySide/QtGui.pyc", line 14, in <module>
4/27/15 1:31:09.924 PM kuadro[279]: File "PySide/QtGui.pyc", line 10, in __load
4/27/15 1:31:09.924 PM kuadro[279]: ImportError: dlopen(/Applications/kuadro.app/Contents/Resources/lib/python2.7/lib-dynload/PySide/QtGui.so, 2): Symbol not found: ___sincos_stret
4/27/15 1:31:09.924 PM kuadro[279]: Referenced from: /Applications/kuadro.app/Contents/MacOS/../Frameworks/QtCore.framework/Versions/4/QtCore
4/27/15 1:31:09.924 PM kuadro[279]: Expected in: /usr/lib/libSystem.B.dylib
4/27/15 1:31:09.925 PM kuadro[279]: in /Applications/kuadro.app/Contents/MacOS/../Frameworks/QtCore.framework/Versions/4/QtCore
4/27/15 1:31:09.989 PM kuadro[279]: kuadro Error
4/27/15 1:31:12.456 PM com.apple.launchd.peruser.501[153]: ([0x0-0x17017].org.pythonmac.unspecified.kuadro[279]) Exited with code: 255
Yeah... it needs to be 10.9 and up. That's what I have installed and there's some backward compatibility issues with packaging the app.
Sorry
I've downloaded the last version of Kuadro for windows and I see that it doesn't save the presets anymore. I see that version 0.7.0 save them fine but from 0.8 it doesn't.
That's really weird, I just downloaded .85 from the website and made a new ref without any issues. Do you have any non-ascii characters in your directory or trying to do anything special?
I think I've identified the problem, I was trying to save the preset on a different volume than the one I have the references. For example I have the images in f:\refs and I was trying to save them on Desktop or C:\
Would be great if you could scale window and image at the same time
1) Make the About screen (the list of hotkeys) have a vertical scrollbar and be resizable at least vertically.
My monitor is 1080p and some of the hotkeys are below the visible area (the window is larger than the screen).
2) Enable combining more than one image in the same "application instance", so a single Alt+Tab brings all your references to the front.
3) Add an option to enable the snapping of images between themselves and with the screen geometry.
If the snapping is on, dragging an image close to another would snap it to the edges of the other. Dragging an image close to the edges of the screen would snap it to that edge of the screen.
Thanks for downloading and the feedback.
I've been meaning to add a scrollbar to the About screen, I'll make sure it's in for the next version.
Have you tried hitting Spacebar? That should bring all of the reference up together.
And yeah, snapping would be awesome, I can see adding snapping between the windows fairly easily, against open windows it might be a bit tricker. I'll see what I can do.
Thanks for stopping by!
I'll look at the snapping amongst themselves, that should be totally doable. Snapping with other windows gets trickier, but might be doable in the Windows version.
Thanks for the compliments and the donation. I definitely try my best to keep it transparent and develop my tools with the people that live with them it's nice to know it's appreciated
A few small comments:
-Don't know if this was fixed in later versions (using 0.8.5), but whenever I open the window to see the shortcuts, it's too big in my 1366x768 screen and I can't resize the window, for which I can't see all shortcuts (pic below).
-It'd be great if there was a shortcut to Restore All once you press M to minimize all. M is actually the only key I use heh. I know this can be hard since it should be something like a global command since all Kuadro pics will be minimized I guess mmmm...
-This same thing happened with refBoard: even if they're set to Always on Top, images will go to the background whenever I switch viewports with the space bar in a 3d app (Maya and Max, to be more specific). I don't know what causes this and it's a bit tedious to have to go to the task bar again and Restore All.
But seriously, they are very small cons to this awesome awesome piece of app. If you never do anything regarding these 3 issues, my love for Kuadro wouldn't diminish in the slightest.
YOU ROCK
O
U
R
O
C
K
But i got few crashes now. If i open new large JPEG about 2500x3500 and press G for the first time, it takes about 10 seconds (which is not a big problem) to convert, but sometimes it just freezes completely and windows says that Kuadro stopped working. I'm on W7x64
Zelfit - Glad you liked it. I'm sorry it's hanging on you when generating the grayscale. I'll do some more testing on that. Thanks for reporting it!
I haven't found a good way of doing that with the MAC yet, but I'm sure one is out there.
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/index.html#//apple_ref/occ/instm/NSWindow/setIgnoresMouseEvents:
http://stackoverflow.com/questions/5347810/setignoresmouseeventsyes-not-working-e-g-flashing-window
By this point the Qt application has already intercepted the mouse event, so it's too late. This really needs to be done with the OS API.
We also use Qt for PureRef.
This is how we do Transparent to mouse events on both Windows and OSX:
Hope this helps
The trick was just getting a python library to do all of the NSWIndow stuff. I found one with PyObjC I'll give it a shot this weekend and post back with the update.
Really appreciate the code though, very nice of you
Qt has an obscure function QWidget::winId(), which returns a native handle to the widget window.
In Python it's possible that this returned value is a "PyCObject" and you'll have to use AsVoidPtr to retrieve the handle:
https://docs.python.org/2/c-api/cobject.html#c.PyCObject_AsVoidPtr
On OS X I'm not sure if this pointer is from a NSWindow or NSView, but it's the closest thing to what's needed.
There's also QMacNativeWidget: http://doc.qt.io/qt-5/qmacnativewidget.html#details
1) I'm seconding an internal snap between Kuadro windows.
2) Don't know if this has been mentioned before, but an auto-arrangement would also be a really cool feature.
3) One thing I noticed was that it doesn't save a *.ref file on my secondary disc, works fine on my main one. Any idea what could be going on?
Again, thanks and awesome job!
I'm using PySide. I did all of what you said, the trick is that when you get back the PyCObject it's a QCocoaView or a QCocoaWindow. The QCocoaWindow has the NSWindow as one of it's private members, and it's the interface layer to the native NSWindow, unfortunately it doesn't expose the setTransparent command, it calls it in one of its functions, but not in a way that I could use it. The code fix to Qt would be minimal to expose that function and hit it. It'll just take a little bit to get everything building and working.
Thanks for digging for it though!
Sam,
Thanks! Glad you liked it and I appreciate the donation! Everything helps. I'll take a look at the snapping, I fixed the about window yesterday and then got caught on the rabbit hole of OSX api calls, I'll get back on the easier stuff next.
The one thing I've seen is that Kuadro doesnt like special characters, like accents, or non standard ascii, maybe it's that?
Thanks once again
Is there any way to 'select' and close or move multiple windows at once?
Also found a bug. Steps to reproduce;
1. ctrl+lmb duplicate image a few times, then close all but one of them.
2. Scale the image via alt+ctrl+shift+lmb
3. ctrl+lmb on image again. BOOM. all the closed windows reappear.