Code Monkey home page Code Monkey logo

Comments (14)

z411 avatar z411 commented on August 22, 2024

Thank you for the feedback. While I'm planning to make a Win32 compatible interface in the future, I haven't tested if the existing interfaces work, so your testing helps very much.

wmal.py: If this is working then it means that the engine has no problem, so it's good to know. The cosmetic problem is caused by the color ANSI escape sequences so I'll try to fix that, or disable them completely for now.

wmal-curses.py: This is made using the urwid library, and well, it was made with *nix in mind. But I've read that it can also use the pdcurses (cross-platform) or wcurses (Win32) libraries so I'll test that. The current workaround is to run it under the Cygwin terminal but that's not really Win32 anymore...

wmal-gtk.py: This one surprises me, I'll really have to test this. I wonder if the problem is related to threading. And while you mention it, I will to improve the (now primitive) lock check, and at least have an option to disable it for debugging.

As for building a Windows interface, there doesn't seem to be a Python wrapper for the Win32 GUI API. I knew there was a "venster" library but it looks like it was abandoned. If you know of anything please tell me.

For now I'll probably make a wx interface, or (painfully) work directly with the Win32 API.

Another problem in Win32 is the episode tracker. It makes a call to "lsof" which obviously is unavailable in Windows, so I'll research if it can be done through the Win32 API.

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

I'm not entirely sure if I had to go about manually resolving the dependencies (or use easy_install or pip) before wmal.py worked. I unfortunately didn't keep any notes while I was doing that. But even with that in mind, it does actually work in the stock Prompt, so it's not like there's a huge problem there.

The results with wmal-gtk.py are mainly because I knew I already had Py-GTK for Windows installed (as a dependency for Meld to work). Not sure if that really makes a difference in building an interface, though.

I do remember that some of my attempts involved using Cygwin to try and fetch/build things, which is part of why I said getting modules into Python on Windows is so nasty (it may have been when I was attempting to get urwid in there).

It makes me wonder if using ActiveState Python would be a better alternative on Windows, in case there's a more unified repository system there, but I just went with the official distribution from python.org since I figure it's probably better to assume the user has that one installed (and because that's the one I already did have installed). I'm just not sure if the official distro of Python for Windows and ActivePython can play nice together (and I'm not so sure I want to try and find out).

If it helps, this is the content of my site-packages directory:

 Volume in drive C has no label.
 Volume Serial Number is 00A1-FD09

 Directory of C:\WINDOWS\Python27\Lib\site-packages

10/31/2012  01:21 PM    <DIR>          .
10/31/2012  01:21 PM    <DIR>          ..
10/31/2012  01:19 PM    <DIR>          cairo
10/16/2012  09:32 PM               240 easy-install.pth
09/20/2006  01:05 PM               126 easy_install.py
10/14/2012  12:53 AM               320 easy_install.pyc
10/14/2012  12:53 AM               320 easy_install.pyo
10/31/2012  01:19 PM    <DIR>          gtk-2.0
10/13/2012  11:38 PM    <DIR>          PIL
05/15/2010  11:03 AM                 5 PIL.pth
10/16/2012  09:37 PM    <DIR>          pip
10/14/2012  12:53 AM    <DIR>          pip-1.2.1-py2.7.egg-info
10/19/2009  09:35 AM            85,435 pkg_resources.py
10/16/2012  09:26 PM            92,571 pkg_resources.pyc
10/14/2012  12:53 AM            92,571 pkg_resources.pyo
11/02/2010  08:35 PM               211 pycairo-1.8.10-py2.7.egg-info
02/08/2012  11:50 PM                24 pygtk.pth
04/04/2011  05:39 PM             2,966 pygtk.py
10/31/2012  01:21 PM             2,071 pygtk.pyc
10/16/2012  08:01 PM    <DIR>          pyreadline
10/06/2011  04:33 PM             2,240 pyreadline-1.7.1-py2.6.egg-info
10/16/2012  09:32 PM           141,226 pyserial-2.6-py2.7.egg
06/23/2011  06:25 AM             2,633 readline.py
10/16/2012  08:01 PM             1,878 readline.pyc
10/16/2012  08:01 PM             1,878 readline.pyo
03/08/2011  09:39 AM               121 README.txt
10/16/2012  09:26 PM    <DIR>          setuptools
10/14/2012  12:53 AM    <DIR>          setuptools-0.6c11-py2.7.egg-info
09/20/2006  01:05 PM             2,362 site.py
10/14/2012  12:53 AM             1,735 site.pyc
10/14/2012  12:53 AM             1,735 site.pyo
10/16/2012  09:26 PM    <DIR>          urwid-1.0.2-py2.7-win32.egg
              21 File(s)        432,668 bytes
              11 Dir(s)  13,069,455,360 bytes free

from trackma.

z411 avatar z411 commented on August 22, 2024

Hello, I just tested the scripts in Windows. I used the official Python distribution.

In CLI wmal.py it asked for readline, but actually that module is optional as it just provides command history (up/down keys) and autocompletion (tab key). I made the changes so it starts anyway if the module is missing. No other external module was needed.

As for wmal-gtk hanging, you can try removing the line 418 as a workaround:

418        self.main.set_title('wMAL-gtk v0.1 [%s (%s)]' % (self.engine.api_info['name'], self.engine.api_info['mediatype'])) # remove this

Removing this line works for me, but it still hangs when trying to close it. My guess is that it's having problems communicating with the window manager while in a thread (which is probably something I shouldn't have done in the first place). I'll work on this.

If you get the "Database is locked" error it means that the script wasn't closed cleanly last time, so for now you'll have to delete the "lock" file manually.

Tell me how it goes.

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

I can confirm that commenting out that line in wmal-gtk.py makes the content appear and allows me to actually work with it like I can on Ubuntu. Same with it still hanging on close, too. I've gotten into the habit of needing to delete the lock file manually anyway, so that's no trouble.

from trackma.

z411 avatar z411 commented on August 22, 2024

Now that there is a Qt interface, it seems to work much better on Windows. I even tested with some primitive recognition on the Win32 branch, although I'll think of a better way to handle it. Nevertheless, Qt is quite a heavy dependency and it makes any attempt of freezing the application into a Windows installer not very lightweight. But I'll work on it if anyone wants to use it still.

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

I wouldn't worry so much about the size of Qt, since it only requires the runtime - which according to PyQt's installer, only uses about 63 MBs of disk space. Compared to the 200+ MBs required to pull in Qt on a GTK-centric Linux distro, that's really not that bad.

EDIT: And ~63 MBs is just the raw size of the install; it can be cut down to 32 MBs if you pack the .dlls with UPX.

The only real issue I had when I tested the Qt interface was that the series info boxes took up like 80-90% of the window (not sure why, either, unless it has to do with the length of the titles somehow) and the series list was squeezed down rather awkwardly, so it didn't match the example picture of the Qt UI on the main page. I can expand the window out so the list isn't squashed, but the info area shouldn't be taking up that much space.

Example image:
https://imageshack.com/i/nmxkrjp

from trackma.

z411 avatar z411 commented on August 22, 2024

Thanks for testing. I wonder why that happened, widget/layout width seems utterly wrong but it works on my end.

Screenshot:
http://postimg.org/image/tvhuep8jd/full/

Which version of Qt/PyQt are you using?

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

PyQt4-4.11.1-gpl-Py2.7-Qt4.8.6-x32.exe

Ah, it seems to be related to the uxtheme. I tested with some others (Windows Classic and Cappuccino) and it appears correctly for those.

It is weird because this is like, the only time I've ever encountered a problem with the theme I was using (CleanGlass), and I've been using it for years.

from trackma.

z411 avatar z411 commented on August 22, 2024

Maybe because I didn't set a fixed widget width. I'll try that theme and look into it. Thanks.

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

I looked into the idea of fixed width being a solution for the uxtheme problem, and can confirm that yes, adding a fixed width for those widgets does solve the issue. I set the width to 100 to match the width for the series image, except for the progress and score spinboxes, which were set to 50. This makes the window appear as it should, even with the CleanGlass theme.

There is an issue with the progress bar in the series column as well as in the list column, and that's if the series is at 100%, it fills correctly. Anything less than 100%, and it doesn't fill at all*. Again, just with this theme - if I switch to Windows Classic, it does fill partially when under 100%, and does so with the right proportion in relation to the percentage.

*this acts differently between the series and list bars; the list bar never fills, the series bar depends on the value applied in the fixed-width fix (if the value is too small, like 100, it fails to fill), but displays the fill incorrectly, with the amount not being representative of the percentage.

A workaround is to invoke wmal-qt with a different style, which makes it ignore the uxtheme completely. PyQt comes with several built-in, but some of them don't seem to work under Windows - the ones that did work were Plastique, Clearlooks, Motif, CDE, Windows, and WindowsXP. The 'WindowsXP' style is the default one that honors the uxtheme (I would assume 'WindowsVista' does too, on Vista or higher, but since I'm not using one of those, it and any of the non-working styles fall back to 'Windows').

A feature request in regard to the above would be the ability for the user to switch what style they're using from within wmal-qt.

Also, clicking the close button doesn't exit the program in the Prompt, even though going through the menu and choosing to exit does. If I forget and click X, I have to kill the Prompt, since not even Ctrl+C will force it to exit (although it does exit on Ctrl+C if I launch it from mintty).

from trackma.

z411 avatar z411 commented on August 22, 2024

A feature request in regard to the above would be the ability for the user to switch what style they're using from within wmal-qt.

Oh, this sounds good. I remember seeing some qt programs having this.

Also, clicking the close button doesn't exit the program in the Prompt, even though going through the menu and choosing to exit does. If I forget and click X, I have to kill the Prompt, since not even Ctrl+C will force it to exit (although it does exit on Ctrl+C if I launch it from mintty).

Are you sure wmal-qt isn't just getting minimized to tray when you click X?

from trackma.

qyot27 avatar qyot27 commented on August 22, 2024

Are you sure wmal-qt isn't just getting minimized to tray when you click X?

Ah. Never mind then. I had 'Close to tray' checked.

from trackma.

z411 avatar z411 commented on August 22, 2024

Heh. Well, some programs have a notification that appears once to remind people that it's in tray; maybe I could implement that bit.

from trackma.

z411 avatar z411 commented on August 22, 2024

It's been a long time but the Qt & CLI interfaces, and the tracker are working nicely under Windows, so I'll be closing this.
There are working alternatives in Windows to Taiga, but Windows support will still be provided for completeness support.

from trackma.

Related Issues (20)

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.