It has been a really long long long time since my last post and I'm really sorry for that, but I have good news! I finally managed to build Jake-PyQT4 on both Windows and Linux platforms, and create a single executable file that can be run without having to install Python, PyQt4, Xlib, pyHook, PyWin32 nor any other dependency! Isn't that great?
I'm sorry for Mac users, but right now I'm trying to release for Windows and Linux. But don't worry, code runs just fine, so the only show-stopping "bug" is an app that will let me create a single standalone file that could be ran on Mac OS. I don't know how exactly does Mac manages executable files, but I'm looking at py2app. You'll soon have a release too ;)
Here goes some info. The executable file for Linux was made with cx_Freeze and MakeSelf and it's final size is 4,8mb. On Windows the executable file was created with cx_Freeze, 7z and SFX 7z module, I'm still having some small problems with UPX, but that isn't that important as this only causes a little bigger size (we're talking about ~1mb)
And here goes the full list of changes that I made since my last post:
* Some fixes in the TAB autocompleter. Several crashes were fixed.
* A lot of fixes in the locale system. Missing imports, some strings weren't unicode, etc.
* Now skins and folders can be stored in users folder. This way users can create their own plugins/skins and test them.
* Some more changes in the config system. Most of them related to the combo control.
* I worked for a week on an updated, but it seems that I won't be able to make Jake-PyQT4 autoupdate itself. The best that I can do for now is to show a message telling the user that there is an update, a short description of the update and a button to download the update. Maybe the download will be made by my own QDownloader.
* I moved pyXhook and pyHook outside of Jake-PyQT4. Now if you want to run from source you'll have to read the INSTALL file and install all dependencies.
* Nanotube finally upgraded pyHook and made it compatible with Python 2.7 Thanks!
* Some problems with the focus on Windows were fixed, but there might be left one. Please test when you get binaries, and report.
* Red, Green and Blue skins were removed because they don't look good (for now). As soon as they look good they will be merged again.
* I wrote my own svn2log script. You can have a look at the output of that script here. This way you can track all the changes that I make.
I hope you're wishing to test my app! It will be here in a few days :)
I'll write again when I'll be releasing it. Until then, have fun.
Bye!
Mostrando entradas con la etiqueta plugins. Mostrar todas las entradas
Mostrando entradas con la etiqueta plugins. Mostrar todas las entradas
jueves, 9 de septiembre de 2010
lunes, 9 de agosto de 2010
Song download plugin available!
I haven't made much commits this weekend, but a lot of new features were added. How? Easy, but before I tell you how, I should say that plugins are just wrapper for libs. So, there is no need to actually understand a lot of python to make a plugin.
Said that, after finishing the urbandictionary lib, I spent a day or so teaching andresmcid some basic python and how plugins, configsystem and pluginsystem work, and he made both urbandicionary plugin and mp3-goear plugin.
I gave him SVN permissions, so you can even check his commits :)
And this is how both plugins look like:
I made some work on how plugins access their config. Before the actual change, accessing an item from a config was a real PITA. Config was saved as list with sublists, so you could perfectly have something like config[0][1][2][0][4]. Pretty scary for noobs, right? But now accessing an item is just as easy as everything else in Jake-PyQT4. You just need to call the config system this way: configsystem.value(config, 'plaintextcolor') and you'll get the value for the default color of plain text. I told you! A piece of a cake :p
Some options were added to main config, and also some bugs were fixed.
And finally, project status in sourceforge was changed from Alpha to Beta.
I'd really like to keep the good commit-rythm and make a stable release by the end of month. Of course, Not all plugins are going to be available, nor much skins, but that release will aim to a stable base release. Once that stability is reached, no major changes will be made to internal structure. This way we'll be able to start working only on plugins and skins.
Currently, I'm working on a filestube library, and once finished, andresmcid will make another plugin, so, just have a look from time to time to this page and you'll know it.
I'll write again this weeked. Until then, have a good time!
Bye!
Said that, after finishing the urbandictionary lib, I spent a day or so teaching andresmcid some basic python and how plugins, configsystem and pluginsystem work, and he made both urbandicionary plugin and mp3-goear plugin.
I gave him SVN permissions, so you can even check his commits :)
And this is how both plugins look like:
I made some work on how plugins access their config. Before the actual change, accessing an item from a config was a real PITA. Config was saved as list with sublists, so you could perfectly have something like config[0][1][2][0][4]. Pretty scary for noobs, right? But now accessing an item is just as easy as everything else in Jake-PyQT4. You just need to call the config system this way: configsystem.value(config, 'plaintextcolor') and you'll get the value for the default color of plain text. I told you! A piece of a cake :p
Some options were added to main config, and also some bugs were fixed.
And finally, project status in sourceforge was changed from Alpha to Beta.
I'd really like to keep the good commit-rythm and make a stable release by the end of month. Of course, Not all plugins are going to be available, nor much skins, but that release will aim to a stable base release. Once that stability is reached, no major changes will be made to internal structure. This way we'll be able to start working only on plugins and skins.
Currently, I'm working on a filestube library, and once finished, andresmcid will make another plugin, so, just have a look from time to time to this page and you'll know it.
I'll write again this weeked. Until then, have a good time!
Bye!
Etiquetas:
alpha,
andresmcid,
beta,
config system,
filestube,
goear,
mp3,
plugins,
urban dictionary
sábado, 24 de julio de 2010
I made big progress (thanks to mgrant)
As I said in my last post, I was having problems with how Linux manages the focus. Well, thanks to mgrant and python-xlib I finally fixed that problem. Well, there's still some really little bug, but I'll try to fix it next weekend.
The little bug: Run Jake-PyQT4 but don't click on it's window. Now it doesn't have the focus. Hide it and show it. It won't get the focus, but it should get it.
Now quit Jake-PyQT4. Run it again, and this time click on it's window. Hide it and show it. It has the focus! Hide and show it as many times as you want. It will get the focus.
So, the bug is that it won't get the focus if the main app never had the focus. Kind of weird...
Next problem I talked about in my last post was Mac and Xlib for it. After a short conversation in #macports somebody told me that the only way of doing it is using cocoa (wtf?). I really would like to use something else, if not python-pure, at least not cocoa. If I'm not able to do that, sorry Mac users, but I'll have to drop hook system for Mac until I know how to do it.
Last problem was Symbian. Well, I'mm really too far from releasing for Symbian, so I won't even talk for it right now.
So, what have I done last week or so? I did the keyboard hook system! It's on it's own class/file (you can have a look at SVN log for commit 30 here). Also, I did another plugin. !google-maps-distance Realle easy to use. It will return the distance (in km) from point A to point B. I'll do two more plugins using gmaps API. The first one is !google-maps-streetview and the second one is !google-maps-route.
What's next?
After finishing those plugins, I'll work a little bit on the skining manager, I'll fix the look of the config dialog (right now really fscked), I'll right the special config dialog for the main app, and then make the app use those settings.
What about after those changes?
Most probably I'll do some plugins. I really want to make the !mp3 plugin.
Also, I'm looking at whoosh and I'm starting to think about making a file indexer and searcher plugin. It won't be like strigi and it won't have any fancy things. It will just search for files given a string. Anyways, if you wish to see something more advanced, make a patch, send it to me and I could merge it if it doesn't break anything nor it kills my dog. :)
Next post will appear shortly after finishing !google-maps plugins and it will have some screenshots. Until then, have a good time.
Bye!
The little bug: Run Jake-PyQT4 but don't click on it's window. Now it doesn't have the focus. Hide it and show it. It won't get the focus, but it should get it.
Now quit Jake-PyQT4. Run it again, and this time click on it's window. Hide it and show it. It has the focus! Hide and show it as many times as you want. It will get the focus.
So, the bug is that it won't get the focus if the main app never had the focus. Kind of weird...
Next problem I talked about in my last post was Mac and Xlib for it. After a short conversation in #macports somebody told me that the only way of doing it is using cocoa (wtf?). I really would like to use something else, if not python-pure, at least not cocoa. If I'm not able to do that, sorry Mac users, but I'll have to drop hook system for Mac until I know how to do it.
Last problem was Symbian. Well, I'mm really too far from releasing for Symbian, so I won't even talk for it right now.
So, what have I done last week or so? I did the keyboard hook system! It's on it's own class/file (you can have a look at SVN log for commit 30 here). Also, I did another plugin. !google-maps-distance Realle easy to use. It will return the distance (in km) from point A to point B. I'll do two more plugins using gmaps API. The first one is !google-maps-streetview and the second one is !google-maps-route.
What's next?
After finishing those plugins, I'll work a little bit on the skining manager, I'll fix the look of the config dialog (right now really fscked), I'll right the special config dialog for the main app, and then make the app use those settings.
What about after those changes?
Most probably I'll do some plugins. I really want to make the !mp3 plugin.
Also, I'm looking at whoosh and I'm starting to think about making a file indexer and searcher plugin. It won't be like strigi and it won't have any fancy things. It will just search for files given a string. Anyways, if you wish to see something more advanced, make a patch, send it to me and I could merge it if it doesn't break anything nor it kills my dog. :)
Next post will appear shortly after finishing !google-maps plugins and it will have some screenshots. Until then, have a good time.
Bye!
miércoles, 14 de julio de 2010
So, what can I do with this?
As I said in my last post, plugins can/will do almost anything.
A really simple example is a search in google:
Nothing special, but really quick. Think about using this instead of having to open a web browser. Jake-PyQT4 is as quick as hitting the global hide/show key (by default F8) and typing the search command. Also, as every unix/linux console, Jake-PyQT4 has the ability to autocomplete commands.
At start up the plugin system searches for all plugins, then makes them declare what commands do they accept and stores them. After that, you can easy access all of them with the autocomplete button (TAB by default).
Let's see another example! Searching photos:
Pretty cool. Well, also you can change how does every query looks like. You can change every single data color. Oh, best thing is that every plugin can have it's own query style. You're able to make !google to output everything in green, !google-images to output images size in red, images format en blue, images description in yellow, etc.
If you're thinking in a complex file-edit based config system, you're totally wrong. All that is done using a dynamically created configuration window dialog. Every plugin can have it's own array-of-options code block, and when that plugin calls plugin system's dialog, that array-of-options code block will be parsed and a dialog will be created according to those options. This way all plugins can use the same config dialog. I know you wanna some screenshots, don't you?
Finished looking the configuration dialog and wondering what are all those options? Yes! Exactly! !google-images supports everything that a normal search in google images can offer you. You can sort images by their type, size, color, style...
(A little bug, configuration window tabs are looking somehow bad, but don't worry, I'll fix that ASAP)
Another great thing about Jake-PyQT4 is that you can have as much console's as you wish! It's tab based. Look again on one of the screenshots. You'll notice that there is a little minus button at the left down edge, and a little plus button at the right down edge. Those are used to remove and add tabs. You can also remove tabs by clicking the little red cross on the right size of each tab.
Finally, the general appearence of Jake-PyQT4 is not hard-coded, so don't worry if you don't like transparency. You'll be able to choose the skin that you most love, or even make our own skin, as Jake-PyQT4 skin system is QSS based.
That's all for today! I'll post again tomorrow or maybe friday.
Bye
A really simple example is a search in google:
Nothing special, but really quick. Think about using this instead of having to open a web browser. Jake-PyQT4 is as quick as hitting the global hide/show key (by default F8) and typing the search command. Also, as every unix/linux console, Jake-PyQT4 has the ability to autocomplete commands.
At start up the plugin system searches for all plugins, then makes them declare what commands do they accept and stores them. After that, you can easy access all of them with the autocomplete button (TAB by default).
Let's see another example! Searching photos:
Pretty cool. Well, also you can change how does every query looks like. You can change every single data color. Oh, best thing is that every plugin can have it's own query style. You're able to make !google to output everything in green, !google-images to output images size in red, images format en blue, images description in yellow, etc.
If you're thinking in a complex file-edit based config system, you're totally wrong. All that is done using a dynamically created configuration window dialog. Every plugin can have it's own array-of-options code block, and when that plugin calls plugin system's dialog, that array-of-options code block will be parsed and a dialog will be created according to those options. This way all plugins can use the same config dialog. I know you wanna some screenshots, don't you?
Finished looking the configuration dialog and wondering what are all those options? Yes! Exactly! !google-images supports everything that a normal search in google images can offer you. You can sort images by their type, size, color, style...
(A little bug, configuration window tabs are looking somehow bad, but don't worry, I'll fix that ASAP)
Another great thing about Jake-PyQT4 is that you can have as much console's as you wish! It's tab based. Look again on one of the screenshots. You'll notice that there is a little minus button at the left down edge, and a little plus button at the right down edge. Those are used to remove and add tabs. You can also remove tabs by clicking the little red cross on the right size of each tab.
Finally, the general appearence of Jake-PyQT4 is not hard-coded, so don't worry if you don't like transparency. You'll be able to choose the skin that you most love, or even make our own skin, as Jake-PyQT4 skin system is QSS based.
That's all for today! I'll post again tomorrow or maybe friday.
Bye
Suscribirse a:
Comentarios (Atom)


