PySolFC icon indicating copy to clipboard operation
PySolFC copied to clipboard

SVG graphics

Open jan-kleks opened this issue 9 years ago • 20 comments

PySolFC a fantastic solitaire collection, it's just a pity that there is only one person currently working on it. :( Even after all these years, the mechanics seem to be all right, the music is awesome, however, the UI could be modernized. By switching to SVG cards one could support any resolution. I have also this crazy idea, that cards could be played directly on the desktop... This would be like a real solitaire on a real table (without window boundaries).

Regards, Jan

jan-kleks avatar Feb 07 '16 02:02 jan-kleks

@jan-kleks : thanks for your suggestions. I agree that supporting SVG cards would be a good idea. I don't immediately see how the UI could be "modernised" but I'm opposed to getting rid of the menu bar, and replacing it with a GoogleChromium/GNOME 3-like main menu button. Regarding playing directly on the desktop - wouldn't a full screen mode be a better idea (and an easier to implement one)?

All that put aside, separate feature requests should be in separate issues/entries for better handling of closing/resolving/etc.

shlomif avatar Feb 07 '16 14:02 shlomif

Why has this project been hidden on github for years? On Sourceforge this year I mentioned that adding SVG support would have benefits, and now I feel a complete idiot, because I see that 12 months earlier this was already being discussed over here on Github!!!

Do people actually WANT help with this project? It's a great project, it needs some more love. What's the best way to move this forward? And by 'this' I don't mean SVG support, I mean the whole project.

It's not clear to me whether there's any regression tests available for this project. Are there unit tests? Before moving to Python 3, surely a comprehensive set of tests is needed?

hairspring avatar Apr 16 '17 11:04 hairspring

Hi hairspring,

On Sun, 16 Apr 2017 04:01:57 -0700 hairspring [email protected] wrote:

Why has this project been hidden on github for years?

Well, I hoped it will eventually get merged into the main sourceforge project, but its maintainers seem to have become missing-in-action. I also didn't publicise it a lot.

On Sourceforge this year I mentioned that adding SVG support would have benefits, and now I feel a complete idiot, because I see that 12 months earlier this was already being discussed over here on Github!!!

Do people actually WANT help with this project? It's a great project, it needs some more love. What's the best way to move this forward? And by 'this' I don't mean SVG support, I mean the whole project.

The current priority is to make the code compatible with python 3 - see https://github.com/shlomif/PySolFC/issues/11 . I was told on #python on freenode that this process cannot be fully automated and I kinda lack the skills for doing that.

It's not clear to me whether there's any regression tests available for this project. Are there unit tests? Before moving to Python 3, surely a comprehensive set of tests is needed?

There are some automated tests - see https://github.com/shlomif/PySolFC/blob/master/.travis.yml . They are not too comprehensive and a lot of the code is GUI one which is hard to test, and PySol went far enough without tests.

Regards,

@shlomif

--

Shlomi Fish http://www.shlomifish.org/ Why I Love Perl - http://shlom.in/joy-of-perl

Tech needs less wizards, ninjas, and rockstars, and way more sociologists. — https://twitter.com/nslater/status/545592700289155072

Please reply to list if it's a mailing list post - http://shlom.in/reply .

shlomif avatar Apr 16 '17 11:04 shlomif

Ahah, I assumed shlomif is an alias for skomoroh, they seemed kind of similar to me. :(

I can appreciate that it's attractive to work on actual code and make the changes to move to Python 3. But I really do think that before doing that we need an automated test suite, that can be set up on a build server such as Jenkins, so we can be confident of minimising regressions.

I have a lot of experience doing this in C#, C++, etc, but none in Python unfortunately (though I'd like to learn). Indeed I have relatively little experience of Python, I can read it ok, but I'm not yet into Pythonic style.

If necessary, we need to refactor code so that the GUI part is rather separate, to make testing easier.

It would be great if we could find someone with experience of testing Python code, setting up unit tests etc.

hairspring avatar Apr 16 '17 12:04 hairspring

Hi hairspring,

On Sun, 16 Apr 2017 05:37:56 -0700 hairspring [email protected] wrote:

Ahah, I assumed shlomif is an alias for skomoroh, they seemed kind of similar to me. :(

I am not "skomoroh" and never used that nickname. See http://www.shlomifish.org/meta/FAQ/#nicknames .

I can appreciate that it's attractive to work on actual code and make the changes to move to Python 3. But I really do think that before doing that we need an automated test suite, that can be set up on a build server such as Jenkins, so we can be confident of minimising regressions.

First of all, we already have a test suite - it's just not too comprehensive. Secondly, we run it on https://en.wikipedia.org/wiki/Travis_CI which is a gratis service similar to Jenkins. See https://travis-ci.org/shlomif/PySolFC . Finally, note that pull-requests that add automated tests are welcome, but someone needs to write them. It's easier to give advice than to actually write code and implement it.

I have a lot of experience doing this in C#, C++, etc, but none in Python unfortunately (though I'd like to learn). Indeed I have relatively little experience of Python, I can read it ok, but I'm not yet into Pythonic style.

OK.

If necessary, we need to refactor code so that the GUI part is rather separate, to make testing easier.

I believe the GUI part is already separate and there are several GUI front-ends. Again - someone has to do the actual programming.

It would be great if we could find someone with experience of testing Python code, setting up unit tests etc.

I have some experience with that but welcome other contributors.

--

Shlomi Fish http://www.shlomifish.org/ Summer Glau Facts - http://shlom.in/sglau-facts

Chuck Norris can make the statement “This statement is false.” a true one. — http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .

shlomif avatar Apr 16 '17 14:04 shlomif

It's easier to give advice than to actually write code and implement it.

Indeed so! "Those that can, do. Those that can't, make suggestions"! :)

Github, git, python (2 and 3), Travis CI, Pysol code itself, Tk gui, ... there is much to learn. :(

I'm not even sure what is appropriate discussion in issues threads, am I creating clutter? Normally I'd take this kind of discussion to a mailing list, or perhaps even send private mail (can't do that, having read http://www.shlomifish.org/meta/FAQ/#refer_or_address I'd be racked with indecision between all the possibilities! ;) ). Besides, I agree that public discussion helps others, private mails are rarely useful.

As you can guess, I'm quite keen on regression testing. Does the Travis CI system only test the master, or can it be told to test selected (or all) branches as well?

I'm sorry, I'm very conscious I'm dragging this discussion off topic.

hairspring avatar Apr 16 '17 22:04 hairspring

Hi,

On Sun, 16 Apr 2017 15:48:23 -0700 hairspring [email protected] wrote:

It's easier to give advice than to actually write code and implement it.

Indeed so! "Those that can, do. Those that can't, make suggestions"! :)

Heh, true. Also see http://shlomif.livejournal.com/39215.html .

Github, git, python (2 and 3), Travis CI, Pysol code itself, Tk gui, ... there is much to learn. :(

Yeah.

I'm not even sure what is appropriate discussion in issues threads, am I creating clutter? Normally I'd take this kind of discussion to a mailing list, or perhaps even send private mail (can't do that, having read http://www.shlomifish.org/meta/FAQ/#refer_or_address I'd be racked with indecision between all the possibilities! ;) ). Besides, I agree that public discussion helps others, private mails are rarely useful.

I feel it's still on topic, but you can also reach me on IM/etc. here - http://www.shlomifish.org/me/contact-me/ . there's also a chatroom for PySol on freenode.

As you can guess, I'm quite keen on regression testing. Does the Travis CI system only test the master, or can it be told to test selected (or all) branches as well?

I think Travis tests all branches by default - or at least those that contain a .travis.yml file. Moreover, it also tests the commits on the pull requests when they are filed.

I'm sorry, I'm very conscious I'm dragging this discussion off topic.

you're not.

--

Shlomi Fish http://www.shlomifish.org/ Emma Watson Factoids - http://shlom.in/emwatson-facts

When Chuck Norris uses git, he takes a coffee break after initiating every git commit. And then he waits for the commit to finish. — http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .

shlomif avatar Apr 17 '17 01:04 shlomif

I feel it's still on topic, but you can also reach me on IM/etc. here - http://www.shlomifish.org/me/contact-me/ . there's also a chatroom for PySol on freenode.

Afraid I'm not a great one for IM/IRC/etc.

I think Travis tests all branches by default - or at least those that contain a .travis.yml file. Moreover, it also tests the commits on the pull requests when they are filed.

That's useful.

I'm having trouble finding our other interchanges on Github, it doesn't seem to tell me where I've commented. But in mail (now deleted) I noticed you responded to my comment about flake8. Thx for that, I'd supposed flake8 was the name of some solitaire variant you were testing, or some such. Seeing your response caused me to question my assumption, I googled, ahah, flake8 is a Python tool. Yet more learning needed! ;) :/

hairspring avatar Apr 17 '17 22:04 hairspring

I'm sorry, but I'm unclear in the resolution of this issue. Does PySolFC now support SVG cardsets/graphics?

AntumDeluge avatar Apr 27 '19 16:04 AntumDeluge

@AntumDeluge : my mistake - it was closed by mistake. Reopening. There is no support for svg yet.

shlomif avatar Apr 27 '19 17:04 shlomif

I started implementing preliminary support for loading kpat's SVG cards here: https://github.com/shlomif/PySolFC/tree/svg-support . Building it requires chasing some dependencies using apt/dnf/etc. and may not be a portable process yet. I'd like to share some screenshots and screen recordings soon.

shlomif avatar Apr 28 '19 19:04 shlomif

Nice! Can't wait to see how it works out.

I've been working on converting GreyWyvern's cardset to SVG.

AntumDeluge avatar Apr 29 '19 06:04 AntumDeluge

Screenshot_20190501_193008

This is a screenie of the SVG cards in action - also see https://www.shlomifish.org/Files/files/images/pysolfc--svg-cards--preview0.1.0.webp . Enjoy!

shlomif avatar May 01 '19 16:05 shlomif

Nice work. Will the SVG images scale with the window when resized?

AntumDeluge avatar May 01 '19 22:05 AntumDeluge

I have two remarks that may be related:

  • cards have wrong aspect ratio, they are narrower than the kpat original
  • graphics on the cards look jagged, like there's some anti-aliasing or interpolation issue

Programator2 avatar May 02 '19 14:05 Programator2

Nice work. Will the SVG images scale with the window when resized?

That is the plan, but AFAI can tell, they currently do not.

shlomif avatar May 02 '19 20:05 shlomif

I have two remarks that may be related:

* cards have wrong aspect ratio, they are narrower than the kpat original

* graphics on the cards look jagged, like there's some anti-aliasing or interpolation issue

Both of these symptoms are expected due to the way it is currently done. The branch will require more work.

shlomif avatar May 02 '19 20:05 shlomif

@Programator2 : I've done some work on that and you can see the results here - https://www.shlomifish.org/Files/files/images/pysolfc-svg-support--v0.1.1.webp . Please let me know if there's an improvement.

shlomif avatar May 16 '19 19:05 shlomif

Nice job, card graphics look definitely better now.

There's one little thing I've just noticed - left edges of diamond suite cards are shifted a bit to the right. Is it because of the image files? I see that this also happens in KPat.

Programator2 avatar May 20 '19 16:05 Programator2

@Programator2 : thanks for the input. There is still some work to do.

shlomif avatar May 22 '19 19:05 shlomif