Re: [E-devel] [EGIT] [bindings/python/python-efl] master 01/01: Elm: add test for elm_image_get() before a set() call

2018-03-01 Thread Kai Huuhko
Is there an issue that this test exposes?

2018-03-01 19:34 GMT+02:00 Dave Andreoli :

> davemds pushed a commit to branch master.
>
> http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=
> 4b8ddcff7d2333afba38a76774c7d18c5e0ed93b
>
> commit 4b8ddcff7d2333afba38a76774c7d18c5e0ed93b
> Author: Dave Andreoli 
> Date:   Thu Mar 1 18:32:46 2018 +0100
>
> Elm: add test for elm_image_get() before a set() call
> ---
>  tests/elementary/test_02_image_icon.py | 7 ---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tests/elementary/test_02_image_icon.py
> b/tests/elementary/test_02_image_icon.py
> index cc0b48a..b106a10 100644
> --- a/tests/elementary/test_02_image_icon.py
> +++ b/tests/elementary/test_02_image_icon.py
> @@ -29,9 +29,10 @@ class TestElmImage(unittest.TestCase):
>  self.assertEqual(Eo.parent_get(self.o), self.w)
>
>  def testImageFile(self):
> -self.o.file = os.path.join(script_path, u"icon.png")
> -self.assertEqual(self.o.file[0],
> - os.path.join(script_path, u"icon.png"))
> +img_file = os.path.join(script_path, u"icon.png")
> +self.assertEqual(self.o.file, (None, None))
> +self.o.file = img_file
> +self.assertEqual(self.o.file, (img_file, None))
>  self.assertEqual(self.o.object_size, (48, 48))
>
>  def testImageFileException(self):
>
> --
>
>
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Server Down

2017-08-24 Thread Kai Huuhko
We've moved on to the maintenance business. Didn't you get the memo?

2017-08-24 19:04 GMT+03:00 Mike Blumenkrantz :
> Apparently we are doing maintenance during core business hours?
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Enlightenment GitHub account and mirror

2017-08-12 Thread Kai Huuhko
The SSO account options should be there, my phab login page looks like this:

http://www.imgpaste.net/image/Ds1Fb

2017-08-12 14:07 GMT+03:00 Jonathan Aquilina :
> Why isn't it enabled then, or have I lost my marbles.
>
> ---
> Regards,
>
> Jonathan Aquilina
>
> On 2017-08-12 03:48, Carsten Haitzler wrote:
>
>> On Fri, 11 Aug 2017 23:41:56 +0200 Jonathan Aquilina 
>> 
>> said:
>>
>>> Does phab support single sign on?
>>
>> with github, google, twitter and facebook accounts - yes. you can just 
>> register
>> using one of those existing accounts.
>>
>> Sent from my iPhone
>>
>> On 11 Aug 2017, at 16:52, William L. Thomson Jr.  wrote:
>>
>> On Fri, 11 Aug 2017 11:57:16 +0200
>> Stefan Schmidt  wrote:
>> I checked it out. In the end you will have a way to pull of the patch
>> from github but we still the problem of it not being in phab, where
>> our review happens normally.
>> I can mention ability to merge into Phab to authors.
>>
>> As of right now I want to keep the PR feature of github not used (I
>> would have disabled it like I did with issues and wiki, but it is
>> simply not possible).
>> Probably should email Github requesting ability to disable. No clue if
>> that will ever happen, but no harm in asking.
>>
>> If we get the tooling to get every PR from github moved to phab and
>> closed and github we can think about that again.
>>
>> Having people monitor yet another location for patches is something
>> to avoid.
>> I agree. I just like to embrace anything that makes contributing
>> easier for others. Ironic as it is a log in for phab is Github. :)
>>
>> Maybe some stuff exists already to move stuff from Github to phab.
>>
>> Not sure about this stuff maybe some others
>> https://github.com/neandrake/phab-utils
>> https://gist.github.com/andytruong/70be048185210faf0de4
>>
>> --
>> William L. Thomson Jr.
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] ssh broken

2017-07-17 Thread Kai Huuhko
2017-07-12 19:11 GMT+03:00 Stefan Schmidt :
> Hello.
>
>
> On 07/12/2017 01:39 PM, Kai Huuhko wrote:
>>
>> 2017-07-11 23:18 GMT+03:00 Stefan Schmidt :
>>>
>>> Hello.
>>>
>>>
>>> On 07/11/2017 10:00 PM, Davide Andreoli wrote:
>>>>
>>>>
>>>> 2017-07-11 21:47 GMT+02:00 Stefan Schmidt :
>>>>
>>>>> Hello.
>>>>>
>>>>>
>>>>> On 07/11/2017 07:23 PM, Davide Andreoli wrote:
>>>>>
>>>>>> 2017-07-11 16:35 GMT+02:00 Stefan Schmidt :
>>>>>>
>>>>>> Hello.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 07/11/2017 12:21 PM, Stefan Schmidt wrote:
>>>>>>>
>>>>>>> Hello.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 07/11/2017 11:37 AM, Stefan Schmidt wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 07/10/2017 09:24 PM, Davide Andreoli wrote:
>>>>>>>>>
>>>>>>>>> 2017-07-10 15:33 GMT+02:00 Mike Blumenkrantz <
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> michael.blumenkra...@gmail.com
>>>>>>>>>> <mailto:michael.blumenkra...@gmail.com
>>>>>>>>>>
>>>>>>>>>>> :
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>Hi,
>>>>>>>>>>
>>>>>>>>>>I've been getting this error for some time now on one of my
>>>>>>>>>> machines
>>>>>>>>>>when I
>>>>>>>>>>try to do git/ssh operations:
>>>>>>>>>>
>>>>>>>>>>ssh_exchange_identification: Connection closed by remote
>>>>>>>>>> host
>>>>>>>>>>fatal: Could not read from remote repository.
>>>>>>>>>>
>>>>>>>>>>Please make sure you have the correct access rights
>>>>>>>>>>and the repository exists.
>>>>>>>>>>
>>>>>>>>>>Others have been experiencing this issue as well, so it
>>>>>>>>>> seems
>>>>>>>>>> to
>>>>>>>>>> be
>>>>>>>>>>a new
>>>>>>>>>>issue with server configuration.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Same here, I cannot perform any git operation anymore
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> My situation is that I can pull and push to git just fine. But in
>>>>>>>>> the
>>>>>>>>> exact same shell I get a error when trying to log into a shell of
>>>>>>>>> our
>>>>>>>>> server.
>>>>>>>>>
>>>>>>>>> stefan@work efl (master) $ ssh download.enlightenment.org
>>>>>>>>> ssh_exchange_identification: Connection closed by remote host
>>>>>>>>>
>>>>>>>>> This blocks the upload of any efl beta2 tarballs right now.
>>>>>>>>> I will try to debug this a bit further on my end. As far as I can
>>>>>>>>> do
>>>>>>>>> that.
>>>>>>>>>
>>>>>>>>>
>>>>>>>> It looks like we have two different problems here:
>>>>>>>>
>>>>>>>> 1) Git access over ssh does not work. Zmike(?) as well as Dave seem
>>>>>>>> to
>>>>>>>> have this problem. A lot of people are pushing and pulling without a
>>>>>>>> problem at the same time though.
>>>>>>>>
>>>>>>>>
>>>>>>> Zmike, Dave could you retry? Th

Re: [E-devel] ssh broken

2017-07-12 Thread Kai Huuhko
2017-07-11 23:18 GMT+03:00 Stefan Schmidt :
> Hello.
>
>
> On 07/11/2017 10:00 PM, Davide Andreoli wrote:
>>
>> 2017-07-11 21:47 GMT+02:00 Stefan Schmidt :
>>
>>> Hello.
>>>
>>>
>>> On 07/11/2017 07:23 PM, Davide Andreoli wrote:
>>>
 2017-07-11 16:35 GMT+02:00 Stefan Schmidt :

 Hello.
>
>
> On 07/11/2017 12:21 PM, Stefan Schmidt wrote:
>
> Hello.
>>
>>
>> On 07/11/2017 11:37 AM, Stefan Schmidt wrote:
>>
>>
>>>
>>> On 07/10/2017 09:24 PM, Davide Andreoli wrote:
>>>
>>> 2017-07-10 15:33 GMT+02:00 Mike Blumenkrantz <

 michael.blumenkra...@gmail.com
  :
>>
>>
>
   Hi,

   I've been getting this error for some time now on one of my
 machines
   when I
   try to do git/ssh operations:

   ssh_exchange_identification: Connection closed by remote host
   fatal: Could not read from remote repository.

   Please make sure you have the correct access rights
   and the repository exists.

   Others have been experiencing this issue as well, so it seems
 to
 be
   a new
   issue with server configuration.


 Same here, I cannot perform any git operation anymore


>>> My situation is that I can pull and push to git just fine. But in the
>>> exact same shell I get a error when trying to log into a shell of our
>>> server.
>>>
>>> stefan@work efl (master) $ ssh download.enlightenment.org
>>> ssh_exchange_identification: Connection closed by remote host
>>>
>>> This blocks the upload of any efl beta2 tarballs right now.
>>> I will try to debug this a bit further on my end. As far as I can do
>>> that.
>>>
>>>
>> It looks like we have two different problems here:
>>
>> 1) Git access over ssh does not work. Zmike(?) as well as Dave seem to
>> have this problem. A lot of people are pushing and pulling without a
>> problem at the same time though.
>>
>>
> Zmike, Dave could you retry? The problem Marcel and I had is fixed, not
> sure of that would help your scenario at all. See below.
>
>
 Yes, works for me now, I can git-pull again
 Thanks for the fix

>>>
>>> This puzzles me a bit. Normally a git pull would not need to go through
>>> the proxy. Do you have by any chance git.e.org also configured to go
>>> through the proxy command?
>>>
>>> For example by having this in your local ssh_config
>>>
>>> Host *.enlightenment.org
>>>User 
>>>ProxyCommand ssh -q e5v1.enlightenment.org -W %h:%p
>>>
>>> but no extra white list entry for git like:
>>>
>>> Host git.enlightenment.org
>>>User git
>>>ProxyCommand none
>>>
>>>
>>> ?
>>>
>>
>> This is my ssh config file:
>>
>> Host e? e?.enlightenment.org e?v*.enlightenment.org
>>User davemds
>>ProxyCommand none
>>
>> Host *.enlightenment.org
>>User davemds
>>ProxyCommand ssh -q e5v1.enlightenment.org -W %h:%p
>>
>>
>> I really cannot remember where I copied this from, I think somewhere
>> in the wiki, but I cannot find it anymore
>
>
> https://phab.enlightenment.org/w/hosting/ssh/

I just subscribed to this page. Could we also have the developer
facing infra changes announced on a mailing list? Maybe a separate
list, or use e-announce? Even if they're temporary, would be great to
get a short note about them.

>
> So you are missing the git.e.org white list entry which explains why it
> failed for git over ssh for you and is now fixed. That makes more sense now.
> :)
>
> regards
> Stefan Schmidt
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [bindings/python/python-efl] master 01/01: Documentation: Add better documentation about object lifetime

2017-07-09 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=5864a9dd2d5d43461f9098708fbf14cf53a0f116

commit 5864a9dd2d5d43461f9098708fbf14cf53a0f116
Author: Kai Huuhko 
Date:   Sun Jul 9 16:50:24 2017 +0300

Documentation: Add better documentation about object lifetime
---
 doc/efl.rst   | 20 
 efl/eo/efl.eo.pyx | 14 ++
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/doc/efl.rst b/doc/efl.rst
index 6725dae..b21e87d 100644
--- a/doc/efl.rst
+++ b/doc/efl.rst
@@ -6,6 +6,26 @@
 .. versionadded:: 1.8
 
 
+Object lifetime
+---
+
+Eo objects (and any which have the delete() method) get their reference count
+internally increased by one at object creation. This means that these objects
+will not get freed when you release all references to them in your application.
+You must call the objects' delete() method to decrease the internal reference
+count. This will usually also trigger some kind of action to destroy
+the object gracefully, i.e. hiding the graphical object etc, and will set the
+C object pointer to NULL, which will prevent you from calling methods on the
+object.
+
+If you can't keep track of when your application calls the delete method, you
+can check that your object is still valid with either the is_deleted() method,
+or with a non-zero check::
+
+if eo_obj:
+print(repr(eo_obj))
+
+
 Logging
 ---
 
diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx
index cc0c60a..6985308 100644
--- a/efl/eo/efl.eo.pyx
+++ b/efl/eo/efl.eo.pyx
@@ -283,11 +283,17 @@ cdef class Eo(object):
 return EoIterator.create(efl_children_iterator_new(self.obj))
 
 def delete(self):
-"""Delete the object and free internal resources.
+"""Decrease internal reference count and delete the object gracefully
 
-.. note:: This will not delete the python object, but only the internal
-C one. The python object will be automatically deleted by the
-garbage collector when there are no more reference to it.
+.. note:: Reference count will be decreased at the del callback, not
+instantly when calling this. Same for setting the internal
+object pointer to NULL and freeing any internal resources.
+
+.. note:: This will not automatically free the Python object, only
+the wrapped C object. This will prevent you from calling methods
+other than :meth:`is_deleted` and accessing properties on the
+object. The Python object will be automatically freed by Python
+when there are no more references to it.
 
 """
 efl_del(self.obj)

-- 




Re: [E-devel] python-efl3 and i586 (Hitting the limits of memory)

2017-06-27 Thread Kai Huuhko
Are you using Cython to compile or the preprocessed release files?
Have you tried different versions of Cython? Also, can you determine
which file the build process was compiling at the time of crash?

2017-06-27 11:21 GMT+03:00 Simon Lees :
> Hi All,
>
> our i586 builds of python3-efl are hitting kernel memory limits is there
> anything we can do to fix this or are we going to have to edrop support
>
>  cc1: out of memory allocating 65536 bytes after a total of
> 1923301376 bytes
>  [  544s] error: command 'gcc' failed with exit status 1
>
> --
>
> Simon Lees (Simotek)http://simotek.net
>
> Emergency Update Team   keybase.io/simotek
> SUSE Linux   Adelaide Australia, UTC+10:30
> GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [admin/devs] master 01/01: Add ylee to probies

2017-06-26 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=deb6a6a3debede336f25c50ba7b9bf4f918b5453

commit deb6a6a3debede336f25c50ba7b9bf4f918b5453
Author: Kai Huuhko 
Date:   Mon Jun 26 20:32:44 2017 +0300

Add ylee to probies

Welcome to Enlightenment!
---
 probies/ylee/id_rsa.pub | 1 +
 probies/ylee/info.txt   | 7 +++
 2 files changed, 8 insertions(+)

diff --git a/probies/ylee/id_rsa.pub b/probies/ylee/id_rsa.pub
new file mode 100644
index 000..8b9586a
--- /dev/null
+++ b/probies/ylee/id_rsa.pub
@@ -0,0 +1 @@
+ssh-rsa 
B3NzaC1yc2EDAQABAAACAQCcMpN+maJ/nCfpZbW5ouAImzHsokRp4leEmiBRU8M41HYEVf/OmLjetBOPIYBsFghS3idPy7vBY6suoWFGUHuk2wdbOrBMNi8AJkV7FRaH2aluhNPcBh7TMsStGT1/eqrrD+pu9m3UHPyDXB1zopVVjX9veo/e2dOqrj+W5sA0QwnScuqxXjgWPsAseg1GZZL71ChZ0eKHErZRnCva+4apMlVoDczj+U5beoApK/5TU3NPIRWUgs/QmEBnZmzNg8MivgI16p88eY/hESqdRWWvLKkWvF1GYcYe3mg8Wte+CW3JxpCqn1peBUQ4WxaOd5UqX1t5cE4XWuh9Hiw0lrEpLAqrSIvs7uDqDgv08wRiEI7pPm1xywoVuMAtJS1vuMTYeLqIdWKWGo8+6xIg6EuKn9ubuyvLoYhdHlStFvj7d9LrsN1ogbI8t3SinWRcV+ZXuA2z
 [...]
diff --git a/probies/ylee/info.txt b/probies/ylee/info.txt
new file mode 100644
index 000..6710b85
--- /dev/null
+++ b/probies/ylee/info.txt
@@ -0,0 +1,7 @@
+Login: ylee
+IRC Nick:  ylee
+Name:  Robert Wiley
+Location:  Ladson, Sc, US
+E-Mail:y...@bodhilinux.com
+Contributing:  e, efl, elementary, e-modules
+Platform:  Bodhi (Ubuntu)
\ No newline at end of file

-- 




[E-devel] Probie access for Robert "ylee" Wiley

2017-06-22 Thread Kai Huuhko
Hello, I'd like to propose that Robert "ylee" Wiley, who has been
working several years on various Bodhi software like Moksha, who has
reported a multitude of issues on IRC and by mail, and who would like
to get started working on fixes for EFL and E himself, get probie
access.

Any objections?

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Elm_Entry assuming markup input???

2017-06-18 Thread Kai Huuhko
2017-06-19 0:11 GMT+03:00 Andrew Williams :
> Marking up an input field is not the most common use-case - and is surely
> inputted by the app rather than the user normally?
>
> I propose that ...text_get should return stripped markup and a new method
> markup_text_get returns the current stuff. That would cater for both use
> cases...

This would break existing applications relying on the old behavior. I
think we should not to break things more; if anything a method could
be added for returning utf8 text directly. But I believe the helper
functions do their job just as well.

>
> Thanks,
> Andrew
> On Sun, 18 Jun 2017 at 22:00, Daniel Hirt  wrote:
>
>> Hi Andrew,
>>
>> Markup uses tags like " hello ".
>> It is clear why it's essential to do "character escaping" like ">"
>> instead
>> of "<". Otherwise, if you feed "<" back to the entry widget, it will be
>> misinterpreted as a tag element.
>> As a side note, you can use "elm_entry_markup_to_utf8" helper to
>> strip-down the formatting and "un-escape" the characters so all becomes
>> a valid utf8 text.
>>
>> Hope that clears things up a bit.
>>
>> --
>> Danny (herdsman) Hirt
>>
>> On Sun, Jun 18, 2017 at 11:18 PM, Andrew Williams 
>> wrote:
>>
>> > Hi team,
>> >
>> > Netstar pointed out something to me today that I had completely missed
>> for
>> > ages - elm_entry assumes you are typing markup. Type "a>b" and text_get
>> > will return "a>b" - what is the reason for this? It seems completely
>> > crazy default behaviour.
>> > Is there any reason we can't turn this off by default but provide the
>> > markup filter in a way where it can be switched on as needed?
>> >
>> > Thanks,
>> > Andy
>> > --
>> > http://andywilliams.me
>> > http://ajwillia.ms
>> > 
>> > --
>> > Check out the vibrant tech community on one of the world's most
>> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> > ___
>> > enlightenment-devel mailing list
>> > enlightenment-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >
>>
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
> --
> http://andywilliams.me
> http://ajwillia.ms
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Py-EFL Application Crashing for some users with EFL 1.19.1

2017-06-18 Thread Kai Huuhko
2017-06-18 2:14 GMT+03:00 Rbt. Y-Lee :
> Also oddly enough Jeff uses the same line of code in exterminator and epad:
>
> self.mainWindow.icon_object_set(icon.object_get())  (epads case)
>
> in this case even with elementary settings set to use elm theme it works.
> also print(icon.object) returns:
>
> < refcount=6)> ( geometry=(0, 0, 0, 0), color=(255, 255, 255, 255), layer=0,
> clip=False, visible=False)>
>
> Just found and determined that so I have no idea why it would work in epad
> and exterminator but not swami. Another indication python-efl is 'broke' in
> some subtle sense regarding this issue.

They're probably using different icons. Some map to an external image
file, some to an image inside the theme. I added an import to efl.edje
to elm's init so you should no longer see errors related to type not
being available.

> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [bindings/python/python-efl] master 01/01: Elementary: Add import to efl.edje

2017-06-18 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=a475ecba44220bf4c262c93033ec86d0041ab555

commit a475ecba44220bf4c262c93033ec86d0041ab555
Author: Kai Huuhko 
Date:   Sun Jun 18 20:30:52 2017 +0300

Elementary: Add import to efl.edje

Since we can't always anticipate when Elm will return a pointer to
an Edje object, let's just have the type always available.
---
 efl/elementary/__init__.pyx | 5 +
 1 file changed, 5 insertions(+)

diff --git a/efl/elementary/__init__.pyx b/efl/elementary/__init__.pyx
index b1f58b8..e99156e 100644
--- a/efl/elementary/__init__.pyx
+++ b/efl/elementary/__init__.pyx
@@ -717,6 +717,11 @@ def init():
 """
 EINA_LOG_DOM_INFO(PY_EFL_ELM_LOG_DOMAIN, "Initializing efl.elementary")
 
+# Force Edje object type to be always available, since we cannot
+# anticipate when Elementary is going to return a pointer to one.
+
+import efl.edje
+
 # argc and argv are currently used by EFL to support app restart
 # and binary relocation. These are probably not useful to us but we
 # pass the information here regardless because useful functionality

-- 




Re: [E-devel] Py-EFL Application Crashing for some users with EFL 1.19.1

2017-06-17 Thread Kai Huuhko
2017-06-16 7:47 GMT+03:00 Carsten Haitzler :
> On Thu, 15 Jun 2017 23:05:22 -0500 Jeff Hoogland  
> said:
>
>> Since upgrading from EFL 1.18 to 1.19 I am having some users report
>> > > that
>> one of our py-efl applications is crashing at startup for them. The error
>> is:
>>
>> Traceback (most recent call last):
>>   File "/usr/bin/swami", line 177, in 
>> app = MainWin(launchArg)
>>   File "/usr/bin/swami", line 46, in __init__
>> self.icon_object_set(icon.object_get())
>>   File "efl/elementary/image.pxi", line 469, in
>> efl.elementary.__init__.Image.object_get (efl/elementary/__init__.c:174473)
>>   File "efl/eo/efl.eo.pyx", line 137, in efl.eo.object_from_instance
>> (efl/eo/efl.eo.c:2170)
>> ValueError: Eo object at 0x4002662348f1 of type Edje.Object does not
>> have a mapping!
>
> this would be in the bindings themselves. efl doesnt have any error like the
> above. 0x4002662348f1 definitely looks like an eoid (not a ptr). i haven't
> looked into the bindings themselves to see what it's doing there but i smell 
> an
> invalid eo id maybe?
>
> icon = Icon(self, size_hint_weight = EXPAND_BOTH, size_hint_align = FILL_BOTH)
> icon.standard_set('preferences-system')
> icon.show()
> self.icon_object_set(icon.object_get())
>
> seems like the relevant bit of python with the last line complaining... i can
> only assume that self.icon_object_set() on the window (which is self) maps to:
> elm_win_icon_object_set(self, ...)
>
> you'd getting the internal icon object. the preferences-system would probably
> end up being sourced from theme thus it'd be an edje object, NOT an evas image
> object, and the window wants an evas image object. not an edje object. elm
> icon. elm image. a raw evas image object. so it's probably complaining there
> because that system has a different theme config and is using theme provided
> icons, not xdg icons which then happen to be image objects in the icon widget.

It's erroring out there because Python-EFL doesn't have all EFL types
automatically loaded. In this case the user has imported Elementary,
which means that Ecore and Evas get imported as dependencies too, but
not Edje. We can fix that by adding an import in that binding method
so that it no longer errors out. Though as raster explained, the Edje
object still can't be used as a window icon as such, so you'd get
another error further down the line.

>
> this of course points out the danger of exposing internals like you are now
> using with icon.object_get(). you are getting the internal object the icon
> widget uses and that means you need to know what it is and how it can change.
> we just should not expose stuff like this so you can't shoot yourself in the
> foot.
>
> the window needs a raw evas image object because it has to be able to get the
> argb pixel data so it can set it as an x11 property with argb data in it. an
> edje object is not "argb data". it's a live set of objects that is not static
> that adapts to sizing changes and can animate... elm icon widgets are the 
> same.
> they may map to a simple image object.. maybe an edje object. maybe something
> else (an evas vg object... ?). the point is for this to be hidden from you...
> until we expose the ability to peek behind the curtain and you rely on that
> peeking... :)
>
> so create a raw evas image object. find the raw image file path to use for the
> icon then set that object as the icon.
>
> also don't show the icon. no need. it's not needed. :)
>
>> Source code for the tool is here . I
>> am not seeing this error message on every computer I have with EFL 1.19
>> though. In fact it launches as expected on the computer I am typing this
>> from.
>>
>> Any suggestions?
>>
>> --
>> ~Jeff Hoogland 
>> My Projects on GitHub 
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
> --
> - Codito, ergo sum - "I code, therefore I am" --
> The Rasterman (Carsten Haitzler)ras...@rasterman.com
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vi

[E-devel] Project gone missing from gitweb interface

2017-06-14 Thread Kai Huuhko
https://git.enlightenment.org/misc/polkit-efl.git/

no longer listed in

https://git.enlightenment.org/

raster did you find out what's causing them to disappear?

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Epour 0.7.0 release

2017-05-07 Thread Kai Huuhko
For all your feline photograph sharing needs, I present you release
0.7.0 of Epour!

In this version, a lot of the internals were changed to accommodate
libtorrent 1.1.0 and 1.1.1, which brought on a lot of fixes for its
Python bindings. Unfortunately these improvements also resulted in API
breaks, and so as a result support for earlier versions of libtorrent
has been dropped. Libtorrent 1.1.1 or later is recommended, 1.1.0
should work but YMMV.

Python2 support was dropped as well. 'cause if it's snakes you want,
you may as well get three.

I also added a few new ui items, new icons and did a bit of theme
customization (torrent list items have a progress bar as background)
for added spiffiness.

There are more planned features so you shouldn't consider Epour to be
feature complete yet.

See README for full list of dependencies.

Have fun!


Download links:

https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.tar.xz
https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.tar.bz2
https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.tar.gz
https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.sha256sum
https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.sha1sum
https://download.enlightenment.org/rel/apps/epour/epour-0.7.0.md5sum

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/epour] v0.7.0 02/02: Release 0.7.0

2017-05-07 Thread Kai Huuhko
kuuko pushed a commit to annotated tag v0.7.0.

http://git.enlightenment.org/apps/epour.git/commit/?id=028d7873d7c0efbae1d23eddfeb57c95e74c900a

commit 028d7873d7c0efbae1d23eddfeb57c95e74c900a
Author: Kai Huuhko 
Date:   Mon May 8 04:10:47 2017 +0300

Release 0.7.0
---
 TODO |  37 ++-
 bin/epour|   2 +-
 debian/changelog |   6 +
 debian/control   |  10 +-
 debian/rules |   7 +-
 epour/Epour.py   |   4 +-
 epour/__init__.py|   2 +-
 epour/gui/Preferences.py |   2 +-
 epour/gui/TorrentProps.py|   2 +-
 epour/gui/TorrentSelector.py |   2 +-
 epour/gui/Widgets.py |   2 +-
 epour/gui/__init__.py|   2 +-
 epour/session.py |   2 +-
 po/epour.pot | 533 ---
 setup.py |   2 +-
 15 files changed, 388 insertions(+), 227 deletions(-)

diff --git a/TODO b/TODO
index 15f87f1..e003229 100644
--- a/TODO
+++ b/TODO
@@ -15,8 +15,7 @@ Torrent-handle controls/options:
 Torrent status info:
   http://libtorrent.org/reference-Core.html#torrent_status
 Add Torrent-dialog:
- ☐ Dialog window
-   ☐ Add preferences for initial/automatic values for options
+ ☐ Add preferences for initial/automatic values for options
 Preferences:
  ☐ max uploads
?
@@ -35,23 +34,9 @@ Misc:
Remake this feature
  ☐ Moving finished torrents to a different folder
☐ Individual torrents
-   ✔ Session @done (16-08-11 01:15)
- ✔ Save torrent & resume data periodically @done (16-07-30 08:05)
-   Will this accomplish anything?
-   http://libtorrent.org/reference-Core.html#save_resume_data()
-   http://libtorrent.org/reference-Core.html#need_save_resume_data()
- ✔ Pause gui updates when iconized/withdrawn @done (13:58 20.07.2014)
  ☐ Total count of torrents in session status
  ☐ Local search function for torrents, files?
  ☐ Web search
- ✘ Handle switching between py2 <--> py3, messes up with pickled list of 
torrents @cancelled (16-07-30 08:15)
-File "/usr/bin/epour", line 7, in 
-app = Epour()
-File "/usr/lib/python2.7/dist-packages/epour/Epour.py", line 89, in 
__init__
-self.session.load_torrents()
-File "/usr/lib/python2.7/dist-packages/epour/session.py", line 182, in 
load_torrents
-torrents = cPickle.load(pkl_file)
-AttributeError: 'module' object has no attribute 'OrderedDict'
 Error handling:
  ☐ Torrent errors
http://libtorrent.org/reference-Alerts.html#torrent_error_alert
@@ -67,9 +52,6 @@ Error handling:
http://libtorrent.org/reference-Alerts.html#listen_succeeded_alert
 I18N:
   This should wait until most of the features are in and the strings are 
stable.
- ☐ Make strings localizable
- ☐ Create pot file
- ☐ Generate po files
 
 ___
 Archive:
@@ -81,6 +63,22 @@ Archive:
   ./epour/gui/__init__.py>ItemMenu
  ✔ Force reannounce @done (18:43 06.07.2014) @project(Torrent-handle 
controls/options)
  ✔ Force DHT reannounce @done (18:43 06.07.2014) @project(Torrent-handle 
controls/options)
+ ✔ Make strings localizable @done (17-05-08 01:40) @project(I18N)
+ ✔ Generate pot file @done (17-05-08 01:40) @project(I18N)
+ ✔ Dialog window @done (17-05-08 01:38) @project(Add Torrent-dialog)
+ ✔ Session @done (16-08-11 01:15) @project(Misc)
+ ✘ Handle switching between py2 <--> py3, messes up with pickled list of 
torrents @cancelled (16-07-30 08:15) @project(Misc)
+  File "/usr/bin/epour", line 7, in 
+  app = Epour()
+  File "/usr/lib/python2.7/dist-packages/epour/Epour.py", line 89, in __init__
+  self.session.load_torrents()
+  File "/usr/lib/python2.7/dist-packages/epour/session.py", line 182, in 
load_torrents
+  torrents = cPickle.load(pkl_file)
+  AttributeError: 'module' object has no attribute 'OrderedDict'
+ ✔ Save torrent & resume data periodically @done (16-07-30 08:05) 
@project(Misc)
+  Will this accomplish anything?
+  http://libtorrent.org/reference-Core.html#save_resume_data()
+  http://libtorrent.org/reference-Core.html#need_save_resume_data()
  ✔ Use dicts to hold torrent info between sessions. @done (15:57 30.06.2014) 
@project(Add Torrent-dialog)
  ✔ Storage path @done (15:57 30.06.2014) @project(Add Torrent-dialog)
  ✔ Options @done (15:57 30.06.2014) @project(Add Torrent-dialog)
@@ -93,6 +91,7 @@ Archive:
   http://libtorrent.org/reference-Core.html#move_storage()
  ✔ set_upload_limit() set_download_limit() upload_limit() download_limit() 
@done (14:50 09.07.2014) @project(Torrent-handle controls/options)
  ✔ save_path() move_storage() @done (14:18 09.07.2014) @project(Torrent-handle 
controls/options)
+ ✔ Pause gui updates when iconized/withdrawn @done (13:58 20.07.2014) 
@project(Misc)
  ✔ Move proxy settings to its own naviframe page and don't autocollapse the 
frames @done (13-08-18 18:02) @project(Misc)
  ✔ set_max_uploa

[EGIT] [apps/epour] v0.7.0 01/02: Add local fallback for theme file

2017-05-07 Thread Kai Huuhko
kuuko pushed a commit to annotated tag v0.7.0.

http://git.enlightenment.org/apps/epour.git/commit/?id=09c15bfd7a027dfec8e7de91a72ae24b9223c021

commit 09c15bfd7a027dfec8e7de91a72ae24b9223c021
Author: Kai Huuhko 
Date:   Mon May 8 01:03:20 2017 +0300

Add local fallback for theme file

Useful for development
---
 epour/gui/__init__.py | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index 057c2af..bc4b87a 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -20,6 +20,7 @@
 #
 
 import os
+import sys
 import cgi
 import logging
 from datetime import timedelta, datetime
@@ -75,6 +76,15 @@ for data_path in load_data_paths("epour"):
 theme_file = os.path.join(data_path, "themes", "default.edj")
 break
 
+if not theme_file:
+dir_path = os.getcwd()
+path = os.path.join(dir_path, "data", "themes", "default.edj")
+
+if os.path.exists(path):
+theme_file = path
+else:
+sys.exit("Theme file not found, will not progress without it. Compile 
the theme with setup.py build_edc")
+
 
 class MainInterface(object):
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: elm: Don't allow FontProperties to be freed manually

2017-04-15 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=a70c42e6814a5368164e749ff497c215519314a4

commit a70c42e6814a5368164e749ff497c215519314a4
Author: Kai Huuhko 
Date:   Sat Apr 15 16:50:27 2017 +0300

elm: Don't allow FontProperties to be freed manually

This could easily lead to segfaults and double frees if the lifetime of the 
Python object is not managed carefully.

We now do the free automatically when the object no longer has references 
to it.
---
 efl/elementary/__init__.pyx | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/efl/elementary/__init__.pyx b/efl/elementary/__init__.pyx
index c1e6c90..b1f58b8 100644
--- a/efl/elementary/__init__.pyx
+++ b/efl/elementary/__init__.pyx
@@ -854,6 +854,10 @@ cdef class FontProperties(object):
 
 cdef Elm_Font_Properties *efp
 
+def __dealloc__(self):
+elm_font_properties_free(self.efp)
+self.efp = NULL
+
 property name:
 """:type: unicode"""
 def __set__(self, value):
@@ -1045,9 +1049,13 @@ def font_properties_free(FontProperties fp):
 
 .. versionadded:: 1.8
 
+.. versionchanged:: 1.19
+
+Changed to no-op as we now do the free automatically when there are
+no more references to the FontProperties object
+
 """
-elm_font_properties_free(fp.efp)
-Py_DECREF(fp)
+pass
 
 def font_fontconfig_name_get(font_name, style = None):
 """Translate a font name, bound to a style, into fontconfig's font names

-- 




[EGIT] [bindings/python/python-efl] master 01/01: elm: Fix font_properties_get

2017-03-31 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=b06c3151f75a6bdc159c266b9bd5a4da6cc93f36

commit b06c3151f75a6bdc159c266b9bd5a4da6cc93f36
Author: Kai Huuhko 
Date:   Fri Mar 31 17:51:00 2017 +0300

elm: Fix font_properties_get
---
 efl/elementary/__init__.pyx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efl/elementary/__init__.pyx b/efl/elementary/__init__.pyx
index a8fc909..f185258 100644
--- a/efl/elementary/__init__.pyx
+++ b/efl/elementary/__init__.pyx
@@ -1034,7 +1034,7 @@ def font_properties_get(font not None):
 
 """
 if isinstance(font, unicode): font = PyUnicode_AsUTF8String(font)
-cdef FontProperties ret = FontProperties.__new__()
+cdef FontProperties ret = FontProperties.__new__(FontProperties)
 
 ret.efp = elm_font_properties_get(font)
 

-- 




[E-devel] Fwd: EET Python Bindings

2017-02-14 Thread Kai Huuhko
-- Forwarded message --
From: Kai Huuhko 
Date: 2017-02-14 13:33 GMT+02:00
Subject: Re: EET Python Bindings
To: Jeff Hoogland 


There's some work in a branch here:

https://git.enlightenment.org/bindings/python/python-efl.git/log/?h=devs/kuuko/eet

I haven't planned to resume working on this so feel free to pick it up
if you want.

And as others have suggested, for modifying the config safely you can
use these methods in Moksha's dbus module:

https://github.com/JeffHoogland/moksha/commit/5b87f6fba4131e8406d2131d5e0711d570a27b7b
https://github.com/JeffHoogland/moksha/commit/3e34230734731261b637910154d563d13ce3b140


2017-02-13 19:06 GMT+02:00 Jeff Hoogland :
> Are there any plans to expand the python bindings to cover the EET library
> to support working with .cfg files and such natively?
>
> --
> ~Jeff Hoogland
> My Projects on GitHub

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] PYTHON: Trouble with toolbar.selected_item_get

2016-12-05 Thread Kai Huuhko
I'm guessing the "selected" function inside toolbar code is being
called **after** the "clicked" callback is processed, so what you get
is the item being still unselected when your callback is called and
therefore setting it unselected does nothing. But this needs
verification.

2016-12-05 16:40 GMT+02:00 Jeff Hoogland :
> That change makes item appear as a proper toolbar item object (and gets rid
> of the error message) but item.selected_set(False) is still failing to
> unselect the item that is clicked on.
>
> On Mon, Dec 5, 2016 at 2:21 AM, Kai Huuhko  wrote:
>
>> This looks like an issue in EFL, possibly fallout from moving to
>> Eo/EFL events. The callback is being processed before selected item is
>> changed, so you get None (NULL in C) when
>> elm_toolbar_item_selected_get() is called within the callback.
>>
>> The item object should be passed to clicked callback as an argument,
>> can you check if that's None as well? Change line 1174 to
>>
>> def itemClicked(self, obj, item):
>>
>> and remove line 1175.
>>
>>
>> 2016-12-05 3:25 GMT+02:00 Jeff Hoogland :
>> > Source code: https://github.com/JeffHoogland/ePad/blob/master/epad#L1176
>> >
>> > Under EFL 1.15 this code worked fine. It essentially toggled of a toolbar
>> > button after it was clicked so long as it was not a dropdown menu.
>> >
>> > Under EFL 1.18 however the item_selected_get function keeps returning a
>> > none type:
>> >
>> > jeff@hoogland-W740SU:~/Storage/GitHub/ePad$ ./epad
>> > Traceback (most recent call last):
>> >   File "efl/evas/efl.evas_object_smart.pxi", line 446, in
>> > efl.evas._smart_callback (efl/evas/efl.evas.c:78724)
>> >   File "./epad", line 1176, in itemClicked
>> > if item.menu_get() is None and item.selected_get():
>> > AttributeError: 'NoneType' object has no attribute 'menu_get'
>> >
>> > Any ideas why this is? What can I do to get this code block to work as
>> > intended under EFL 1.18? Using the EFL 1.18.3 release with python EFL
>> > 1.18.0 release tar.
>> >
>> > Thanks!
>> > --
>> > ~Jeff Hoogland <http://jeffhoogland.com/>
>> > My Projects on GitHub <https://github.com/JeffHoogland>
>> > 
>> --
>> > ___
>> > enlightenment-devel mailing list
>> > enlightenment-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>> 
>> --
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
>
> --
> ~Jeff Hoogland <http://jeffhoogland.com/>
> My Projects on GitHub <https://github.com/JeffHoogland>
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] PYTHON: Trouble with toolbar.selected_item_get

2016-12-05 Thread Kai Huuhko
This looks like an issue in EFL, possibly fallout from moving to
Eo/EFL events. The callback is being processed before selected item is
changed, so you get None (NULL in C) when
elm_toolbar_item_selected_get() is called within the callback.

The item object should be passed to clicked callback as an argument,
can you check if that's None as well? Change line 1174 to

def itemClicked(self, obj, item):

and remove line 1175.


2016-12-05 3:25 GMT+02:00 Jeff Hoogland :
> Source code: https://github.com/JeffHoogland/ePad/blob/master/epad#L1176
>
> Under EFL 1.15 this code worked fine. It essentially toggled of a toolbar
> button after it was clicked so long as it was not a dropdown menu.
>
> Under EFL 1.18 however the item_selected_get function keeps returning a
> none type:
>
> jeff@hoogland-W740SU:~/Storage/GitHub/ePad$ ./epad
> Traceback (most recent call last):
>   File "efl/evas/efl.evas_object_smart.pxi", line 446, in
> efl.evas._smart_callback (efl/evas/efl.evas.c:78724)
>   File "./epad", line 1176, in itemClicked
> if item.menu_get() is None and item.selected_get():
> AttributeError: 'NoneType' object has no attribute 'menu_get'
>
> Any ideas why this is? What can I do to get this code block to work as
> intended under EFL 1.18? Using the EFL 1.18.3 release with python EFL
> 1.18.0 release tar.
>
> Thanks!
> --
> ~Jeff Hoogland 
> My Projects on GitHub 
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/epour] master 01/01: Allow action menu to be activated by right click

2016-09-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=0cfc9a8653b9f586f258b09592dabc61238f39ba

commit 0cfc9a8653b9f586f258b09592dabc61238f39ba
Author: Kai Huuhko 
Date:   Wed Sep 21 14:50:32 2016 +0300

Allow action menu to be activated by right click
---
 epour/gui/__init__.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index a060bbf..057c2af 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -170,6 +170,7 @@ class MainInterface(object):
 itm.focus = True
 
 tlist.callback_activated_add(item_activated_cb)
+tlist.callback_clicked_right_add(item_activated_cb)
 tlist.show()
 
 mbox.pack_end(tlist)

-- 




[EGIT] [apps/epour] master 02/02: Fix tooltips for torrents without metadata

2016-09-20 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=e20d6c3788ef2361914517cddccd2cc7dffd9de6

commit e20d6c3788ef2361914517cddccd2cc7dffd9de6
Author: Kai Huuhko 
Date:   Tue Sep 20 11:51:07 2016 +0300

Fix tooltips for torrents without metadata
---
 epour/gui/Widgets.py  | 44 ++--
 epour/gui/__init__.py | 15 ++-
 2 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/epour/gui/Widgets.py b/epour/gui/Widgets.py
index 9e1dab9..5c96ebe 100644
--- a/epour/gui/Widgets.py
+++ b/epour/gui/Widgets.py
@@ -170,42 +170,38 @@ class BlockGraph(Grid):
 (0, 255, 0, 255)
 )
 
-def __init__(self, parent, pieces, num_complete_pieces=0, *args, **kwargs):
+def __init__(self, parent, pieces, num_completed_pieces=0, *args, 
**kwargs):
 
-self.num_complete_pieces = num_complete_pieces
+self.num_completed_pieces = num_completed_pieces
+self.pieces = pieces
 
-self._blocks = None
-self._block_size = None
 self.rects = []
 
 super(self.__class__, self).__init__(parent, *args, **kwargs)
 
-self.pieces = pieces
-self.num_total_pieces = len(pieces)
-
 self.pack_rects()
 
-def block_size_get(self):
-if self._block_size is not None:
-return self._block_size
+@property
+def num_total_pieces(self):
+return len(self.pieces)
 
+@property
+def block_size(self):
 width, height = self.size
 num_pieces = self.num_total_pieces
 grid_size = width * height
 block_size = \
 num_pieces//grid_size + bool(num_pieces % grid_size)
 
-self._block_size = block_size
 return block_size
 
-block_size = property(block_size_get)
-
-def blocks_get(self):
-if self._blocks is not None:
-return self._blocks
-
+@property
+def blocks(self):
 blocks = []
 
+if self.block_size == 0:
+raise ValueError("Block size 0")
+
 for block in chunker(self.pieces, self.block_size):
 if all(block):
 blocks.append(2)
@@ -214,12 +210,11 @@ class BlockGraph(Grid):
 else:
 blocks.append(0)
 
-self._blocks = blocks
 return blocks
 
-blocks = property(blocks_get)
-
 def pack_rects(self):
+if self.num_total_pieces == 0:
+return
 blocks = self.blocks
 width, height = self.size
 len_blocks = len(blocks)
@@ -244,10 +239,15 @@ class BlockGraph(Grid):
 rect.show()
 p += 1
 
-def update(self, pieces):
+def update(self, pieces, num_pieces):
+self.pieces = pieces
+if pieces and not self.rects:
+self.pack_rects()
+elif self.num_completed_pieces == num_pieces:
+return
+self.num_completed_pieces = num_pieces
 width, height = self.size
 old_blocks = self.blocks
-self.pieces = pieces
 self._blocks = None
 new_blocks = self.blocks
 row = 0
diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index e14532c..a060bbf 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -260,10 +260,12 @@ class MainInterface(object):
 if info_hash not in self.torrentitems:
 return
 
-self.torrentitems[info_hash].fields_update(
+item = self.torrentitems[info_hash]
+
+item.fields_update(
 "*", ELM_GENLIST_ITEM_FIELD_TEXT
 )
-self.torrentitems[info_hash].fields_update(
+item.fields_update(
 "elm.swallow.progress", ELM_GENLIST_ITEM_FIELD_CONTENT
 )
 
@@ -714,9 +716,6 @@ class TorrentTooltip(Table):
 flags = lt.status_flags_t.query_pieces
 status = handle.status(flags)
 
-# if not s.has_metadata:
-# return
-
 Table.__init__(self, parent, size_hint_weight=EXPAND_BOTH)
 
 value_labels = []
@@ -777,9 +776,7 @@ class TorrentTooltip(Table):
 v = conv(v)
 l.text = str(v)
 
-num_pieces = s.num_pieces
-if g.num_complete_pieces != num_pieces:
-g.update(s.pieces)
-g.num_complete_pieces = num_pieces
+if s.has_metadata:
+g.update(s.pieces, s.num_pieces)
 
 return True

-- 




[EGIT] [apps/epour] master 01/02: Add icon sizes better suited for toolbar

2016-09-20 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=50e60e6311d1295e58df37d6c0708277a6d2a0fc

commit 50e60e6311d1295e58df37d6c0708277a6d2a0fc
Author: Kai Huuhko 
Date:   Tue Sep 20 11:49:14 2016 +0300

Add icon sizes better suited for toolbar
---
 data/icons/16x16/actions/session-pause.png| Bin 368 -> 0 bytes
 data/icons/16x16/actions/session-resume.png   | Bin 423 -> 0 bytes
 data/icons/16x16/actions/toolbar-new.png  | Bin 465 -> 0 bytes
 data/icons/16x16/actions/toolbar-quit.png | Bin 615 -> 0 bytes
 data/icons/16x16/actions/toolbar-settings.png | Bin 627 -> 0 bytes
 data/icons/32x32/actions/session-pause.png| Bin 0 -> 378 bytes
 data/icons/32x32/actions/session-resume.png   | Bin 0 -> 473 bytes
 data/icons/32x32/actions/toolbar-new.png  | Bin 0 -> 569 bytes
 data/icons/32x32/actions/toolbar-quit.png | Bin 0 -> 969 bytes
 data/icons/32x32/actions/toolbar-settings.png | Bin 0 -> 994 bytes
 data/icons/48x48/actions/session-pause.png| Bin 0 -> 392 bytes
 data/icons/48x48/actions/session-resume.png   | Bin 0 -> 544 bytes
 data/icons/48x48/actions/toolbar-new.png  | Bin 0 -> 723 bytes
 data/icons/48x48/actions/toolbar-quit.png | Bin 0 -> 1389 bytes
 data/icons/48x48/actions/toolbar-settings.png | Bin 0 -> 1410 bytes
 data/icons/64x64/actions/session-pause.png| Bin 0 -> 403 bytes
 data/icons/64x64/actions/session-resume.png   | Bin 0 -> 631 bytes
 data/icons/64x64/actions/toolbar-new.png  | Bin 0 -> 871 bytes
 data/icons/64x64/actions/toolbar-quit.png | Bin 0 -> 1695 bytes
 data/icons/64x64/actions/toolbar-settings.png | Bin 0 -> 1809 bytes
 20 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/data/icons/16x16/actions/session-pause.png 
b/data/icons/16x16/actions/session-pause.png
deleted file mode 100644
index 66f0fc2..000
Binary files a/data/icons/16x16/actions/session-pause.png and /dev/null differ
diff --git a/data/icons/16x16/actions/session-resume.png 
b/data/icons/16x16/actions/session-resume.png
deleted file mode 100644
index db9f666..000
Binary files a/data/icons/16x16/actions/session-resume.png and /dev/null differ
diff --git a/data/icons/16x16/actions/toolbar-new.png 
b/data/icons/16x16/actions/toolbar-new.png
deleted file mode 100644
index 5dac0a9..000
Binary files a/data/icons/16x16/actions/toolbar-new.png and /dev/null differ
diff --git a/data/icons/16x16/actions/toolbar-quit.png 
b/data/icons/16x16/actions/toolbar-quit.png
deleted file mode 100644
index 7988d8f..000
Binary files a/data/icons/16x16/actions/toolbar-quit.png and /dev/null differ
diff --git a/data/icons/16x16/actions/toolbar-settings.png 
b/data/icons/16x16/actions/toolbar-settings.png
deleted file mode 100644
index d4c073f..000
Binary files a/data/icons/16x16/actions/toolbar-settings.png and /dev/null 
differ
diff --git a/data/icons/32x32/actions/session-pause.png 
b/data/icons/32x32/actions/session-pause.png
new file mode 100644
index 000..368f5cd
Binary files /dev/null and b/data/icons/32x32/actions/session-pause.png differ
diff --git a/data/icons/32x32/actions/session-resume.png 
b/data/icons/32x32/actions/session-resume.png
new file mode 100644
index 000..839e3f3
Binary files /dev/null and b/data/icons/32x32/actions/session-resume.png differ
diff --git a/data/icons/32x32/actions/toolbar-new.png 
b/data/icons/32x32/actions/toolbar-new.png
new file mode 100644
index 000..3963758
Binary files /dev/null and b/data/icons/32x32/actions/toolbar-new.png differ
diff --git a/data/icons/32x32/actions/toolbar-quit.png 
b/data/icons/32x32/actions/toolbar-quit.png
new file mode 100644
index 000..377fcd3
Binary files /dev/null and b/data/icons/32x32/actions/toolbar-quit.png differ
diff --git a/data/icons/32x32/actions/toolbar-settings.png 
b/data/icons/32x32/actions/toolbar-settings.png
new file mode 100644
index 000..063c8fa
Binary files /dev/null and b/data/icons/32x32/actions/toolbar-settings.png 
differ
diff --git a/data/icons/48x48/actions/session-pause.png 
b/data/icons/48x48/actions/session-pause.png
new file mode 100644
index 000..67f4b91
Binary files /dev/null and b/data/icons/48x48/actions/session-pause.png differ
diff --git a/data/icons/48x48/actions/session-resume.png 
b/data/icons/48x48/actions/session-resume.png
new file mode 100644
index 000..df1a9e5
Binary files /dev/null and b/data/icons/48x48/actions/session-resume.png differ
diff --git a/data/icons/48x48/actions/toolbar-new.png 
b/data/icons/48x48/actions/toolbar-new.png
new file mode 100644
index 000..758be54
Binary files /dev/null and b/data/icons/48x48/actions/toolbar-new.png differ
diff --git a/data/icons/48x48/actions/toolbar-quit.png 
b/data/icons/48x48/actions/toolbar-quit.png
new file mode 100644
index 000..49b8a65
Binary files /dev/null and b/data/icons/48x48/actions/toolbar-quit.png differ
diff --git a/data/icons/48x48/actions/toolbar-setti

[EGIT] [apps/epour] master 01/01: libtorrent compatibility fixes

2016-09-19 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=c8344819e060965bddac5628f0e716e1fe2f0b1f

commit c8344819e060965bddac5628f0e716e1fe2f0b1f
Author: Kai Huuhko 
Date:   Mon Sep 19 15:00:08 2016 +0300

libtorrent compatibility fixes
---
 epour/session.py | 28 
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/epour/session.py b/epour/session.py
index 32c92a1..29fee9e 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -77,7 +77,7 @@ def read_resume_data(info_hash):
 t_path = os.path.join(p, "%s.fastresume" % info_hash)
 if os.path.exists(t_path):
 with open(t_path, "rb") as fp:
-data = lt.read_resume_data(fp.read())
+data = fp.read()
 break
 
 if data:
@@ -86,6 +86,12 @@ def read_resume_data(info_hash):
 raise ValueError("Fast Resume data not found")
 
 
+def lt_compatibility_convert(params):
+for k, v in params.items():
+if type(v) == lt.sha1_hash:
+params[k] = v.to_bytes()
+
+
 class Session(lt.session):
 
 def __init__(self, conf, shutdown_cb):
@@ -283,6 +289,7 @@ class Session(lt.session):
 params_dict = torrent.get_params()
 
 params = None
+ti = None
 
 if "ti" in params_dict and params_dict["ti"]:
 try:
@@ -291,15 +298,28 @@ class Session(lt.session):
 log.exception("Opening torrent %s failed", 
info_hash)
 else:
 params_dict["ti"] = ti
+
+if ti:
+if lt_version < LooseVersion("1.2.0.0"):
+try:
+data = read_resume_data(info_hash)
+except Exception:
+log.exception("Reading resume data failed.")
+else:
+params_dict["resume_data"] = data
+else:
 try:
-params = read_resume_data(info_hash)
+data = read_resume_data(info_hash)
+params = lt.read_resume_data(data)
 except Exception:
-pass
+log.exception("Reading resume data failed.")
 else:
 params.trackers = list(set(params.trackers))
 
-if lt_version < LooseVersion("1.1.1.0"):
+if lt_version < LooseVersion("1.2.0.0"):
 if params is None:
+log.warn("Falling back to < lt 1.2 compatibility 
handling.")
+lt_compatibility_convert(params_dict)
 params = params_dict
 else:
 if params is None:

-- 




[EGIT] [apps/epour] master 01/02: Theme: Use custom style name and remove call to extension_add

2016-09-14 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=dd72a3f2a10f473060f444a96acd07cb0a6e3afb

commit dd72a3f2a10f473060f444a96acd07cb0a6e3afb
Author: Kai Huuhko 
Date:   Tue Sep 13 13:49:18 2016 +0300

Theme: Use custom style name and remove call to extension_add
---
 epour/gui/__init__.py   | 3 +--
 themes/default/main.edc | 8 
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index 5d38d7c..b94c053 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -80,13 +80,12 @@ class MainInterface(object):
 
 def __init__(self, parent, session):
 self._session = session
-self.itc = TorrentClass(self._session, "double_label")
+self.itc = TorrentClass(self._session, "torrent")
 
 self.torrentitems = {}
 
 theme = Theme.default_get()
 theme.overlay_add(theme_file)
-theme.extension_add(theme_file)
 
 win = self.win = Window(
 "epour", ELM_WIN_BASIC, size=(480 * scale, 400 * scale),
diff --git a/themes/default/main.edc b/themes/default/main.edc
index aca4c04..571043b 100644
--- a/themes/default/main.edc
+++ b/themes/default/main.edc
@@ -718,7 +718,7 @@ collections {
 #define TREEPAD 19
 
 
-   group { "elm/genlist/item/double_label/default"; nomouse;
+   group { "elm/genlist/item/torrent/default"; nomouse;
   data.item: "selectraise" "on";
   data.item: "focusraise" "on";
   data.item: "texts" "elm.text elm.text.sub";
@@ -1025,9 +1025,9 @@ collections {
   }
   inherit: "genlist_top";
}
-   ODD("elm/genlist/item_odd/double_label/default", 
"elm/genlist/item/double_label/default")
-   COMPRESS_SUB("elm/genlist/item_compress/double_label/default", 
"elm/genlist/item/double_label/default")
-   COMPRESS_SUB_ODD("elm/genlist/item_compress_odd/double_label/default", 
"elm/genlist/item/double_label/default")
+   ODD("elm/genlist/item_odd/torrent/default", 
"elm/genlist/item/torrent/default")
+   COMPRESS_SUB("elm/genlist/item_compress/torrent/default", 
"elm/genlist/item/torrent/default")
+   COMPRESS_SUB_ODD("elm/genlist/item_compress_odd/torrent/default", 
"elm/genlist/item/torrent/default")
 
 }
 

-- 




[EGIT] [apps/epour] master 02/02: Fix progressbar updates

2016-09-14 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=09440577a04cabedeca1792f72d3ed0364dae720

commit 09440577a04cabedeca1792f72d3ed0364dae720
Author: Kai Huuhko 
Date:   Wed Sep 14 18:30:37 2016 +0300

Fix progressbar updates
---
 epour/gui/__init__.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index b94c053..e14532c 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -263,6 +263,9 @@ class MainInterface(object):
 self.torrentitems[info_hash].fields_update(
 "*", ELM_GENLIST_ITEM_FIELD_TEXT
 )
+self.torrentitems[info_hash].fields_update(
+"elm.swallow.progress", ELM_GENLIST_ITEM_FIELD_CONTENT
+)
 
 session.alert_manager.callback_add(
 "state_update_alert", state_update_alert_cb)

-- 




[EGIT] [apps/epour] master 01/01: Add custom theme and icons

2016-09-12 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=8709cc1c9feb5961beb5674890aa1e93f02a7d30

commit 8709cc1c9feb5961beb5674890aa1e93f02a7d30
Author: Kai Huuhko 
Date:   Tue Sep 13 00:17:55 2016 +0300

Add custom theme and icons

Genlist items have a translucent background with simple progressbar on top 
of that.
---
 .gitignore |1 +
 AUTHORS|3 +-
 data/icons/128x128/actions/session-pause.png   |  Bin 0 -> 577 bytes
 data/icons/128x128/actions/session-resume.png  |  Bin 0 -> 1020 bytes
 data/icons/128x128/actions/toolbar-new.png |  Bin 0 -> 1663 bytes
 data/icons/128x128/actions/toolbar-quit.png|  Bin 0 -> 3290 bytes
 data/icons/128x128/actions/toolbar-settings.png|  Bin 0 -> 3660 bytes
 data/icons/16x16/actions/session-pause.png |  Bin 0 -> 368 bytes
 data/icons/16x16/actions/session-resume.png|  Bin 0 -> 423 bytes
 data/icons/16x16/actions/toolbar-new.png   |  Bin 0 -> 465 bytes
 data/icons/16x16/actions/toolbar-quit.png  |  Bin 0 -> 615 bytes
 data/icons/16x16/actions/toolbar-settings.png  |  Bin 0 -> 627 bytes
 epour/gui/__init__.py  |  168 ++--
 setup.py   |   76 +-
 themes/default/images/bevel_curved_horiz_out.png   |  Bin 0 -> 136 bytes
 themes/default/images/bevel_horiz_out.png  |  Bin 0 -> 74 bytes
 themes/default/images/shadow_rounded_horiz.png |  Bin 0 -> 486 bytes
 themes/default/images/shine.png|  Bin 0 -> 232 bytes
 .../default/images/states/128/torrent-active.png   |  Bin 0 -> 1020 bytes
 .../images/states/128/torrent-allocating.png   |  Bin 0 -> 2759 bytes
 .../images/states/128/torrent-checking-files.png   |  Bin 0 -> 3479 bytes
 .../states/128/torrent-checking-resume-data.png|  Bin 0 -> 1226 bytes
 .../states/128/torrent-downloading-metadata.png|  Bin 0 -> 3753 bytes
 .../images/states/128/torrent-downloading.png  |  Bin 0 -> 2641 bytes
 .../default/images/states/128/torrent-finished.png |  Bin 0 -> 828 bytes
 .../default/images/states/128/torrent-paused.png   |  Bin 0 -> 578 bytes
 .../default/images/states/128/torrent-queued.png   |  Bin 0 -> 1318 bytes
 .../default/images/states/128/torrent-seeding.png  |  Bin 0 -> 2334 bytes
 themes/default/images/states/16/torrent-active.png |  Bin 0 -> 423 bytes
 .../images/states/16/torrent-allocating.png|  Bin 0 -> 682 bytes
 .../images/states/16/torrent-checking-files.png|  Bin 0 -> 633 bytes
 .../states/16/torrent-checking-resume-data.png |  Bin 0 -> 469 bytes
 .../states/16/torrent-downloading-metadata.png |  Bin 0 -> 712 bytes
 .../images/states/16/torrent-downloading.png   |  Bin 0 -> 580 bytes
 .../default/images/states/16/torrent-finished.png  |  Bin 0 -> 450 bytes
 themes/default/images/states/16/torrent-paused.png |  Bin 0 -> 369 bytes
 themes/default/images/states/16/torrent-queued.png |  Bin 0 -> 566 bytes
 .../default/images/states/16/torrent-seeding.png   |  Bin 0 -> 526 bytes
 themes/default/images/vgrad_med_dark.png   |  Bin 0 -> 1908 bytes
 themes/default/main.edc| 1033 
 40 files changed, 1218 insertions(+), 63 deletions(-)

diff --git a/.gitignore b/.gitignore
index 9aeb9c5..9652dc8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 build/
 dist/
 MANIFEST
+data/themes
\ No newline at end of file
diff --git a/AUTHORS b/AUTHORS
index febe5fc..a5f743a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,5 @@
 Kai Huuhko 
 Davide Andreoli 
 
-Icons by swordplay  from Bodhi Linux forums.
+Application icon by swordplay  from Bodhi Linux forums.
+Other icons from IcoMoon - Free by Keyamoon (https://keyamoon.com) downloaded 
from https://icomoon.io
\ No newline at end of file
diff --git a/data/icons/128x128/actions/session-pause.png 
b/data/icons/128x128/actions/session-pause.png
new file mode 100644
index 000..22d4716
Binary files /dev/null and b/data/icons/128x128/actions/session-pause.png differ
diff --git a/data/icons/128x128/actions/session-resume.png 
b/data/icons/128x128/actions/session-resume.png
new file mode 100644
index 000..b1aa6a4
Binary files /dev/null and b/data/icons/128x128/actions/session-resume.png 
differ
diff --git a/data/icons/128x128/actions/toolbar-new.png 
b/data/icons/128x128/actions/toolbar-new.png
new file mode 100644
index 000..93eaa38
Binary files /dev/null and b/data/icons/128x128/actions/toolbar-new.png differ
diff --git a/data/icons/128x128/actions/toolbar-quit.png 
b/data/icons/128x128/actions/toolbar-quit.png
new file mode 100644
index 000..37956f1
Binary files /dev/null and b/data/icons/128x128/actions/toolbar-quit.png differ
diff --git a/data/icons/128x128/actions/toolbar-se

[EGIT] [apps/epour] master 02/02: Work around a libtorrent 1.1.0 issue

2016-09-07 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=44b5485e379965355db2b12e9b3d411d1f25d7a9

commit 44b5485e379965355db2b12e9b3d411d1f25d7a9
Author: Kai Huuhko 
Date:   Wed Sep 7 19:12:36 2016 +0300

Work around a libtorrent 1.1.0 issue

There's no add_torrent_params in 1.1.0
---
 epour/session.py | 14 ++
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/epour/session.py b/epour/session.py
index 311d1f5..32c92a1 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -24,6 +24,7 @@ import mimetypes
 from urllib.parse import urlparse, urlsplit
 import logging
 import shutil
+from distutils.version import LooseVersion
 try:
 import cPickle
 except ImportError:
@@ -36,6 +37,7 @@ from efl.ecore import Timer
 
 from xdg.BaseDirectory import save_data_path, load_data_paths
 
+lt_version = LooseVersion(lt.version)
 
 log = logging.getLogger("epour.session")
 
@@ -296,11 +298,15 @@ class Session(lt.session):
 else:
 params.trackers = list(set(params.trackers))
 
-if params is None:
-params = lt.add_torrent_params()
+if lt_version < LooseVersion("1.1.1.0"):
+if params is None:
+params = params_dict
+else:
+if params is None:
+params = lt.add_torrent_params()
 
-for k, v in params_dict.items():
-setattr(params, k, v)
+for k, v in params_dict.items():
+setattr(params, k, v)
 
 try:
 self.async_add_torrent(params)

-- 




[EGIT] [apps/epour] master 01/02: Note that libtorrent-1.1.1 is recommended

2016-09-07 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=b611fc3c8aa38df769685912054040db0d2d4d28

commit b611fc3c8aa38df769685912054040db0d2d4d28
Author: Kai Huuhko 
Date:   Wed Sep 7 18:56:25 2016 +0300

Note that libtorrent-1.1.1 is recommended
---
 README | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README b/README
index 18af092..28dd85a 100644
--- a/README
+++ b/README
@@ -2,8 +2,8 @@
 REQUIREMENTS
 
 
-* libtorrent-rasterbar 1.1.0 or later, currently tested and developed with
-  version 1.2.0
+* libtorrent-rasterbar 1.1.0 or later, version 1.1.1 or later is recommended
+  as several major issues were fixed.
 
 https://libtorrent.org/
 

-- 




[EGIT] [apps/epour] master 01/01: Change gui to use add_torrent_alert instead of torrent_added_alert

2016-09-07 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=9037ecddc447dc3efc68ae7e8b1c36dcbc6a7ee7

commit 9037ecddc447dc3efc68ae7e8b1c36dcbc6a7ee7
Author: Kai Huuhko 
Date:   Wed Sep 7 18:17:18 2016 +0300

Change gui to use add_torrent_alert instead of torrent_added_alert

This may fix a bug that I was unable to reproduce. Anyway, should be more 
robust.
---
 epour/gui/__init__.py | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index e0d13f2..89ed6c4 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -172,20 +172,22 @@ class MainInterface(object):
 topbox.stack_above(mbox)
 topbox.show()
 
-def torrent_added_cb(a):
+def _add_torrent_cb(a):
+e = a.error
+if e.value() > 0:
+return
 h = a.handle
 info_hash = h.info_hash()
-log.debug("Torrent added: %s" % str(info_hash))
 torrent = session.torrents[str(info_hash)]
 self.add_torrent_item(torrent)
 
-def torrent_removed_cb(a):
+def _torrent_removed_cb(a):
 self.remove_torrent_item(str(a.info_hash))
 
 session.alert_manager.callback_add(
-"torrent_added_alert", torrent_added_cb)
+"add_torrent_alert", _add_torrent_cb)
 session.alert_manager.callback_add(
-"torrent_removed_alert", torrent_removed_cb)
+"torrent_removed_alert", _torrent_removed_cb)
 
 def torrent_paused_resumed_cb(a):
 h = a.handle

-- 




[EGIT] [apps/epour] master 01/01: Fix adding auto paused torrents

2016-09-05 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=9a07cce43aa83bcbc1d495674e1736f4eb65eb8b

commit 9a07cce43aa83bcbc1d495674e1736f4eb65eb8b
Author: Kai Huuhko 
Date:   Mon Sep 5 13:14:21 2016 +0300

Fix adding auto paused torrents

Auto managed flag was reversed
---
 epour/gui/TorrentSelector.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/epour/gui/TorrentSelector.py b/epour/gui/TorrentSelector.py
index 48873b1..ca30941 100644
--- a/epour/gui/TorrentSelector.py
+++ b/epour/gui/TorrentSelector.py
@@ -229,7 +229,8 @@ seed, this flag has no effect.'''
 self.add_dict["flags"] = (
 add_torrent_params_flags_t.flag_apply_ip_filter +
 add_torrent_params_flags_t.flag_update_subscribe +
-add_torrent_params_flags_t.flag_duplicate_is_error)
+add_torrent_params_flags_t.flag_duplicate_is_error +
+add_torrent_params_flags_t.flag_auto_managed)
 
 def option_flag_cb(c, flag):
 flags = self.add_dict["flags"]

-- 




[EGIT] [bindings/python/python-efl] master 01/02: Emotion: Change default module_name to gstreamer1

2016-09-03 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=0217da6c1f96215171f74317926f33fa841635d8

commit 0217da6c1f96215171f74317926f33fa841635d8
Author: Kai Huuhko 
Date:   Sat Sep 3 22:37:19 2016 +0300

Emotion: Change default module_name to gstreamer1
---
 efl/emotion/efl.emotion.pyx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efl/emotion/efl.emotion.pyx b/efl/emotion/efl.emotion.pyx
index 99d39d0..bd38d98 100644
--- a/efl/emotion/efl.emotion.pyx
+++ b/efl/emotion/efl.emotion.pyx
@@ -201,7 +201,7 @@ cdef class Emotion(evasObject):
 def __cinit__(self, *a, **ka):
 self._emotion_callbacks = {}
 
-def __init__(self, Canvas canvas not None, module_name="gstreamer",
+def __init__(self, Canvas canvas not None, module_name="gstreamer1",
  module_params=None, **kwargs):
 """Emotion(...)
 

-- 




[EGIT] [bindings/python/python-efl] master 02/02: Emotion: Document module names and mark module options as deprecated

2016-09-03 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=6ad9bb35214bdd1de68bb5be324f458bdbbb9b19

commit 6ad9bb35214bdd1de68bb5be324f458bdbbb9b19
Author: Kai Huuhko 
Date:   Sat Sep 3 22:37:49 2016 +0300

Emotion: Document module names and mark module options as deprecated
---
 doc/emotion/emotion.rst | 19 +++
 efl/emotion/efl.emotion.pyx |  9 ++---
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/doc/emotion/emotion.rst b/doc/emotion/emotion.rst
index dd3a8d5..dce3ba8 100644
--- a/doc/emotion/emotion.rst
+++ b/doc/emotion/emotion.rst
@@ -47,9 +47,20 @@ loaded file.
 
 There will be a delay between an API being called and it being really
 executed, since this request will be done in the main thread, and it needs to
-be sent to the decoding thread. For this reason, always call functions like
-emotion_object_size_get() or emotion_object_length_get() after some signal
-being sent, like "playback_started" or "open_done".
+be sent to the decoding thread. For this reason, never access properties or
+call methods before a start up signal being sent, such "playback_started" or
+"open_done".
+
+
+Supported module names
+==
+
+- **gstreamer1** (default)
+- **xine**
+- **libvlc**
+- generic modules (launched in a separate process)
+
+  - **vlc**
 
 
 Emitted signals
@@ -70,7 +81,7 @@ interesting signals:
 - ``length_change`` Emitted if the media change it's size
 - ``channels_change`` Emitted when the number of channels change
 - ``title_change`` Emitted when the title change (?)
-- ``progress_change`` 
+- ``progress_change``
 - ``ref_change``
 - ``button_num_change``
 - ``button_change``
diff --git a/efl/emotion/efl.emotion.pyx b/efl/emotion/efl.emotion.pyx
index bd38d98..03171c4 100644
--- a/efl/emotion/efl.emotion.pyx
+++ b/efl/emotion/efl.emotion.pyx
@@ -209,9 +209,12 @@ cdef class Emotion(evasObject):
 :type canvas: :py:class:`~efl.evas.Canvas`
 :keyword module_name: name of the engine to use
 :type module_name: string
-:keyword module_params: Extra parameters, module specific
-:keyword \**kwargs: All the remaining keyword arguments are interpreted
-as properties of the instance
+:keyword module_params:
+DEPRECATED! Use :attr:`video_mute`/:attr:`audio_mute` instead.
+Extra parameters, module specific
+:keyword \**kwargs:
+All the remaining keyword arguments are interpreted
+as properties of the instance
 
 """
 

-- 




[EGIT] [apps/epour] master 01/02: Fix state and status updates

2016-08-30 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=e7e2766b698a8d863218506e99b5e705fca68dc4

commit e7e2766b698a8d863218506e99b5e705fca68dc4
Author: Kai Huuhko 
Date:   Wed Aug 31 04:40:01 2016 +0300

Fix state and status updates
---
 epour/gui/__init__.py | 46 +++---
 epour/session.py  |  6 ++
 2 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index 2293f3b..e0d13f2 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -190,16 +190,16 @@ class MainInterface(object):
 def torrent_paused_resumed_cb(a):
 h = a.handle
 if not h.is_valid():
-log.debug("State changed for invalid handle.")
+log.debug("Paused state changed for invalid handle.")
 return
 
 info_hash = str(h.info_hash())
 if info_hash not in self.torrentitems:
-log.debug("%s state changed but not in list", str(info_hash))
+log.debug("Paused state for %s changed but not in list of gui 
items", str(info_hash))
 return
 
 torrent = self._session.torrents[info_hash]
-torrent.state = h.status(0).state
+torrent.status = h.status(0)
 
 self.torrentitems[info_hash].fields_update(
 "elm.swallow.icon", ELM_GENLIST_ITEM_FIELD_CONTENT
@@ -229,20 +229,20 @@ class MainInterface(object):
 session.alert_manager.callback_add(
 "state_changed_alert", state_changed_cb)
 
-# def state_update_alert_cb(a):
-# statuses = a.status
-# for status in statuses:
-# info_hash = str(status.info_hash)
+def state_update_alert_cb(a):
+statuses = a.status
+for status in statuses:
+info_hash = str(status.info_hash)
 
-# if info_hash not in self.torrentitems:
-# return
+if info_hash not in self.torrentitems:
+return
 
-# self.torrentitems[info_hash].fields_update(
-# "*", ELM_GENLIST_ITEM_FIELD_TEXT
-# )
+self.torrentitems[info_hash].fields_update(
+"*", ELM_GENLIST_ITEM_FIELD_TEXT
+)
 
-# session.alert_manager.callback_add(
-# "state_update_alert", state_update_alert_cb)
+session.alert_manager.callback_add(
+"state_update_alert", state_update_alert_cb)
 
 def torrent_finished_cb(a):
 msg = _("Torrent {} has finished downloading.").format(
@@ -262,11 +262,11 @@ class MainInterface(object):
 def run_mainloop(self):
 self.win.show()
 
-self.timer = Timer(1.0, self.update)
-self.win.on_del_add(lambda x: self.timer.delete())
-self.win.callback_withdrawn_add(lambda x: self.timer.freeze())
-self.win.callback_iconified_add(lambda x: self.timer.freeze())
-self.win.callback_normal_add(lambda x: self.timer.thaw())
+# self.timer = Timer(1.0, self.update)
+# self.win.on_del_add(lambda x: self.timer.delete())
+# self.win.callback_withdrawn_add(lambda x: self.timer.freeze())
+# self.win.callback_iconified_add(lambda x: self.timer.freeze())
+# self.win.callback_normal_add(lambda x: self.timer.thaw())
 elm.run()
 
 def stop_mainloop(self):
@@ -274,9 +274,8 @@ class MainInterface(object):
 
 def update(self):
 #log.debug("Torrent list TICK")
-for v in self.tlist.realized_items_get():
-v.fields_update("*", ELM_GENLIST_ITEM_FIELD_TEXT)
-self._session.post_torrent_updates(64)
+# for v in self.tlist.realized_items_get():
+# v.fields_update("*", ELM_GENLIST_ITEM_FIELD_TEXT)
 return True
 
 def _torrent_item_tooltip_cb(self, gl, it, tooltip, session, torrent):
@@ -483,6 +482,7 @@ class TorrentClass(GenlistItemClass):
 return
 
 status = torrent.status
+state = torrent.state
 ic = Icon(obj)
 try:
 if status.paused:
@@ -511,7 +511,7 @@ class TorrentClass(GenlistItemClass):
 pass
 except RuntimeError:
 log.debug("Setting torrent ic failed")
-ic.tooltip_text_set(self.state_str[torrent.state])
+ic.tooltip_text_set(self.state_str[state])
 ic.size_hint_aspect_set(EVAS_ASPECT_CONTROL_VERTICAL, 1, 1)
 return ic
 
diff --git a/epour/session.py b/epour/session.py
index 469f6f3..311d1f5 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -173,6 +173,12 @@ class Session(lt.session):
 
 self.periodic_save

[EGIT] [apps/epour] master 02/02: Add i2p proxy type to proxy settings

2016-08-30 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=8b7f4a9e5514bc34a96ff3954bbcc4b4e5ef95c9

commit 8b7f4a9e5514bc34a96ff3954bbcc4b4e5ef95c9
Author: Kai Huuhko 
Date:   Wed Aug 31 04:41:09 2016 +0300

Add i2p proxy type to proxy settings
---
 epour/gui/Preferences.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/epour/gui/Preferences.py b/epour/gui/Preferences.py
index 1d5608d..1590212 100644
--- a/epour/gui/Preferences.py
+++ b/epour/gui/Preferences.py
@@ -302,6 +302,7 @@ class ProxyGroup(Frame):
 lt.proxy_type.socks5_pw.name: lt.proxy_type.socks5_pw,
 lt.proxy_type.http.name: lt.proxy_type.http,
 lt.proxy_type.http_pw.name: lt.proxy_type.http_pw,
+lt.proxy_type.i2p_proxy.name: lt.proxy_type.i2p_proxy,
 }
 
 def __init__(self, parent, title, rfunc, wfunc):

-- 




[EGIT] [apps/epour] master 03/03: Fix restoring paused torrents to session

2016-08-30 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=7433ec24833d00fdaf982d80cb70580a1f180a1b

commit 7433ec24833d00fdaf982d80cb70580a1f180a1b
Author: Kai Huuhko 
Date:   Tue Aug 30 18:58:27 2016 +0300

Fix restoring paused torrents to session
---
 epour/gui/TorrentSelector.py | 10 ++
 epour/session.py |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/epour/gui/TorrentSelector.py b/epour/gui/TorrentSelector.py
index c55c3bf..48873b1 100644
--- a/epour/gui/TorrentSelector.py
+++ b/epour/gui/TorrentSelector.py
@@ -229,12 +229,14 @@ seed, this flag has no effect.'''
 self.add_dict["flags"] = (
 add_torrent_params_flags_t.flag_apply_ip_filter +
 add_torrent_params_flags_t.flag_update_subscribe +
-add_torrent_params_flags_t.flag_duplicate_is_error +
-add_torrent_params_flags_t.flag_auto_managed
-)
+add_torrent_params_flags_t.flag_duplicate_is_error)
 
 def option_flag_cb(c, flag):
-self.add_dict["flags"] = self.add_dict["flags"] ^ flag
+flags = self.add_dict["flags"]
+flags = flags ^ flag
+if flag == int(add_torrent_params_flags_t.flag_paused):
+flags = flags ^ 
int(add_torrent_params_flags_t.flag_auto_managed)
+self.add_dict["flags"] = flags
 
 for name, flag in sorted(add_torrent_params_flags_t.names.items()):
 if not int(flag) in self.names.keys():
diff --git a/epour/session.py b/epour/session.py
index 8acfedb..469f6f3 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -470,7 +470,7 @@ def status_to_flags(status):
 flags += 8 if status.share_mode else 0
 flags += 16 if status.ip_filter_applies else 0
 flags += 32 if status.paused else 0
-flags += 64  # auto_managed
+flags += 64  if status.auto_managed else 0
 flags += 128  # duplicate_is_error
 #flags += 256 deprecated
 flags += 512  # update_subscribe

-- 




[EGIT] [apps/epour] master 02/03: Preferences: Fix py2ism

2016-08-30 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=8f808340cdc0d2b4cef30b96088910e840ede852

commit 8f808340cdc0d2b4cef30b96088910e840ede852
Author: Kai Huuhko 
Date:   Mon Aug 29 18:47:12 2016 +0300

Preferences: Fix py2ism
---
 epour/gui/Preferences.py | 37 +++--
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/epour/gui/Preferences.py b/epour/gui/Preferences.py
index 322b1ee..1d5608d 100644
--- a/epour/gui/Preferences.py
+++ b/epour/gui/Preferences.py
@@ -1,7 +1,7 @@
 #
 #  Epour - A bittorrent client using EFL and libtorrent
 #
-#  Copyright 2012-2014 Kai Huuhko 
+#  Copyright 2012-2016 Kai Huuhko 
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
@@ -22,31 +22,32 @@
 import os
 import cgi
 import logging
-log = logging.getLogger("epour.preferences")
 
 import libtorrent as lt
 
-from efl.elementary.box import Box
-from efl.elementary.label import Label
-from efl.elementary.button import Button
-from efl.elementary.frame import Frame
-from efl.elementary.entry import Entry
-from efl.elementary.check import Check
-from efl.elementary.spinner import Spinner
-from efl.elementary.hoversel import Hoversel
-from efl.elementary.scroller import Scroller, ELM_SCROLLER_POLICY_AUTO
-from efl.elementary.separator import Separator
-from efl.elementary.slider import Slider
-from efl.elementary.table import Table
-from efl.elementary.configuration import Configuration
-from efl.elementary.window import StandardWindow
-from efl.elementary.background import Background
+from efl.elementary import Box
+from efl.elementary import Label
+from efl.elementary import Button
+from efl.elementary import Frame
+from efl.elementary import Entry
+from efl.elementary import Check
+from efl.elementary import Spinner
+from efl.elementary import Hoversel
+from efl.elementary import Scroller, ELM_SCROLLER_POLICY_AUTO
+from efl.elementary import Separator
+from efl.elementary import Slider
+from efl.elementary import Table
+from efl.elementary import Configuration
+from efl.elementary import StandardWindow
+from efl.elementary import Background
 
 from efl.evas import Rectangle, EVAS_HINT_EXPAND, EVAS_HINT_FILL
 
 from .Widgets import UnitSpinner, Error, Information, ActSWithLabel, FsButton, 
\
 RangeSpinners
 
+log = logging.getLogger("epour.preferences")
+
 EXPAND_BOTH = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
 EXPAND_HORIZ = EVAS_HINT_EXPAND, 0.0
 FILL_BOTH = EVAS_HINT_FILL, EVAS_HINT_FILL
@@ -616,7 +617,7 @@ class PreferencesSession(PreferencesDialog):
 def apply_settings(self, btn, widgets, session):
 s = lt.session_settings()
 
-for k, w in widgets.iteritems():
+for k, w in widgets.items():
 
 if k == "disk_cache_algorithm":
 v = lt.disk_cache_algo_t(w.value)

-- 




[EGIT] [apps/epour] master 01/03: Use DialogWindow instead of StandardWindow for child windows

2016-08-30 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=fa3366552fac653d80ddfb48384b8c77cc3e0de0

commit fa3366552fac653d80ddfb48384b8c77cc3e0de0
Author: Kai Huuhko 
Date:   Fri Aug 26 22:12:05 2016 +0300

Use DialogWindow instead of StandardWindow for child windows
---
 epour/gui/TorrentProps.py| 21 +++--
 epour/gui/TorrentSelector.py | 17 ++---
 epour/gui/__init__.py|  4 ++--
 3 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/epour/gui/TorrentProps.py b/epour/gui/TorrentProps.py
index c1fc757..f62cd6e 100644
--- a/epour/gui/TorrentProps.py
+++ b/epour/gui/TorrentProps.py
@@ -1,7 +1,7 @@
 #
 #  Epour - A bittorrent client using EFL and libtorrent
 #
-#  Copyright 2012-2014 Kai Huuhko 
+#  Copyright 2012-2016 Kai Huuhko 
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@ from efl import ecore
 from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
 from efl.elementary.genlist import Genlist, GenlistItemClass, \
 ELM_GENLIST_ITEM_NONE, ELM_GENLIST_ITEM_TREE, ELM_GENLIST_ITEM_FIELD_TEXT
-from efl.elementary.window import StandardWindow
+from efl.elementary.window import DialogWindow
 from efl.elementary.button import Button
 from efl.elementary.box import Box
 from efl.elementary.check import Check
@@ -117,15 +117,15 @@ def attach(branch, file_entry, n, trunk):
 attach(others, file_entry, n, trunk[node])
 
 
-class TorrentProps(StandardWindow):
+class TorrentProps(DialogWindow):
 
-def __init__(self, h):
+def __init__(self, parent_win, h):
 if not h.is_valid():
 Information(self, _("Invalid torrent handle."))
 return
 
-StandardWindow.__init__(
-self, "epour", "Epour - %s" % (h.name()),
+DialogWindow.__init__(
+self, parent_win, "epour", "Epour - %s" % (h.name()),
 size=(SCALE * 480, SCALE * 320),
 autodel=True
 )
@@ -201,10 +201,11 @@ class TorrentProps(StandardWindow):
 scroller.show()
 
 
-class TorrentFiles(StandardWindow):
-def __init__(self, h):
-StandardWindow.__init__(
+class TorrentFiles(DialogWindow):
+def __init__(self, parent_win, h):
+DialogWindow.__init__(
 self,
+parent_win,
 "epour",
 _("Epour - Files for torrent: %s") % (h.name()),
 size=(SCALE * 480, SCALE * 320),
@@ -402,7 +403,7 @@ class TorrentInfo(Box):
 
 fl_btn = Button(self, size_hint_align=ALIGN_LEFT)
 fl_btn.text = "Files ->"
-fl_btn.callback_clicked_add(lambda x: TorrentFiles(h))
+fl_btn.callback_clicked_add(lambda x: TorrentFiles(self.top_widget, h))
 
 self.pack_end(table)
 self.pack_end(tpriv)
diff --git a/epour/gui/TorrentSelector.py b/epour/gui/TorrentSelector.py
index 59c1dab..c55c3bf 100644
--- a/epour/gui/TorrentSelector.py
+++ b/epour/gui/TorrentSelector.py
@@ -26,8 +26,7 @@ from libtorrent import add_torrent_params_flags_t
 
 from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
 from efl import elementary as elm
-from efl.elementary import StandardWindow, Window, ELM_WIN_DIALOG_BASIC
-from efl.elementary import Background
+from efl.elementary import DialogWindow
 from efl.elementary import Button
 from efl.elementary import Box
 from efl.elementary import Frame
@@ -55,7 +54,7 @@ scale = elm_conf.scale
 log = logging.getLogger("epour.gui")
 
 
-class TorrentSelector(StandardWindow):
+class TorrentSelector(DialogWindow):
 
 names = {
 1: _("Seed Mode"),
@@ -138,8 +137,8 @@ seed, this flag has no effect.'''
 }
 
 def __init__(self, parent, session, t_uri=None):
-StandardWindow.__init__(
-self, "addtorrent", _("Add Torrent"),
+DialogWindow.__init__(
+self, parent, "addtorrent", _("Add Torrent"),
 size=(scale * 400, scale * 400), autodel=True
 )
 
@@ -336,18 +335,14 @@ class FsEntry(Fileselector, FileselectorEntry):
 FileselectorEntry.__init__(self, parent, **kwargs)
 
 
-class TorrentFs(Window):
+class TorrentFs(DialogWindow):
 
 def __init__(self, parent, uri_entry):
 
 super(TorrentFs, self).__init__(
-"torrentselect", ELM_WIN_DIALOG_BASIC, parent, size=(500, 500),
+parent, "torrentselect", "Select Torrent", size=(500, 500),
 autodel=True)
 
-bg = Background(self, size_hint_weight=EXPAND_BOTH)
-self.resize_object_add(bg)
-bg.show()
-
 fs = Fileselector(
 self, size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH,
 expandable=False, is_save=False, path=os.path.expandu

[EGIT] [bindings/python/python-efl] master 01/01: Elm.Spinner: Add two missing signals and fix documentation issues

2016-08-29 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=f7e96cf0afb47618e1785296b0cf904e6aacb9a3

commit f7e96cf0afb47618e1785296b0cf904e6aacb9a3
Author: Kai Huuhko 
Date:   Mon Aug 29 18:44:35 2016 +0300

Elm.Spinner: Add two missing signals and fix documentation issues
---
 doc/elementary/spinner.rst |  2 ++
 efl/elementary/spinner.pxi | 30 +-
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/doc/elementary/spinner.rst b/doc/elementary/spinner.rst
index 547260c..3f0d236 100644
--- a/doc/elementary/spinner.rst
+++ b/doc/elementary/spinner.rst
@@ -31,6 +31,8 @@ Emitted signals
   the user.  This will be called only when the user stops dragging
   for a very short period or when they release their finger/mouse,
   so it avoids possibly expensive reactions to the value change.
+- ``spinner,drag,start`` - When dragging has started.
+- ``spinner,drag,stop`` - When dragging has stopped.
 
 
 Available styles
diff --git a/efl/elementary/spinner.pxi b/efl/elementary/spinner.pxi
index 47de51a..1c7a32e 100644
--- a/efl/elementary/spinner.pxi
+++ b/efl/elementary/spinner.pxi
@@ -299,7 +299,7 @@ cdef class Spinner(LayoutClass):
 
 Rounding works as follows:
 
-``rounded_val = base + (double)(((value - base) / round) round)``
+``rounded_val = base + (double)(((value - base) / round) * round)``
 
 Where rounded_val, value and base are doubles, and round is an integer.
 
@@ -307,11 +307,9 @@ cdef class Spinner(LayoutClass):
 of "round" starting from the value of this property. The default
 base for rounding is 0.
 
-Example: round = 3, base = 2
-Values:  3, 6, 9, 12, 15, ...
+Example: round = 3, base = 2 Values: ..., -2, 0, 2, 5, 8, 11, 14, ...
 
-Example: round = 2, base = 5.5
-Values: 5.5, 7.5, 9.5, 11.5, ...
+Example: round = 2, base = 5.5 Values: ..., -0.5, 1.5, 3.5, 5.5, 7.5, 
9.5, 11.5, ...
 
 .. seealso:: :py:attr:`round`
 
@@ -367,5 +365,27 @@ cdef class Spinner(LayoutClass):
 def callback_delay_changed_del(self, func):
 self._callback_del("delay,changed", func)
 
+def callback_drag_start_add(self, func, *args, **kwargs):
+"""When dragging has started.
+
+.. versionadded:: 1.19
+
+"""
+self._callback_add("spinner,drag,start", func, args, kwargs)
+
+def callback_drag_start_del(self, func):
+self._callback_del("spinner,drag,start", func)
+
+def callback_drag_stop_add(self, func, *args, **kwargs):
+"""When dragging has stopped.
+
+.. versionadded:: 1.19
+
+"""
+self._callback_add("spinner,drag,stop", func, args, kwargs)
+
+def callback_drag_stop_del(self, func):
+self._callback_del("spinner,drag,stop", func)
+
 
 _object_mapping_register("Elm_Spinner", Spinner)

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Elm.Genlist: Document new "indent" item style

2016-08-26 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=58cfedf5af6be32c9187347528a8b0cbdaafbf91

commit 58cfedf5af6be32c9187347528a8b0cbdaafbf91
Author: Kai Huuhko 
Date:   Fri Aug 26 21:47:46 2016 +0300

Elm.Genlist: Document new "indent" item style
---
 doc/elementary/genlist.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/elementary/genlist.rst b/doc/elementary/genlist.rst
index 2218045..cc8e962 100644
--- a/doc/elementary/genlist.rst
+++ b/doc/elementary/genlist.rst
@@ -73,6 +73,7 @@ Available item styles
 - ``no_icon`` No icon (since: 1.1)
 - ``full`` Only one object, elm.swallow.content, which consumes whole area of
   the genlist item (since: 1.7)
+- ``indent`` Has indentation to match tree group items (since: 1.19)
 
 
 Structure of items

-- 




[EGIT] [apps/epour] master 01/01: Use the new "indent" style in TorrentFiles tree items

2016-08-26 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=192d58cfe50697afc9cab01fc9470d21eb502f4c

commit 192d58cfe50697afc9cab01fc9470d21eb502f4c
Author: Kai Huuhko 
Date:   Fri Aug 26 21:08:26 2016 +0300

Use the new "indent" style in TorrentFiles tree items
---
 epour/gui/TorrentProps.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/epour/gui/TorrentProps.py b/epour/gui/TorrentProps.py
index ea10883..c1fc757 100644
--- a/epour/gui/TorrentProps.py
+++ b/epour/gui/TorrentProps.py
@@ -101,7 +101,7 @@ class DirectoryClass(GenlistItemClass):
 )
 
 
-ITEM_CLASS_FILES = FileClass()
+ITEM_CLASS_FILES = FileClass(item_style="indent")
 ITEM_CLASS_DIRS = DirectoryClass()
 
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Tests: Disable edje edit test that segfaults

2016-08-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=818e7db2e6dbcec792b4898613adc9ca401cf56e

commit 818e7db2e6dbcec792b4898613adc9ca401cf56e
Author: Kai Huuhko 
Date:   Sun Aug 21 20:02:01 2016 +0300

Tests: Disable edje edit test that segfaults
---
 tests/edje/test_04_edit.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/edje/test_04_edit.py b/tests/edje/test_04_edit.py
index 3ebb3c0..ec79279 100644
--- a/tests/edje/test_04_edit.py
+++ b/tests/edje/test_04_edit.py
@@ -68,6 +68,7 @@ class TestEdjeEditGeneral(unittest.TestCase):
 
 # TODO test g.rename
 
+@unittest.skip("segfaults")
 def testGroupAdd(self):
 self.assertFalse(self.o.group_exist("test_new_group"))
 self.o.group_add("test_new_group")

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Follow Eo -> Efl renames

2016-08-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=6fa2d3ff954aaf7cc7ad44e8b7c0c7bd52fba782

commit 6fa2d3ff954aaf7cc7ad44e8b7c0c7bd52fba782
Author: Kai Huuhko 
Date:   Sun Aug 21 19:53:41 2016 +0300

Follow Eo -> Efl renames
---
 efl/elementary/elementary_cdef.pxi |   2 +-
 efl/elementary/systray.pxi |   6 +-
 efl/elementary/systray_cdef.pxi|   2 +-
 efl/eo/efl.eo.pyx  |  66 +--
 efl/evas/efl.evas_object_smart.pxi |  28 
 include/efl.c_eo.pxd   | 130 ++---
 include/efl.evas.pxd   |  20 +++---
 7 files changed, 127 insertions(+), 127 deletions(-)

diff --git a/efl/elementary/elementary_cdef.pxi 
b/efl/elementary/elementary_cdef.pxi
index e8c5ac8..a9751e4 100644
--- a/efl/elementary/elementary_cdef.pxi
+++ b/efl/elementary/elementary_cdef.pxi
@@ -1,4 +1,4 @@
-from efl.c_eo cimport Eo as cEo, Eo_Class, eo_add
+from efl.c_eo cimport Eo as cEo, Efl_Class, efl_add
 from efl.eina cimport Eina_Rectangle, Eina_Compare_Cb, \
 eina_list_free, eina_list_append, eina_stringshare_del
 from efl.evas cimport Eina_List, Eina_Bool, Evas_Object, Evas_Font_Size, \
diff --git a/efl/elementary/systray.pxi b/efl/elementary/systray.pxi
index 94896fd..267eecd 100644
--- a/efl/elementary/systray.pxi
+++ b/efl/elementary/systray.pxi
@@ -26,7 +26,7 @@ cdef class Systray(Eo):
 """
 
 def __init__(self, Eo parent not None, *args, **kwargs):
-cdef cEo *obj = eo_add(elm_systray_class_get(), parent.obj)
+cdef cEo *obj = efl_add(elm_systray_class_get(), parent.obj)
 self._set_obj(obj)
 self._set_properties_from_keyword_args(kwargs)
 
@@ -108,13 +108,13 @@ cdef class Systray(Eo):
 elm_obj_systray_menu_set(self.obj, value.obj)
 
 def __get__(self):
-return object_from_instance(elm_obj_systray_menu_get(self.obj))
+return object_from_instance(elm_obj_systray_menu_get(self.obj))
 
 def menu_set(self, Eo value):
 elm_obj_systray_menu_set(self.obj, value.obj)
 
 def menu_get(self):
-return object_from_instance(elm_obj_systray_menu_get(self.obj))
+return object_from_instance(elm_obj_systray_menu_get(self.obj))
 
 property att_icon_name:
 """The name of the attention icon to be used by the Status Notifier 
Item.
diff --git a/efl/elementary/systray_cdef.pxi b/efl/elementary/systray_cdef.pxi
index 759a54d..3768c7c 100644
--- a/efl/elementary/systray_cdef.pxi
+++ b/efl/elementary/systray_cdef.pxi
@@ -4,7 +4,7 @@ cdef extern from "Elementary.h":
 
 ctypedef cEo Elm_Systray
 
-const Eo_Class *elm_systray_class_get()
+const Efl_Class *elm_systray_class_get()
 
 void  elm_obj_systray_id_set(cEo *obj, const char *id)
 const char * elm_obj_systray_id_get(const cEo *obj)
diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx
index bc559e8..4880e07 100644
--- a/efl/eo/efl.eo.pyx
+++ b/efl/eo/efl.eo.pyx
@@ -36,15 +36,15 @@ from efl.eina cimport Eina_Bool, \
 Eina_Hash, eina_hash_string_superfast_new, eina_hash_add, eina_hash_del, \
 eina_hash_find, EINA_LOG_DOM_DBG, EINA_LOG_DOM_INFO, \
 Eina_Iterator, eina_iterator_next, eina_iterator_free
-from efl.c_eo cimport Eo as cEo, eo_init, eo_shutdown, eo_del, \
-eo_class_name_get, eo_class_get, eo_base_class_get,\
-eo_key_data_set, eo_key_data_get, \
-eo_event_callback_add, eo_event_callback_del, EO_EVENT_DEL, \
-eo_parent_get, eo_parent_set, Eo_Event_Description, \
-eo_event_freeze, eo_event_thaw, eo_event_freeze_count_get, \
-eo_event_global_freeze, eo_event_global_thaw, \
-eo_event_global_freeze_count_get, eo_event_callback_stop, \
-eo_children_iterator_new, Eo_Event
+from efl.c_eo cimport Eo as cEo, efl_object_init, efl_object_shutdown, 
efl_del, \
+efl_class_name_get, efl_class_get, efl_object_class_get,\
+efl_key_data_set, efl_key_data_get, \
+efl_event_callback_add, efl_event_callback_del, EFL_EVENT_DEL, \
+efl_parent_get, efl_parent_set, Efl_Event_Description, \
+efl_event_freeze, efl_event_thaw, efl_event_freeze_count_get, \
+efl_event_global_freeze, efl_event_global_thaw, \
+efl_event_global_freeze_count_get, efl_event_callback_stop, \
+efl_children_iterator_new, Eo_Event
 
 from efl.utils.logger cimport add_logger
 
@@ -61,23 +61,23 @@ import atexit
 
 def init():
 EINA_LOG_DOM_INFO(PY_EFL_EO_LOG_DOMAIN, "Initializing efl.eo", NULL)
-return eo_init()
+return efl_object_init()
 
 def shutdown():
 EINA_LOG_DOM_INFO(PY_EFL_EO_LOG_DOMAIN, "Shutting down efl.eo", NULL)
-return eo_shutdown()
+return efl_object_shutdown()
 
 init()
 atexit.register(shutdown)
 
 def event_global_freeze_count_get():
-return eo_event_global_freeze_count_get(eo_base_class_get())
+return efl_event_global_freeze_count_get(efl_object_class_g

[EGIT] [bindings/python/python-efl] master 01/01: Evas.Smart: Store event string in the spec to ensure it doesn't get decreffed

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=f652b6e18f17e17ef67c5086f1a09944f8dd033f

commit f652b6e18f17e17ef67c5086f1a09944f8dd033f
Author: Kai Huuhko 
Date:   Tue Aug 16 22:56:16 2016 +0300

Evas.Smart: Store event string in the spec to ensure it doesn't get 
decreffed

This fixes event string corruption and segfault in epymc
---
 efl/evas/efl.evas_object_smart.pxi | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index e3aae3b..2e71f66 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -381,6 +381,7 @@ cdef void _smart_object_member_del(Evas_Object *o, 
Evas_Object *clip) with gil:
 cdef class _SmartCb:
 cdef:
 SmartObject obj
+bytes event
 object(*event_conv)(void*)
 uintptr_t conv
 object func
@@ -873,6 +874,7 @@ cdef class SmartObject(Object):
 
 spec = _SmartCb.__new__(_SmartCb)
 spec.obj = self
+spec.event = event
 spec.event_conv = event_conv
 spec.func = func
 spec.args = args
@@ -881,9 +883,9 @@ cdef class SmartObject(Object):
 lst = self._smart_callback_specs.setdefault(event, [])
 if not lst:
 evas_object_smart_callback_add(self.obj,
-event,
+spec.event,
 _smart_callback,
-event
+spec.event
 )
 lst.append(spec)
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: tests: Fix edje decorators test

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=fdab8ed5b6ba8a595e80b0e159c9ff7884db7a5e

commit fdab8ed5b6ba8a595e80b0e159c9ff7884db7a5e
Author: Kai Huuhko 
Date:   Tue Aug 16 21:51:17 2016 +0300

tests: Fix edje decorators test

Commit dd584b9f79ec41b53ca620ae534fcf84f12e30a9 fixed bad behaviour in edje 
entry.

Our test was picking up the "changed" and "cursor,changed" signals emitted 
by edje entry
when its text was set to "" on creation. Raster changed this behaviour, 
removing the
emissions, so let's do the same in our test and add some future proofing as 
well.

Fixes T4374
---
 tests/edje/test_05_decorators.py | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/tests/edje/test_05_decorators.py b/tests/edje/test_05_decorators.py
index 2a09dea..1a8fbfe 100644
--- a/tests/edje/test_05_decorators.py
+++ b/tests/edje/test_05_decorators.py
@@ -14,7 +14,7 @@ theme_file = os.path.join(theme_path, "theme.edj")
 
 
 expected_signals = ["edje,language,none", "edje,state,ltr", "load",
-"edje,state,ltr", "resize", "cursor,changed", "changed",
+"edje,state,ltr", "resize",
 "emit,message", "emit,message"]
 expected_signals2 = ["load", "resize"]
 expected_messages = [33, 33]
@@ -28,7 +28,8 @@ class MyEdje(Edje):
 
 @edje.on_signal("*", "*")
 def cb_signal_all(self, emission, source):
-expected_signals.remove(emission)
+if source == "" or source == "edje":
+expected_signals.remove(emission)
 
 @edje.on_signal("load", "*")
 @edje.on_signal("resize", "*")
@@ -50,13 +51,16 @@ class TestEdjeDecoratedCallbacks(unittest.TestCase):
   size=(400, 500),
   viewport=(0, 0, 400, 500))
 self.canvas.engine_info_set(self.canvas.engine_info_get())
+self.o = MyEdje(self.canvas)
+self.assertIsInstance(self.o, Edje)
 
 def tearDown(self):
+self.o.delete()
+self.assertTrue(self.o.is_deleted())
 self.canvas.delete()
 
 def testDecorators(self):
-o = MyEdje(self.canvas)
-self.assertIsInstance(o, Edje)
+o = self.o
 
 # this should trigger text_change, two times
 ecore.Timer(0.1, lambda: o.part_text_set("label", "asd"))
@@ -76,9 +80,6 @@ class TestEdjeDecoratedCallbacks(unittest.TestCase):
 self.assertEqual(expected_messages, [])
 self.assertEqual(expected_text_parts, [])
 
-o.delete()
-self.assertTrue(o.is_deleted())
-
 
 if __name__ == '__main__':
 formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")

-- 




[EGIT] [apps/epour] master 02/04: Update TODO

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=8431b94e7fd1f68018c2cadde88335c68ea14e53

commit 8431b94e7fd1f68018c2cadde88335c68ea14e53
Author: Kai Huuhko 
Date:   Tue Aug 16 12:37:47 2016 +0300

Update TODO
---
 TODO | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/TODO b/TODO
index 463bb03..15f87f1 100644
--- a/TODO
+++ b/TODO
@@ -4,14 +4,11 @@ Torrent-handle controls/options:
   http://libtorrent.org/reference-Core.html#torrent_handle
  ☐ Torrent properties
./epour/gui/TorrentProps.py
-   ☐ set_tracker_login()
☐ trackers() replace_trackers() add_tracker()
☐ add_url_seed() remove_url_seed() url_seeds()
☐ add_http_seed() remove_http_seed() http_seeds()
☐ set_priority() (status.priority)
☐ use_interface()
-   ☐ get_download_queue()
- ?
☐ get_peer_info()
  ?
☐ set_ssl_certificate()
@@ -37,8 +34,8 @@ Misc:
./epour/gui/__init__.py>TorrentSelector
Remake this feature
  ☐ Moving finished torrents to a different folder
-   ☐ Individual torrent move when finished
- Can this setting be saved to torrent dicts user data?
+   ☐ Individual torrents
+   ✔ Session @done (16-08-11 01:15)
  ✔ Save torrent & resume data periodically @done (16-07-30 08:05)
Will this accomplish anything?
http://libtorrent.org/reference-Core.html#save_resume_data()

-- 




[EGIT] [apps/epour] master 01/04: Lower libtorrent required version

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=e88b6b692e1783f5d314eacf3a2833a11fd05336

commit e88b6b692e1783f5d314eacf3a2833a11fd05336
Author: Kai Huuhko 
Date:   Tue Aug 16 12:37:02 2016 +0300

Lower libtorrent required version
---
 README   | 2 +-
 setup.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README b/README
index dd4a30a..18af092 100644
--- a/README
+++ b/README
@@ -2,7 +2,7 @@
 REQUIREMENTS
 
 
-* libtorrent-rasterbar 1.2.0 or later, currently tested and developed with
+* libtorrent-rasterbar 1.1.0 or later, currently tested and developed with
   version 1.2.0
 
 https://libtorrent.org/
diff --git a/setup.py b/setup.py
index 83f61cb..205926a 100755
--- a/setup.py
+++ b/setup.py
@@ -24,7 +24,7 @@ auto.setup(
 license='GNU GPL',
 platforms='linux',
 requires=[
-'libtorrent (>=1.0)',
+'libtorrent (>=1.1)',
 'efl',
 'xdg',
 'dbus',

-- 




[EGIT] [apps/epour] master 03/04: Update valid options and strings in TorrentSelector

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=194b1815c8739bba79e9ff6bb5e6a513c5ab4d3a

commit 194b1815c8739bba79e9ff6bb5e6a513c5ab4d3a
Author: Kai Huuhko 
Date:   Tue Aug 16 12:38:36 2016 +0300

Update valid options and strings in TorrentSelector
---
 epour/gui/TorrentSelector.py |  95 +
 po/epour.pot | 469 ++-
 2 files changed, 241 insertions(+), 323 deletions(-)

diff --git a/epour/gui/TorrentSelector.py b/epour/gui/TorrentSelector.py
index ab19d48..59c1dab 100644
--- a/epour/gui/TorrentSelector.py
+++ b/epour/gui/TorrentSelector.py
@@ -59,20 +59,15 @@ class TorrentSelector(StandardWindow):
 
 names = {
 1: _("Seed Mode"),
-2: "Override Resume Data",
-4: "Upload Mode",
 8: _("Share Mode"),
 16: _("Apply IP Filter"),
-32: "Start Paused",
-64: "Auto Managed",
+32: _("Start Paused"),
 128: _("Duplicate Is Error"),
-256: "Merge Resume Trackers",
-512: "Updates Subscribe",
 1024: _("Super Seeding"),
 2048: _("Sequential Download"),
-4096: _("Use Resume Save Path"),
 }
 
+
 tooltips = {
 1: utf8_to_markup(_(
 
@@ -90,35 +85,6 @@ Setting Seed Mode on a torrent without metadata (a .torrent
 file) is a no-op and will be ignored.'''
 
 )),
-2: utf8_to_markup(
-
-'''If Override Resume Data is set, flags set for this torrent in this
-add_torrent_params object will take precedence over whatever states
-are saved in the resume data. For instance, the paused,
-auto_managed, sequential_download, seed_mode, super_seeding,
-max_uploads, max_connections, upload_limit and download_limit are
-all affected by this flag. The intention of this flag is to have
-any field in add_torrent_params configuring the torrent override
-the corresponding configuration from the resume file, with the one
-exception of save resume data, which has its own flag (for historic
-reasons).'''
-
-),
-4: utf8_to_markup(
-
-'''If Upload Mode is set, the torrent will be initialized in upload-
-mode, which means it will not make any piece requests. This state
-is typically entered on disk I/O errors, and if the torrent is also
-auto managed, it will be taken out of this state periodically. This
-mode can be used to avoid race conditions when adjusting priorities
-of pieces before allowing the torrent to start downloading.
-
-If the torrent is auto-managed, the torrent will eventually be
-taken out of upload-mode, regardless of how it got there. If it's
-important to manually control when the torrent leaves upload mode,
-don't make it auto managed.'''
-
-),
 8: utf8_to_markup(_(
 
 '''Determines if the torrent should be added in share mode or not.
@@ -149,7 +115,7 @@ torrents needs to be excempt for some reason, being an 
auto-update
 torrent for instance.'''
 
 )),
-32: utf8_to_markup(
+32: utf8_to_markup(_(
 
 '''Specifies whether or not the torrent is to be started in a paused
 state. I.e. it won't connect to the tracker or any of the peers
@@ -157,40 +123,7 @@ until it's resumed. This is typically a good way of 
avoiding race
 conditions when setting configuration options on torrents before
 starting them.'''
 
-),
-64: utf8_to_markup(
-
-'''If the torrent is auto-managed, the torrent may be resumed at any
-point, regardless of how it paused. If it's important to manually
-control when the torrent is paused and resumed, don't make it auto
-managed.
-
-If auto-managed, the torrent will be queued, started and seeded
-automatically by libtorrent. When this is set, the torrent should
-also be started as paused. The default queue order is the order the
-torrents were added. They are all downloaded in that order. For
-more details, see queuing.
-
-If you pass in resume data, the auto-managed state of the torrent
-when the resume data was saved will override the auto-managed state
-you pass in here. You can override this by setting
-Override Resume Data.'''
-
-),
-# 128: _(""),
-256: utf8_to_markup(
-
-'''Defaults to off and specifies whether tracker URLs loaded from
-resume data should be added to the trackers in the torrent or
-replace the trackers.'''
-
-),
-512: utf8_to_markup(
-
-'''On by default and means that this torrent will be part of state
-updates when calling post_torrent_updates().'''
-
-),
+)),
 1024: utf8

[EGIT] [apps/epour] master 04/04: Add back handling of torrent paused/resumed

2016-08-16 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=65a35cf741cf2dcbe4752b134cdef9820d29b072

commit 65a35cf741cf2dcbe4752b134cdef9820d29b072
Author: Kai Huuhko 
Date:   Tue Aug 16 12:39:28 2016 +0300

Add back handling of torrent paused/resumed
---
 epour/gui/__init__.py | 30 +++---
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index cf31d1b..277d776 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -182,23 +182,31 @@ class MainInterface(object):
 def torrent_removed_cb(a):
 self.remove_torrent_item(str(a.info_hash))
 
-# def torrent_update_cb(a):
-# self.remove_torrent_item(str(a.old_ih))
-# new_h = self._session.find_torrent(str(a.new_ih))
-# self.add_torrent_item(new_h)
-
 session.alert_manager.callback_add(
 "torrent_added_alert", torrent_added_cb)
 session.alert_manager.callback_add(
 "torrent_removed_alert", torrent_removed_cb)
-# session.alert_manager.callback_add(
-# "torrent_update_alert", torrent_update_cb)
 
-# def torrent_paused_cb(a):
-# self.update_icon(a.handle)
+def torrent_paused_resumed_cb(a):
+h = a.handle
+if not h.is_valid():
+log.debug("State changed for invalid handle.")
+return
+
+info_hash = str(h.info_hash())
+if info_hash not in self.torrentitems:
+log.debug("%s state changed but not in list", str(info_hash))
+return
+
+torrent = self._session.torrents[info_hash]
+torrent.state = h.status(0).state
+
+self.torrentitems[info_hash].fields_update(
+"elm.swallow.icon", ELM_GENLIST_ITEM_FIELD_CONTENT
+)
 
-# for a_name in "torrent_paused_alert", "torrent_resumed_alert":
-# session.alert_manager.callback_add(a_name, torrent_paused_cb)
+for a_name in "torrent_paused_alert", "torrent_resumed_alert":
+session.alert_manager.callback_add(a_name, 
torrent_paused_resumed_cb)
 
 def state_changed_cb(a):
 h = a.handle

-- 




[EGIT] [bindings/python/python-efl] master 01/01: setup.py: Blacklist Cython 0.24

2016-08-13 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=c955d488f9dd0a846531f0a4cef37183fe952022

commit c955d488f9dd0a846531f0a4cef37183fe952022
Author: Kai Huuhko 
Date:   Sun Aug 14 04:41:11 2016 +0300

setup.py: Blacklist Cython 0.24
---
 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index fc784f4..ff9547a 100755
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ VERSION = "%d.%d" % (vers[0], vers[1] if vers[2] < 99 else 
vers[1] + 1)
 
 # dependencies
 CYTHON_MIN_VERSION = "0.21"
-CYTHON_BLACKLIST = ("0.23")
+CYTHON_BLACKLIST = ("0.23", "0.24")
 EFL_MIN_VER = RELEASE
 ELM_MIN_VER = RELEASE
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: setup.py: Check that pregenerated files are available when requested

2016-08-13 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=a575effa6b0bb298b4342e52147feb44970a6c3c

commit a575effa6b0bb298b4342e52147feb44970a6c3c
Author: Kai Huuhko 
Date:   Sun Aug 14 04:27:45 2016 +0300

setup.py: Check that pregenerated files are available when requested
---
 setup.py | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index 2cff90f..fc784f4 100755
--- a/setup.py
+++ b/setup.py
@@ -190,7 +190,13 @@ class Test(Command):
 # === use cython or pre-generated C files ===
 USE_CYTHON = False
 if os.getenv("DISABLE_CYTHON") is not None:
-USE_CYTHON = False
+if os.path.exists(os.path.join(script_path, "efl/eo/efl.eo.c")):
+USE_CYTHON = False
+else:
+sys.exit(
+"You have requested to use pregenerated files with 
DISABLE_CYTHON\n"
+"but the files are not available!\n"
+"Unset DISABLE_CYTHON from your build environment and try again.")
 elif os.getenv("ENABLE_CYTHON") is not None:
 USE_CYTHON = True
 elif not os.path.exists(os.path.join(script_path, "efl/eo/efl.eo.c")):

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Bump copyright year

2016-08-12 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=54adcd9970e4a4eb4d78f10e1083230f5d3d5c93

commit 54adcd9970e4a4eb4d78f10e1083230f5d3d5c93
Author: Kai Huuhko 
Date:   Sat Aug 13 01:13:30 2016 +0300

Bump copyright year
---
 efl/__init__.py| 2 +-
 efl/dbus_mainloop/dbus_mainloop.pyx| 2 +-
 efl/dbus_mainloop/e_dbus.c | 2 +-
 efl/dbus_mainloop/e_dbus.h | 2 +-
 efl/ecore/efl.ecore.pyx| 2 +-
 efl/ecore/efl.ecore_animator.pxi   | 2 +-
 efl/ecore/efl.ecore_events.pxi | 2 +-
 efl/ecore/efl.ecore_exe.pxi| 2 +-
 efl/ecore/efl.ecore_fd_handler.pxi | 2 +-
 efl/ecore/efl.ecore_file_download.pxi  | 2 +-
 efl/ecore/efl.ecore_file_monitor.pxi   | 2 +-
 efl/ecore/efl.ecore_idler.pxi  | 2 +-
 efl/ecore/efl.ecore_poller.pxi | 2 +-
 efl/ecore/efl.ecore_timer.pxi  | 2 +-
 efl/ecore_con/efl.ecore_con.pxd| 2 +-
 efl/ecore_con/efl.ecore_con.pyx| 2 +-
 efl/ecore_con/efl.ecore_con_lookup.pxi | 2 +-
 efl/ecore_con/efl.ecore_con_url.pxi| 2 +-
 efl/ecore_input/efl.ecore_input.pxd| 2 +-
 efl/ecore_input/efl.ecore_input.pyx| 2 +-
 efl/ecore_input/efl.ecore_input_events.pxi | 2 +-
 efl/ecore_x/efl.ecore_x.pxd| 2 +-
 efl/ecore_x/efl.ecore_x.pyx| 2 +-
 efl/ecore_x/efl.ecore_x_events.pxi | 2 +-
 efl/ecore_x/efl.ecore_x_window.pxi | 2 +-
 efl/edje/efl.edje.pyx  | 2 +-
 efl/edje/efl.edje_edit.pyx | 2 +-
 efl/edje/efl.edje_edit_group.pxi   | 2 +-
 efl/edje/efl.edje_edit_part.pxi| 2 +-
 efl/edje/efl.edje_edit_part_state.pxi  | 2 +-
 efl/edje/efl.edje_edit_program.pxi | 2 +-
 efl/edje/efl.edje_external.pxi | 2 +-
 efl/edje/efl.edje_message.pxi  | 2 +-
 efl/edje/efl.edje_object.pxi   | 2 +-
 efl/elementary/__init__.py | 2 +-
 efl/elementary/__init__.pyx| 2 +-
 efl/elementary/access.pyx  | 2 +-
 efl/elementary/actionslider.pxi| 2 +-
 efl/elementary/background.pxi  | 2 +-
 efl/elementary/box.pxi | 2 +-
 efl/elementary/bubble.pxi  | 2 +-
 efl/elementary/button.pxi  | 2 +-
 efl/elementary/calendar.pxi| 2 +-
 efl/elementary/check.pxi   | 2 +-
 efl/elementary/clock.pxi   | 2 +-
 efl/elementary/colorselector.pxi   | 2 +-
 efl/elementary/combobox.pxi| 2 +-
 efl/elementary/configuration.pxi   | 2 +-
 efl/elementary/conformant.pxi  | 2 +-
 efl/elementary/ctxpopup.pxi| 2 +-
 efl/elementary/datetime.pxi| 2 +-
 efl/elementary/dayselector.pxi | 2 +-
 efl/elementary/diskselector.pxi| 2 +-
 efl/elementary/entry.pxi   | 2 +-
 efl/elementary/fileselector.pxi| 2 +-
 efl/elementary/fileselector_button.pxi | 2 +-
 efl/elementary/fileselector_entry.pxi  | 2 +-
 efl/elementary/flip.pxi| 2 +-
 efl/elementary/flipselector.pxi| 2 +-
 efl/elementary/frame.pxi   | 2 +-
 efl/elementary/gengrid.pxi | 2 +-
 efl/elementary/genlist.pxi | 2 +-
 efl/elementary/gesture_layer.pxi   | 2 +-
 efl/elementary/glview.pyx  | 2 +-
 efl/elementary/grid.pxi| 2 +-
 efl/elementary/hover.pxi   | 2 +-
 efl/elementary/hoversel.pxi| 2 +-
 efl/elementary/icon.pxi| 2 +-
 efl/elementary/image.pxi   | 2 +-
 efl/elementary/index.pxi   | 2 +-
 efl/elementary/innerwindow.pxi | 2 +-
 efl/elementary/label.pxi   | 2 +-
 efl/elementary/layout.pxi  | 2 +-
 efl/elementary/list.pxi| 2 +-
 efl/elementary/map.pxi | 2 +-
 efl/elementary/mapbuf.pxi  | 2 +-
 efl/elementary/menu.pxi| 2 +-
 efl/elementary/multibuttonentry.pxi| 2 +-
 efl/elementary/naviframe.pxi   | 2 +-
 efl/elementary/need.pxi| 2 +-
 efl/elementary/notify.pxi  | 2 +-
 efl/elementary/object.pxi  | 2 +-
 efl/elementary/object_cdef.pxi | 2 +-
 efl/elementary/object_item.pxi | 2 +-
 efl/elementary/panel.pxi   | 2 +-
 efl/elementary/panes.pxi   | 2 +-
 efl/elementary/photo.pxi   | 2 +-
 efl/elementary/photocam.pxi| 2 +-
 efl/elementary/plug.pxi| 2 +-
 efl/elementary/popup.pxi   | 2 +-
 efl/elementary/progressbar.pxi | 2 +-
 efl/elementary/radio.pxi   | 2 +-
 efl/elementary

[EGIT] [bindings/python/python-efl] master 01/01: Elm.Photo: Add callback prints to example

2016-08-12 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=96ae57ed6ac2545a1cfc32a43791a012d8a13ae5

commit 96ae57ed6ac2545a1cfc32a43791a012d8a13ae5
Author: Kai Huuhko 
Date:   Fri Aug 12 23:56:16 2016 +0300

Elm.Photo: Add callback prints to example
---
 examples/elementary/test_photo.py | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/examples/elementary/test_photo.py 
b/examples/elementary/test_photo.py
index dbf9fbb..e835813 100644
--- a/examples/elementary/test_photo.py
+++ b/examples/elementary/test_photo.py
@@ -25,6 +25,15 @@ images = ["panel_01.jpg",
   "sky_04.jpg",
   "wood_01.jpg"]
 
+def drag_start_cb(ph):
+print("drag start %r" % ph)
+
+def drag_end_cb(ph):
+print("drag end %r" % ph)
+
+def _clicked_cb(ph):
+print("clicked on %r" % ph)
+
 def photo_clicked(obj):
 win = StandardWindow("photo", "Photo test", autodel=True, size=(300, 300))
 if obj is None:
@@ -42,8 +51,10 @@ def photo_clicked(obj):
 n = 0
 for j in range(12):
 for i in range(12):
-ph = Photo(win, aspect_fixed=False, size=80, editable=True,
+ph = Photo(
+win, aspect_fixed=False, size=80, editable=True,
 size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH)
+ph.callback_clicked_add(_clicked_cb)
 name = os.path.join(img_path, images[n])
 n += 1
 if n >= 9: n = 0
@@ -51,6 +62,8 @@ def photo_clicked(obj):
 ph.thumb = name
 else:
 ph.file = name
+ph.callback_drag_start_add(drag_start_cb)
+ph.callback_drag_end_add(drag_end_cb)
 if n in [2, 3]:
 ph.fill_inside = True
 ph.style = "shadow"

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Partial revert of ecd93319ee011ca7d01f6ed1481859239b8f8c33

2016-08-11 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=30c2ce90c31d46c58a42a89e5189d19acc85be64

commit 30c2ce90c31d46c58a42a89e5189d19acc85be64
Author: Kai Huuhko 
Date:   Fri Aug 12 05:51:25 2016 +0300

Partial revert of ecd93319ee011ca7d01f6ed1481859239b8f8c33

This API was never meant to be exposed.
---
 efl/elementary/image.pxi   | 98 --
 efl/elementary/image_cdef.pxi  |  9 
 tests/elementary/test_02_image_icon.py | 12 -
 3 files changed, 119 deletions(-)

diff --git a/efl/elementary/image.pxi b/efl/elementary/image.pxi
index 6b36203..5487d80 100644
--- a/efl/elementary/image.pxi
+++ b/efl/elementary/image.pxi
@@ -375,24 +375,6 @@ cdef class Image(Object):
 PyBuffer_Release(&view)
 return bool(ret)
 
-property scale:
-"""Control the scale of the object's image.
-
-:type: float
-
-.. versionadded:: 1.18
-
-"""
-def __set__(self, scale):
-elm_image_scale_set(self.obj, scale)
-def __get__(self):
-return elm_image_scale_get(self.obj)
-
-def scale_set(self, scale):
-elm_image_scale_set(self.obj, scale)
-def scale_get(self):
-return elm_image_scale_get(self.obj)
-
 property fill_outside:
 """Whether the image fills the entire object area, when keeping the
 aspect ratio.
@@ -488,56 +470,6 @@ cdef class Image(Object):
 elm_image_object_size_get(self.obj, &width, &height)
 return (width, height)
 
-# TODO: API break, these were renamed to scale_up/down in 1.18 development
-#   but compatibility funcs were forgotten.
-#   Add them in once this gets fixed. See phab T4342
-#
-#property resize_down:
-#"""Control whether the object's image can be resized to a size smaller
-#than the original one.
-
-#:type: bool
-
-#.. versionadded:: 1.18
-
-#"""
-#def __set__(self, bint resize_down):
-#elm_image_resize_down_set(self.obj, resize_down)
-#def __get__(self):
-#return bool(elm_image_resize_down_get(self.obj))
-
-#def resize_down_set(self, bint resize_down):
-#elm_image_resize_down_set(self.obj, resize_down)
-#def resize_down_get(self):
-#return bool(elm_image_resize_down_get(self.obj))
-
-#property resize_up:
-#"""Control whether the object's image can be resized to a size larger
-#than the original one.
-
-#:type: bool
-
-#.. versionadded:: 1.18
-
-#"""
-#def __set__(self, bint resize_up):
-#elm_image_resize_up_set(self.obj, resize_up)
-#def __get__(self):
-#return bool(elm_image_resize_up_get(self.obj))
-
-#def resize_up_set(self, bint resize_up):
-#elm_image_resize_up_set(self.obj, resize_up)
-#def resize_up_get(self):
-#return bool(elm_image_resize_up_get(self.obj))
-
-def sizing_evas(self):
-"""Re-evaluate the object's final geometry.
-
-.. versionadded:: 1.18
-
-"""
-elm_image_sizing_eval(self.obj)
-
 property resizable:
 """Whether the object is (up/down) resizable.
 
@@ -585,36 +517,6 @@ cdef class Image(Object):
 def no_scale_get(self):
 return bool(elm_image_no_scale_get(self.obj))
 
-property fill_inside:
-"""Whether the whole image is inside entire object area, when keeping 
the
-aspect ratio.
-
-If the image should keep its aspect ratio when the object resized to
-another aspect ratio, there are two possibilities to scale the image:
-keep the entire image inside the limits of height and width of the
-object (*fill_inside* is *True*) or let the extra width or height go
-outside of the object, and the image will fill the entire object
-(*fill_outside* is *False*).
-
-.. note:: This option will have no effect if :py:attr:`aspect_fixed`
-is set to *False*.
-
-:type: bool
-
-.. versionadded:: 1.18
-
-"""
-def __get__(self):
-return bool(elm_image_fill_inside_get(self.obj))
-
-def __set__(self, fill_inside):
-elm_image_fill_inside_set(self.obj, fill_inside)
-
-def fill_inside_set(self, fill_inside):
-elm_image_fill_inside_set(self.obj, fill_inside)
-def fill_inside_get(self):
-return bool(elm_image_fill_inside_get(self.obj))
-
 property aspect_fixed:
 """Whether the original aspect ratio of the image should be kept on
 resize.
diff --git a/efl/elementary/image_cdef.pxi b/efl/elementary/image_cdef.pxi
index ac87121..4

[EGIT] [bindings/python/python-efl] master 02/02: Elm.List: Sync with C API

2016-08-11 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=55039295f2809adf7ec52563ed72d5341a793adf

commit 55039295f2809adf7ec52563ed72d5341a793adf
Author: Kai Huuhko 
Date:   Fri Aug 12 02:46:30 2016 +0300

Elm.List: Sync with C API
---
 doc/elementary/elementary.rst  | 20 +++-
 efl/elementary/elementary_cdef.pxi |  7 +++
 efl/elementary/list.pxi| 30 ++
 efl/elementary/list_cdef.pxi   |  2 ++
 4 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/doc/elementary/elementary.rst b/doc/elementary/elementary.rst
index f1a81a3..2f2c987 100644
--- a/doc/elementary/elementary.rst
+++ b/doc/elementary/elementary.rst
@@ -118,7 +118,7 @@ Quit policy types
 .. data:: ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN
 
 Quit when the application's last window is hidden
-
+
 .. versionadded:: 1.15
 
 
@@ -158,6 +158,24 @@ Possible values for the #ELM_POLICY_THROTTLE policy.
 Never throttle when windows are all hidden, regardless of config settings.
 
 
+.. _Elm_Object_Multi_Select_Mode:
+
+Object multi select policy values
+-
+
+Possible values for the #ELM_OBJECT_MULTI_SELECT_MODE policy.
+
+.. versionadded:: 1.18
+
+.. data:: ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
+
+Default multiple select mode.
+
+.. data:: ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
+
+Disallow mutiple selection when clicked without control key pressed.
+
+
 .. _Elm_Process_State:
 
 Elm_Process_State
diff --git a/efl/elementary/elementary_cdef.pxi 
b/efl/elementary/elementary_cdef.pxi
index bf56d09..e2fe757 100644
--- a/efl/elementary/elementary_cdef.pxi
+++ b/efl/elementary/elementary_cdef.pxi
@@ -83,6 +83,13 @@ cdef extern from "Elementary.h":
 ctypedef enum Elm_Policy_Throttle:
 pass
 
+cpdef enum Elm_Object_Multi_Select_Mode:
+ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT
+ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
+ELM_OBJECT_MULTI_SELECT_MODE_MAX
+ctypedef enum Elm_Object_Multi_Select_Mode:
+pass
+
 cpdef enum Elm_Sys_Notify_Urgency:
 ELM_SYS_NOTIFY_URGENCY_LOW
 ELM_SYS_NOTIFY_URGENCY_NORMAL
diff --git a/efl/elementary/list.pxi b/efl/elementary/list.pxi
index a76abcb..8507ddd 100644
--- a/efl/elementary/list.pxi
+++ b/efl/elementary/list.pxi
@@ -467,6 +467,36 @@ cdef class List(Object):
 def multi_select_get(self):
 return bool(elm_list_multi_select_get(self.obj))
 
+
+property multi_select_mode:
+"""Control the list multi select mode.
+
+- #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items 
whenever
+  each item is clicked.
+- #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only
+  one item will be selected although multi-selection is enabled, if 
clicked
+  without pressing control key. This mode is only available with
+  multi-selection.
+
+.. seealso:: :attr:`multi_select`
+
+:type: :ref:`Elm_Object_Multi_Select_Mode`
+
+.. versionadded:: 1.18
+
+"""
+def __set__(self, Elm_Object_Multi_Select_Mode mode):
+elm_list_multi_select_mode_set(self.obj, mode)
+
+def __get__(self):
+return elm_list_multi_select_mode_get(self.obj)
+
+def multi_select_mode_set(self, Elm_Object_Multi_Select_Mode mode):
+elm_list_multi_select_mode_set(self.obj, mode)
+
+def multi_select_mode_get(self):
+return elm_list_multi_select_mode_get(self.obj)
+
 property mode:
 """Which mode to use for the list object.
 
diff --git a/efl/elementary/list_cdef.pxi b/efl/elementary/list_cdef.pxi
index 843bb46..bdbf081 100644
--- a/efl/elementary/list_cdef.pxi
+++ b/efl/elementary/list_cdef.pxi
@@ -28,6 +28,8 @@ cdef extern from "Elementary.h":
 void elm_list_go(Evas_Object *obj)
 void elm_list_multi_select_set(Evas_Object *obj, 
Eina_Bool multi)
 Eina_Boolelm_list_multi_select_get(const Evas_Object *obj)
+void elm_list_multi_select_mode_set(Evas_Object *obj, 
Elm_Object_Multi_Select_Mode mode)
+Elm_Object_Multi_Select_Mode elm_list_multi_select_mode_get(const 
Evas_Object *obj)
 void elm_list_mode_set(Evas_Object *obj, Elm_List_Mode 
mode)
 Elm_List_Modeelm_list_mode_get(const Evas_Object *obj)
 void elm_list_horizontal_set(Evas_Object *obj, 
Eina_Bool horizontal)

-- 




[EGIT] [bindings/python/python-efl] master 01/02: api_coverage.py: Ignore systray

2016-08-11 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=ad2ead12f725229fc48ef6c810340b5db7db4df1

commit ad2ead12f725229fc48ef6c810340b5db7db4df1
Author: Kai Huuhko 
Date:   Fri Aug 12 02:43:49 2016 +0300

api_coverage.py: Ignore systray
---
 api_coverage.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/api_coverage.py b/api_coverage.py
index a0c988b..69da5f2 100755
--- a/api_coverage.py
+++ b/api_coverage.py
@@ -24,6 +24,7 @@ c_exclude_list = [
 "elm_access",  # Access disabled until 1.9
 "elm_config_access",  # Access disabled until 1.9
 "elm_object_item_access",  # Access disabled until 1.9
+"elm_systray",  # We currently have this in using Eo API
 ]
 c_excludes = "|".join(c_exclude_list)
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Elm.Image: Sync with C API

2016-08-11 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=ecd93319ee011ca7d01f6ed1481859239b8f8c33

commit ecd93319ee011ca7d01f6ed1481859239b8f8c33
Author: Kai Huuhko 
Date:   Thu Aug 11 22:02:19 2016 +0300

Elm.Image: Sync with C API
---
 efl/elementary/image.pxi   | 523 +
 efl/elementary/image_cdef.pxi  |  40 ++-
 tests/elementary/test_02_image_icon.py |  13 +
 3 files changed, 370 insertions(+), 206 deletions(-)

diff --git a/efl/elementary/image.pxi b/efl/elementary/image.pxi
index bb4341a..6b36203 100644
--- a/efl/elementary/image.pxi
+++ b/efl/elementary/image.pxi
@@ -90,47 +90,6 @@ cdef class Image(Object):
 self._set_obj(elm_image_add(parent.obj))
 self._set_properties_from_keyword_args(kwargs)
 
-def memfile_set(self, img, size, format=None, key=None):
-"""Set a location in memory to be used as an image object's source
-bitmap.
-
-This function is handy when the contents of an image file are
-mapped in memory, for example.
-
-The ``format`` string should be something like ``"png"``, ``"jpg"``,
-``"tga"``, ``"tiff"``, ``"bmp"`` etc, when provided. This improves
-the loader performance as it tries the "correct" loader first,
-before trying a range of other possible loaders until one succeeds.
-
-:return: ``True`` on success or ``False`` on error
-
-.. versionadded:: 1.14
-
-:param img: The binary data that will be used as image source, must
-support the buffer interface
-:param size: The size of binary data blob ``img``
-:param format: (Optional) expected format of ``img`` bytes
-:param key: Optional indexing key of ``img`` to be passed to the
-image loader (eg. if ``img`` is a memory-mapped EET file)
-
-"""
-cdef Py_buffer view
-cdef Eina_Bool ret
-
-if isinstance(format, unicode): format = PyUnicode_AsUTF8String(format)
-if isinstance(key, unicode): key = PyUnicode_AsUTF8String(key)
-
-PyObject_GetBuffer(img, &view, PyBUF_SIMPLE)
-
-ret = elm_image_memfile_set(self.obj,
-view.buf,
-size,
-format if format else NULL,
-key if key else NULL)
-
-PyBuffer_Release(&view)
-return bool(ret)
-
 property file:
 """The file (and edje group) that will be used as the image's source.
 
@@ -187,6 +146,77 @@ cdef class Image(Object):
 elm_image_file_get(self.obj, &filename, &group)
 return (_ctouni(filename), _ctouni(group))
 
+property prescale:
+"""The prescale size for the image
+
+This is the size for pixmap representation of the given image. It
+allows the image to be loaded already in the specified size,
+reducing the memory usage and load time when loading a big image
+with load size set to a smaller size.
+
+It's equivalent to the
+:py:attr:`efl.elementary.background.Background.load_size` property for 
bg.
+
+.. note:: this is just a hint, the real size of the pixmap may differ
+depending on the type of image being loaded, being bigger than
+requested.
+
+:type: int
+
+"""
+def __get__(self):
+return elm_image_prescale_get(self.obj)
+def __set__(self, size):
+elm_image_prescale_set(self.obj, size)
+
+def prescale_set(self, size):
+elm_image_prescale_set(self.obj, size)
+def prescale_get(self):
+return elm_image_prescale_get(self.obj)
+
+# TODO:
+#property mmap_file:
+#"""The file (and edje group) that will be used as the image's source.
+
+#.. note:: Setting this will trigger the Edje file case based on the
+#extension of the ``file`` string (expects ``".edj"``, for this
+#case).
+
+#.. note:: If you use animated gif image and create multiple image
+#objects with one gif image file, you should set the ``group``
+#differently for each object, else image objects will share one 
evas
+#image cache entry and you will get unwanted frames.
+
+#:type: unicode **file** or (unicode **file**, unicode **group**)
+#:raise RuntimeError: when setting the file fails
+
+#.. versionadded:: 1.18
+
+#"""
+#def __set__(self, value):
+#cdef Eina_File file_handle
+#if isinstance(value, tuple):
+#filename, group = value
+#else:
+#filename = v

[EGIT] [bindings/python/python-efl] master 01/01: Ecore: Include traceback with subprocess warning

2016-08-09 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=a73fdad5e1c786cfd26ddb39cc47c8e46930

commit a73fdad5e1c786cfd26ddb39cc47c8e46930
Author: Kai Huuhko 
Date:   Tue Aug 9 22:23:31 2016 +0300

Ecore: Include traceback with subprocess warning
---
 efl/ecore/efl.ecore.pyx | 1 +
 1 file changed, 1 insertion(+)

diff --git a/efl/ecore/efl.ecore.pyx b/efl/ecore/efl.ecore.pyx
index e2245bb..79e920d 100644
--- a/efl/ecore/efl.ecore.pyx
+++ b/efl/ecore/efl.ecore.pyx
@@ -363,6 +363,7 @@ def subprocess_warning(*a, **ka):
 Instead of using subprocess.Popen(), please consider using Ecore's
 Exe() class.
 """)
+traceback.print_stack()
 return _orig_subprocess(*a, **ka)
 
 if subprocess.Popen is not subprocess_warning:

-- 




[E-devel] Lekha release 0.2.1

2016-08-08 Thread Kai Huuhko
Lekha is a simple PDF viewer.

Here's a release that fixes issues with 0.2.0, mainly the scrollwheel
controlled panel silliness and loading of documents with no embedded
metadata.

  (sudo) pip install Lekha

or download the tarball from:

https://pypi.python.org/pypi/Lekha/0.2.1

and untar, cd Lekha-0.2.1, (sudo) python setup.py install

Dependencies:
 - Python 2/3
 - PyPDF2
 - pyxdg
 - python-efl >=1.14

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [bindings/python/python-efl] master 01/01: Revert "Remove NullHandler from C library logger"

2016-08-05 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=78c9fe21afa47e809d142a328e7dd38e191c97e5

commit 78c9fe21afa47e809d142a328e7dd38e191c97e5
Author: Kai Huuhko 
Date:   Fri Aug 5 19:43:28 2016 +0300

Revert "Remove NullHandler from C library logger"

This reverts commit bc8bac1f1ac7554ce8ad8e5e3c9858cb3c5f378e.
---
 efl/utils/logger.pyx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/efl/utils/logger.pyx b/efl/utils/logger.pyx
index 5e0a20a..7765e21 100644
--- a/efl/utils/logger.pyx
+++ b/efl/utils/logger.pyx
@@ -112,8 +112,8 @@ cdef object add_logger(object name):
 log.propagate = True
 log.setLevel(logging.WARNING)
 
-#if PY_VERSION_HEX >= 0x0207:
-#log.addHandler(logging.NullHandler())
+if PY_VERSION_HEX >= 0x0207:
+log.addHandler(logging.NullHandler())
 
 logging.setLoggerClass(logging.Logger)
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Logger: Fix unicode handling with message file and function string parts

2016-08-05 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=13ea0cbe1d12d64b88f6269a81c07fcc22fcbe3b

commit 13ea0cbe1d12d64b88f6269a81c07fcc22fcbe3b
Author: Kai Huuhko 
Date:   Fri Aug 5 19:29:19 2016 +0300

Logger: Fix unicode handling with message file and function string parts
---
 efl/utils/logger.pyx | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/efl/utils/logger.pyx b/efl/utils/logger.pyx
index 0fcdd53..5e0a20a 100644
--- a/efl/utils/logger.pyx
+++ b/efl/utils/logger.pyx
@@ -55,16 +55,18 @@ cdef void py_eina_log_print_cb(const Eina_Log_Domain *d, 
Eina_Log_Level level,
 const char *fmt, void *data, va_list args) with gil:
 
 cdef:
-unicode msg, name
+unicode msg, name, ufile, ufnc
 object rec, logger
 
 vsprintf(log_buf, fmt, args)
 
 msg = log_buf.decode('UTF-8', 'replace')
 name = d.name.decode('UTF-8', 'replace')
+ufile = file.decode('UTF-8', 'replace')
+ufnc = fnc.decode('UTF-8', 'replace')
 
 rec = logging.LogRecord(
-name, log_levels[level], file, line, msg, None, None, fnc)
+name, log_levels[level], ufile, line, msg, None, None, ufnc)
 logger = loggers.get(name, loggers["efl"])
 logger.handle(rec)
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Evas.Smart: Comment out a warning for an issue we can't fix

2016-08-05 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=f86234dd2570e8afa931e04602d9a2239bbff24f

commit f86234dd2570e8afa931e04602d9a2239bbff24f
Author: Kai Huuhko 
Date:   Fri Aug 5 18:56:29 2016 +0300

Evas.Smart: Comment out a warning for an issue we can't fix

When a smart event has event_info we need to convert it to a Python object.
We rely on the C library documentation to inform us when an event includes 
event_info
and assign a conversion function to the event handler based on this and 
pass the Python
object as an extra parameter to the callback. However when the 
documentation has omitted
this information we erroneously leave the extra parameter out, making the 
callbacks have
one less parameter, which our users rely on. Finding out the error after 
release is
useless since fixing it would mean breaking user callbacks.

This warning informed us at runtime when event_info was non-null but it's 
pretty much
useless so let's remove it.

Our smart callbacks should never have had two different signatures.
---
 efl/evas/efl.evas_object_smart.pxi | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index 0b5f1fe..5611c32 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -426,11 +426,11 @@ cdef void _smart_callback(void *data, Evas_Object *o, 
void *event_info) with gil
 except Exception:
 traceback.print_exc()
 elif event_info != NULL and spec.event_conv == NULL:
-EINA_LOG_DOM_WARN(
-PY_EFL_EVAS_LOG_DOMAIN,
-'event_info for event "%s" is not NULL and there is no 
event_conv!',
-event
-)
+#EINA_LOG_DOM_WARN(
+#PY_EFL_EVAS_LOG_DOMAIN,
+#'event_info for event "%s" is not NULL and there is no 
event_conv!',
+#event
+#)
 try:
 tmp_args = [spec.obj]
 tmp_args.extend(spec.args)

-- 




[EGIT] [apps/epour] master 01/01: Change internals to work with newer libtorrent versions

2016-08-04 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=0b1b72fcacd532d47eb0b47b1bb66e6bcad7c20a

commit 0b1b72fcacd532d47eb0b47b1bb66e6bcad7c20a
Author: Kai Huuhko 
Date:   Thu Aug 4 18:23:02 2016 +0300

Change internals to work with newer libtorrent versions

This will once again change the save format of the torrent list, hopefully 
for the last
time.
---
 README   |  23 +-
 TODO |   4 +-
 bin/epour|  12 +-
 epour/Epour.py   |  86 ++
 epour/gui/TorrentSelector.py |  63 ++--
 epour/gui/Widgets.py |  41 ++-
 epour/gui/__init__.py| 351 +++---
 epour/session.py | 683 +++
 po/epour.pot | 264 -
 9 files changed, 890 insertions(+), 637 deletions(-)

diff --git a/README b/README
index 007012d..dd4a30a 100644
--- a/README
+++ b/README
@@ -2,22 +2,18 @@
 REQUIREMENTS
 
 
-* libtorrent-rasterbar 1.0 or later, currently tested and developed with
-  version 1.0.5
+* libtorrent-rasterbar 1.2.0 or later, currently tested and developed with
+  version 1.2.0
 
-http://www.libtorrent.org/
+https://libtorrent.org/
 
-* Enlightenment Foundation Libraries 1.8 or later
+* Python-EFL 1.15 or later
 
 https://www.enlightenment.org/download
 
-* Python-EFL 1.8 or later
+* Python 3.2 or later
 
-https://www.enlightenment.org/download
-
-* Python 2.6 or later, 3.2 or later
-
-http://www.python.org/
+https://www.python.org/
 
 * python-distutils-extra
 
@@ -25,11 +21,11 @@ REQUIREMENTS
 
 * dbus-python
 
-http://www.freedesktop.org/wiki/Software/DBusBindings/#dbus-python
+https://www.freedesktop.org/wiki/Software/DBusBindings/#dbus-python
 
 * python-xdg / pyxdg
 
-http://www.freedesktop.org/wiki/Software/pyxdg/
+https://www.freedesktop.org/wiki/Software/pyxdg/
 
 ===
 INSTALL
@@ -43,5 +39,4 @@ CONTACT/BUGS
 
 Email:  kai.huu...@gmail.com
 Mailing list:   enlightenment-us...@lists.sourceforge.net
-Forums: http://forums.bodhilinux.com/index.php?/topic/7722-epour/
-Launchpad:  https://launchpad.net/epour
+Bugs:   https://phab.enlightenment.org/maniphest/ (set Tags-field to 
Epour)
diff --git a/TODO b/TODO
index 7179ed0..463bb03 100644
--- a/TODO
+++ b/TODO
@@ -39,7 +39,7 @@ Misc:
  ☐ Moving finished torrents to a different folder
☐ Individual torrent move when finished
  Can this setting be saved to torrent dicts user data?
- ☐ Save torrent & resume data periodically
+ ✔ Save torrent & resume data periodically @done (16-07-30 08:05)
Will this accomplish anything?
http://libtorrent.org/reference-Core.html#save_resume_data()
http://libtorrent.org/reference-Core.html#need_save_resume_data()
@@ -47,7 +47,7 @@ Misc:
  ☐ Total count of torrents in session status
  ☐ Local search function for torrents, files?
  ☐ Web search
- ☐ Handle switching between py2 <--> py3, messes up with pickled list of 
torrents
+ ✘ Handle switching between py2 <--> py3, messes up with pickled list of 
torrents @cancelled (16-07-30 08:15)
 File "/usr/bin/epour", line 7, in 
 app = Epour()
 File "/usr/lib/python2.7/dist-packages/epour/Epour.py", line 89, in 
__init__
diff --git a/bin/epour b/bin/epour
index 72519f8..1890371 100755
--- a/bin/epour
+++ b/bin/epour
@@ -1,10 +1,14 @@
-#!/usr/bin/python2
+#!/usr/bin/python
 
 import logging
 
 from epour.Epour import Epour
 
-app = Epour()
-app.gui.run()
-app.quit()
+epour = Epour()
+epour.gui.run_mainloop()
+try:
+epour.save_conf()
+except Exception:
+epour.log.exception("Saving conf failed")
+
 logging.shutdown()
diff --git a/epour/Epour.py b/epour/Epour.py
index 17cb8a4..9d28418 100644
--- a/epour/Epour.py
+++ b/epour/Epour.py
@@ -2,7 +2,7 @@
 #
 #  Epour - A bittorrent client using EFL and libtorrent
 #
-#  Copyright 2012-2014 Kai Huuhko 
+#  Copyright 2012-2016 Kai Huuhko 
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
@@ -27,8 +27,7 @@ parser.add_argument(
 '-v', '--verbose', action="count", help="max is -vvv")
 parser.add_argument(
 '--disable-add-dialog', action="store_true",
-help="Torrents to be added from arguments don't open a dialog"
-)
+help="Torrents to be added from arguments don't open a dialog")
 parser.add_argument(
 'torrents', nargs="*", help="file path, magnet uri, or info hash",
 metavar="TORRENT")
@@ -72,11 +71,13 @@ from .gui import MainInterface
 
 
 class Epour(object):
+
 def __init__(self):
 self.log = self.setup_log()
+self.log.debug("Logging started")
 self.conf = 

[EGIT] [bindings/python/python-efl] master 01/01: Remove NullHandler from C library logger

2016-08-04 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=bc8bac1f1ac7554ce8ad8e5e3c9858cb3c5f378e

commit bc8bac1f1ac7554ce8ad8e5e3c9858cb3c5f378e
Author: Kai Huuhko 
Date:   Thu Aug 4 14:28:23 2016 +0300

Remove NullHandler from C library logger

This makes py-efl spew out an error if your app hasn't been setup to handle 
the logging.

If you don't like this, complain to Dave.
---
 efl/utils/logger.pyx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/efl/utils/logger.pyx b/efl/utils/logger.pyx
index bad7aa5..55b3675 100644
--- a/efl/utils/logger.pyx
+++ b/efl/utils/logger.pyx
@@ -110,8 +110,8 @@ cdef object add_logger(object name):
 log.propagate = True
 log.setLevel(logging.WARNING)
 
-if PY_VERSION_HEX >= 0x0207:
-log.addHandler(logging.NullHandler())
+#if PY_VERSION_HEX >= 0x0207:
+#log.addHandler(logging.NullHandler())
 
 logging.setLoggerClass(logging.Logger)
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Add logging to the rest of the individual unit tests

2016-08-03 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=0916eae9ff7833ee7b88dda95873836fd9b7575c

commit 0916eae9ff7833ee7b88dda95873836fd9b7575c
Author: Kai Huuhko 
Date:   Wed Aug 3 14:47:42 2016 +0300

Add logging to the rest of the individual unit tests
---
 tests/dbus/00_run_all_tests.py | 7 +++
 tests/dbus/test_01_basics.py   | 7 +++
 tests/ecore/00_run_all_tests.py| 8 
 tests/ecore/test_01_timer.py   | 7 +++
 tests/ecore/test_02_animator.py| 7 +++
 tests/ecore/test_03_poller.py  | 7 +++
 tests/ecore/test_04_idler.py   | 7 +++
 tests/ecore/test_05_idle_enterer.py| 7 +++
 tests/ecore/test_06_idle_exiter.py | 7 +++
 tests/ecore/test_07_fd_handler.py  | 8 
 tests/ecore/test_08_exe.py | 7 +++
 tests/ecore/test_09_file_download.py   | 7 +++
 tests/ecore/test_10_file_monitor.py| 7 +++
 tests/ecore/test_11_con.py | 7 +++
 tests/edje/00_run_all_tests.py | 7 +++
 tests/edje/test_01_basics.py   | 7 +++
 tests/edje/test_02_object.py   | 7 +++
 tests/edje/test_03_external.py | 7 +++
 tests/edje/test_04_edit.py | 7 +++
 tests/edje/test_05_decorators.py   | 7 +++
 tests/elementary/00_run_all_tests.py   | 7 +++
 tests/elementary/test_01_basics.py | 7 +++
 tests/elementary/test_03_entry.py  | 7 +++
 tests/eo/00_run_all_tests.py   | 7 +++
 tests/eo/test_01_basics.py | 7 +++
 tests/eo/test_02_class_names.py| 9 +++--
 tests/evas/00_run_all_tests.py | 7 +++
 tests/evas/test_01_rect.py | 7 +++
 tests/evas/test_02_canvas.py   | 7 +++
 tests/evas/test_03_object.py   | 7 +++
 tests/evas/test_04_object_box.py   | 7 +++
 tests/evas/test_05_object_image.py | 7 +++
 tests/evas/test_06_object_smart.py | 7 +++
 tests/evas/test_07_object_line.py  | 7 +++
 tests/evas/test_08_object_polygon.py   | 7 +++
 tests/evas/test_09_object_text.py  | 7 +++
 tests/evas/test_10_object_textblock.py | 7 +++
 tests/evas/test_11_object_textgrid.py  | 7 +++
 38 files changed, 268 insertions(+), 2 deletions(-)

diff --git a/tests/dbus/00_run_all_tests.py b/tests/dbus/00_run_all_tests.py
index 24dd275..e0bd7c2 100644
--- a/tests/dbus/00_run_all_tests.py
+++ b/tests/dbus/00_run_all_tests.py
@@ -1,7 +1,14 @@
 #!/usr/bin/env python
 
 import unittest
+import logging
 
+formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")
+handler = logging.StreamHandler()
+handler.setFormatter(formatter)
+efllog = logging.getLogger("efl")
+efllog.addHandler(handler)
+efllog.setLevel(logging.DEBUG)
 
 loader = unittest.TestLoader()
 suite = loader.discover('.')
diff --git a/tests/dbus/test_01_basics.py b/tests/dbus/test_01_basics.py
index 183f5a9..72c2518 100644
--- a/tests/dbus/test_01_basics.py
+++ b/tests/dbus/test_01_basics.py
@@ -5,6 +5,7 @@ import dbus.service
 from efl.dbus_mainloop import DBusEcoreMainLoop
 from efl import ecore
 import unittest
+import logging
 
 
 class TestDBusBasics(unittest.TestCase):
@@ -39,4 +40,10 @@ class TestDBusBasics(unittest.TestCase):
 
 
 if __name__ == '__main__':
+formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")
+handler = logging.StreamHandler()
+handler.setFormatter(formatter)
+efllog = logging.getLogger("efl")
+efllog.addHandler(handler)
+efllog.setLevel(logging.DEBUG)
 unittest.main(verbosity=2)
diff --git a/tests/ecore/00_run_all_tests.py b/tests/ecore/00_run_all_tests.py
index 24dd275..3dbbca3 100644
--- a/tests/ecore/00_run_all_tests.py
+++ b/tests/ecore/00_run_all_tests.py
@@ -1,8 +1,16 @@
 #!/usr/bin/env python
 
 import unittest
+import logging
 
 
+formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")
+handler = logging.StreamHandler()
+handler.setFormatter(formatter)
+efllog = logging.getLogger("efl")
+efllog.addHandler(handler)
+efllog.setLevel(logging.DEBUG)
+
 loader = unittest.TestLoader()
 suite = loader.discover('.')
 runner = unittest.TextTestRunner(verbosity=2)
diff --git a/tests/ecore/test_01_timer.py b/tests/ecore/test_01_timer.py
index 3a3609d..81709aa 100644
--- a/tests/ecore/test_01_timer.py
+++ b/tests/ecore/test_01_timer.py
@@ -2,6 +2,7 @@
 
 from efl import ecore
 import unittest
+import logging
 
 
 def cb(n, t, a):
@@ -56,4 +57,10 @@ class TestTimer(unittest.TestCase):
 
 
 if __name__ == '__main__':
+formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")
+handler = logging.StreamHandler()
+handler.setFo

[EGIT] [bindings/python/python-efl] master 01/01: Enable logging in elm image icon unit test

2016-08-03 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=d6bad7a8389e33b8e3cf1a98e8155cffbaca5989

commit d6bad7a8389e33b8e3cf1a98e8155cffbaca5989
Author: Kai Huuhko 
Date:   Wed Aug 3 12:10:12 2016 +0300

Enable logging in elm image icon unit test
---
 tests/elementary/test_02_image_icon.py | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/tests/elementary/test_02_image_icon.py 
b/tests/elementary/test_02_image_icon.py
index 1c9b638..9031a51 100644
--- a/tests/elementary/test_02_image_icon.py
+++ b/tests/elementary/test_02_image_icon.py
@@ -2,6 +2,7 @@
 
 import os
 import unittest
+import logging
 
 from efl.eo import Eo
 from efl.evas import Image as evasImage
@@ -95,4 +96,10 @@ class TestElmIcon(unittest.TestCase):
   u"this_fails")
 
 if __name__ == '__main__':
+formatter = logging.Formatter("[%(levelname)s] %(name)s (%(filename)s: 
%(lineno)d) --- %(message)s")
+handler = logging.StreamHandler()
+handler.setFormatter(formatter)
+efllog = logging.getLogger("efl")
+efllog.addHandler(handler)
+efllog.setLevel(logging.DEBUG)
 unittest.main(verbosity=2)

-- 




Re: [E-devel] Reminder: E21 Freeze

2016-03-29 Thread Kai Huuhko
...and on, and on, and on...

2016-03-29 3:39 GMT+03:00 Andrew Williams :
> Happen on...?
> On Mon, 28 Mar 2016 at 17:47, Mike Blumenkrantz <
> michael.blumenkra...@gmail.com> wrote:
>
>> ...will begin this Friday at the end of the day, local time.
>>
>> After the freeze begins, larger features outside the scope of Wayland and
>> Gadgets should be withheld until after the release, which I expect to
>> happen on
>>
>> --
>> Transform Data into Opportunity.
>> Accelerate data analysis in your applications with
>> Intel Data Analytics Acceleration Library.
>> Click to learn more.
>> http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
> --
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Python-EFL 1.16 pre-release ready for testing

2015-11-14 Thread Kai Huuhko
With the tarballs you have the option of using either the
pre-generated C files or generating them with Cython.

It should use the pre-generated sources by default and I have no idea
why it's not doing this on your system, but you can force it with

env DISABLE_CYTHON=1 python setup.py build

These environment variables and other build related information can be
found at 
https://git.enlightenment.org/bindings/python/python-efl.git/tree/INSTALL

2015-11-14 23:06 GMT+02:00 Massimo Maiurana :
> I can't build python-efl on debian testing because it ships cython
> 0.23.2, but I remember there was a way to build it with a locally
> installed cython via a command line option, and if I'm not wrong you
> told me about this way. Can you please enlighten me once again? :)
>
> Ciao e grazie
> Massimo
>
> Davide Andreoli ha scritto il 14/11/2015 alle 19:18:
>> Hi all,
>>
>> I just uploaded the 1.16 tarballs for python-efl at the usual place:
>> https://download.enlightenment.org/pre-releases/
>>
>> Plese test them, if no issue arise those tarball will be moved in the next
>> 24h
>>
>> Happy testing
>> --
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
> --
> Massimo Maiurana
> Ragusa (RG)
>
> --
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 04/04: Evas.Image: Deprecate some functions and remove from Eo

2015-07-03 Thread Kai Huuhko
2015-07-02 8:42 GMT+03:00 Jean-Philippe ANDRÉ :
> jpeg pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=32dc8f092c7f0906b75c950df137da5f3e18a468
>
> commit 32dc8f092c7f0906b75c950df137da5f3e18a468
> Author: Jean-Philippe Andre 
> Date:   Thu Jul 2 14:26:44 2015 +0900
>
> Evas.Image: Deprecate some functions and remove from Eo
>
> This patch deprecates the following functions:
> - evas_object_image_data_convert
> - evas_object_image_pixels_import
> - evas_object_image_reload
>
> I could not find any place where they are used.
>
> The old documentation is kept in the header, but not as a doxygen
> anymore.
> ---
>  src/lib/evas/Evas_Legacy.h  | 37 +++
>  src/lib/evas/canvas/evas_image.eo   | 37 ---
>  src/lib/evas/canvas/evas_object_image.c | 39 
> ++---
>  3 files changed, 68 insertions(+), 45 deletions(-)
>
> diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
> index d8581d5..2f6fa55 100644
> --- a/src/lib/evas/Evas_Legacy.h
> +++ b/src/lib/evas/Evas_Legacy.h
> @@ -2917,6 +2917,43 @@ EAPI void evas_object_image_size_set(Evas_Object *obj, 
> int w, int h);
>   */
>  EAPI void evas_object_image_size_get(const Evas_Object *obj, int *w, int *h);
>
> +/*
> + * Converts the raw image data of the given image object to the
> + * specified colorspace.
> + *
> + * Note that this function does not modify the raw image data.  If the
> + * requested colorspace is the same as the image colorspace nothing is
> + * done and @c NULL is returned. You should use
> + * evas_object_image_colorspace_get() to check the current image
> + * colorspace.
> + *
> + * See @ref evas_object_image_colorspace_get.
> + *
> + * @return data A newly allocated data in the format specified by to_cspace.
> + *
> + * @param[in] to_cspace The colorspace to which the image raw data will be 
> converted.
> + */
> +/** @deprecated evas_object_image_data_convert */
> +EAPI void *evas_object_image_data_convert(Evas_Object *obj, Evas_Colorspace 
> to_cspace) EINA_WARN_UNUSED_RESULT EINA_DEPRECATED;
> +
> +/*
> + * Import pixels from given source to a given canvas image object.
> + *
> + * This function imports pixels from a given source to a given canvas image.
> + *
> + * @param[in] pixels The pixel's source to be imported.
> + */
> +/** @deprecated evas_object_image_pixels_import */
> +EAPI Eina_Bool evas_object_image_pixels_import(Evas_Object *obj, 
> Evas_Pixel_Import_Source *pixels) EINA_ARG_NONNULL(2) EINA_DEPRECATED;
> +
> +/*
> + * Reload an image object's image data.
> + *
> + * This function reloads the image data bound to image object @p obj.
> + */
> +/** @deprecated evas_object_image_reload */
> +EAPI void evas_object_image_reload(Evas_Object *obj) EINA_DEPRECATED;
> +
>  #include "canvas/evas_image.eo.legacy.h"
>
>  /**
> diff --git a/src/lib/evas/canvas/evas_image.eo 
> b/src/lib/evas/canvas/evas_image.eo
> index cec824a..53c9076 100644
> --- a/src/lib/evas/canvas/evas_image.eo
> +++ b/src/lib/evas/canvas/evas_image.eo
> @@ -879,43 +879,6 @@ class Evas.Image (Evas.Object, Efl.File, Efl.Image, 
> Efl.Gfx.Fill, Efl.Gfx.View,
>   /*@ Cancel preloading an image object's image data in the 
> background */
>   legacy: null;
>}
> -  data_convert {
> - /*@
> - Converts the raw image data of the given image object to the
> - specified colorspace.
> -
> - Note that this function does not modify the raw image data.  If the
> - requested colorspace is the same as the image colorspace nothing is
> - done and @c NULL is returned. You should use
> - evas_object_image_colorspace_get() to check the current image
> - colorspace.
> -
> - See @ref evas_object_image_colorspace_get.
> -
> - @return data A newly allocated data in the format specified by 
> to_cspace. */
> -
> - return: void * @warn_unused;
> - params {
> -@in to_cspace: Evas_Colorspace; /*@ The colorspace to which the 
> image raw data will be converted. */
> - }
> -  }
> -  pixels_import {
> - /*@
> - Import pixels from given source to a given canvas image object.
> -
> - This function imports pixels from a given source to a given canvas 
> image. */
> -
> - return: bool;
> - params {
> -@in pixels: Evas_Pixel_Import_Source * @nonull; /*@ The pixel's 
> source to be imported. */
> - }
> -  }
> -  reload {
> - /*@
> - Reload an image object's image data.
> -
> - This function reloads the image data bound to image object @p obj. 
> */
> -  }
> }
> implements {
>Eo.Base.constructor;
> diff --git a/src/lib/evas/canvas/evas_object_image.c 
> b/src/lib/evas/canvas/evas_object_image.c
> index 221ed08..b0d1c05 100644
> --- a/src/lib/evas/canvas/evas_obj

Re: [E-devel] Beta release v0.2.0 of Lekha, the PDF viewer

2015-05-15 Thread Kai Huuhko
2015-05-14 10:52 GMT+03:00 Kai Huuhko :
> 2015-05-13 22:42 GMT+03:00 Davide Andreoli :
>> 2015-05-11 22:58 GMT+02:00 Kai Huuhko :
>>
>>> 2015-05-11 23:31 GMT+03:00 Kai Huuhko :
>>> > Yes, it's another Python app. Try it.
>>> >
>>> >   (sudo) pip install Lekha
>>> >
>>> > or download:
>>> >
>>> > https://pypi.python.org/packages/source/L/Lekha/Lekha-0.2.0.tar.gz
>>> >
>>> > and untar, cd Lekha-0.2.0, (sudo) python setup.py install
>>> >
>>> > Dependencies:
>>> >  - Python 2
>>>
>>> Meant to say Python 2/3 here.
>>>
>>> >  - PyPDF2
>>> >  - pyxdg
>>> >  - python-efl >=1.14
>>> >
>>> > Features:
>>> >  - PDF rendering (with evas images, so no editable form fields or
>>> > anything fancy)
>>> >  - PDF bookmarks (outlines)
>>> >  - opens files in multiple tabs, and from command line
>>> >  - remembers scroll position for every document
>>> >
>>> > No pants were ruined in the making of this software.
>>>
>>>
>> yhea, worked on the first run without any issue.
>>
>> Some usability suggestions:
>> 1. the outlines panes that appear on mouse wheel is really annoing: you
>> scroll down the document with the wheel but cannot scroll up, as the pane
>> appear instead.
>
> That's not a usability suggestion, that's a bug! It's either something
> that I haven't enabled in my code, but probably a bug in scrollable
> panel or in scroller.

This was my fault, fixed in git.

>
>> 2. as a user I expect ctrl+wheel to zoom in and out
>
> Good, let's implement that

Implemented in git.


btw I forgot to mention the source location:

https://git.enlightenment.org/devs/kuuko/lekha.git/

and mirrored in github, in case someone wants to contribute code through there:

https://github.com/kaihu/lekha/

>
>> 3. it should be great to have a page-miniature pane also
>
> Another good suggestion, shouldn't be too hard to implement.
>
>> 4. every other pdf viewer I know leave some space (padding) between the
>> various pages, I do not like the "continuos-pages" looks
>
> I'll work on adding selectable page modes: contiguous mode (already
> implemented), padded mode, and two-page layout.
>
>>
>> While writing I found a strange issue:
>> with an open document, if I leave the window alone for 1/2 minutes (while
>> writing this mail) then the first time I try to drag the scroller the app
>> hang for 3/5 second before start to respond again.
>
> No idea what's causing it, probably some power saving feature in EFL.
>
>>
>> ah, and we really need a real "tabbed" widget in elm, the one you used
>> looks really ugly :P
>
> +1
>
>>
>> btw, really a cool app
>
> Thanks :)
>
>>
>>
>>
>>>
>>> --
>>> One dashboard for servers and applications across Physical-Virtual-Cloud
>>> Widest out-of-the-box monitoring support with 50+ applications
>>> Performance metrics, stats and reports that give you Actionable Insights
>>> Deep dive visibility with transaction tracing using APM Insight.
>>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>>> ___
>>> enlightenment-devel mailing list
>>> enlightenment-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>
>> --
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>> Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>> Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/19: edje: use efreet for cache directory get.

2015-05-15 Thread Kai Huuhko
Did you miss a file when committing this?

2015-05-14 20:01 GMT+03:00 Cedric BAIL :
> cedric pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=a312e304bf181777aa8190f4281ebdac49a827a5
>
> commit a312e304bf181777aa8190f4281ebdac49a827a5
> Author: Cedric BAIL 
> Date:   Wed May 13 17:14:09 2015 +0200
>
> edje: use efreet for cache directory get.
> ---
>  configure.ac | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/configure.ac b/configure.ac
> index ab76615..9b0e8ca 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -4231,6 +4231,7 @@ EFL_INTERNAL_DEPEND_PKG([EDJE], [ecore-imf-evas])
>  EFL_INTERNAL_DEPEND_PKG([EDJE], [embryo])
>  EFL_INTERNAL_DEPEND_PKG([EDJE], [eio])
>  EFL_INTERNAL_DEPEND_PKG([EDJE], [emile])
> +EFL_INTERNAL_DEPEND_PKG([EDJE], [efreet])
>
>  EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EDJE], [${want_physics}], [ephysics])
>  EFL_OPTIONAL_INTERNAL_DEPEND_PKG([EDJE], [${want_multisense}], [ecore-audio])
>
> --
>
>

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Beta release v0.2.0 of Lekha, the PDF viewer

2015-05-14 Thread Kai Huuhko
2015-05-13 22:42 GMT+03:00 Davide Andreoli :
> 2015-05-11 22:58 GMT+02:00 Kai Huuhko :
>
>> 2015-05-11 23:31 GMT+03:00 Kai Huuhko :
>> > Yes, it's another Python app. Try it.
>> >
>> >   (sudo) pip install Lekha
>> >
>> > or download:
>> >
>> > https://pypi.python.org/packages/source/L/Lekha/Lekha-0.2.0.tar.gz
>> >
>> > and untar, cd Lekha-0.2.0, (sudo) python setup.py install
>> >
>> > Dependencies:
>> >  - Python 2
>>
>> Meant to say Python 2/3 here.
>>
>> >  - PyPDF2
>> >  - pyxdg
>> >  - python-efl >=1.14
>> >
>> > Features:
>> >  - PDF rendering (with evas images, so no editable form fields or
>> > anything fancy)
>> >  - PDF bookmarks (outlines)
>> >  - opens files in multiple tabs, and from command line
>> >  - remembers scroll position for every document
>> >
>> > No pants were ruined in the making of this software.
>>
>>
> yhea, worked on the first run without any issue.
>
> Some usability suggestions:
> 1. the outlines panes that appear on mouse wheel is really annoing: you
> scroll down the document with the wheel but cannot scroll up, as the pane
> appear instead.

That's not a usability suggestion, that's a bug! It's either something
that I haven't enabled in my code, but probably a bug in scrollable
panel or in scroller.

> 2. as a user I expect ctrl+wheel to zoom in and out

Good, let's implement that

> 3. it should be great to have a page-miniature pane also

Another good suggestion, shouldn't be too hard to implement.

> 4. every other pdf viewer I know leave some space (padding) between the
> various pages, I do not like the "continuos-pages" looks

I'll work on adding selectable page modes: contiguous mode (already
implemented), padded mode, and two-page layout.

>
> While writing I found a strange issue:
> with an open document, if I leave the window alone for 1/2 minutes (while
> writing this mail) then the first time I try to drag the scroller the app
> hang for 3/5 second before start to respond again.

No idea what's causing it, probably some power saving feature in EFL.

>
> ah, and we really need a real "tabbed" widget in elm, the one you used
> looks really ugly :P

+1

>
> btw, really a cool app

Thanks :)

>
>
>
>>
>> --
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>> Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>> Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
> --
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Beta release v0.2.0 of Lekha, the PDF viewer

2015-05-11 Thread Kai Huuhko
2015-05-11 23:31 GMT+03:00 Kai Huuhko :
> Yes, it's another Python app. Try it.
>
>   (sudo) pip install Lekha
>
> or download:
>
> https://pypi.python.org/packages/source/L/Lekha/Lekha-0.2.0.tar.gz
>
> and untar, cd Lekha-0.2.0, (sudo) python setup.py install
>
> Dependencies:
>  - Python 2

Meant to say Python 2/3 here.

>  - PyPDF2
>  - pyxdg
>  - python-efl >=1.14
>
> Features:
>  - PDF rendering (with evas images, so no editable form fields or
> anything fancy)
>  - PDF bookmarks (outlines)
>  - opens files in multiple tabs, and from command line
>  - remembers scroll position for every document
>
> No pants were ruined in the making of this software.

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Beta release v0.2.0 of Lekha, the PDF viewer

2015-05-11 Thread Kai Huuhko
Yes, it's another Python app. Try it.

  (sudo) pip install Lekha

or download:

https://pypi.python.org/packages/source/L/Lekha/Lekha-0.2.0.tar.gz

and untar, cd Lekha-0.2.0, (sudo) python setup.py install

Dependencies:
 - Python 2
 - PyPDF2
 - pyxdg
 - python-efl >=1.14

Features:
 - PDF rendering (with evas images, so no editable form fields or
anything fancy)
 - PDF bookmarks (outlines)
 - opens files in multiple tabs, and from command line
 - remembers scroll position for every document

No pants were ruined in the making of this software.

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Python-EFL 1.14.0 release

2015-05-07 Thread Kai Huuhko
= Python-EFL 1.14.0 release =
We are pleased to announce that **Python-EFL** 1.14.0 is now released
and available for download.


More information about the python bindings can be found at:
https://phab.enlightenment.org/w/projects/python_bindings_for_efl/

---

= What's New =

== Fixes ==

 * Fixed evas.Textgrid to not leak on cellrow_set()

== Improvements ==

 * Re-added evas.SmartObject (with incompatible API compared to the earlier
   incarnation) and made elm.Object inherit from it.
 * Better init/shutdown management in all modules, no more need to
   manually call those functions (no harm in doing it though).

== Changes ==

 * elm.List.callback_highlighted_add: Added item param to func
 * elm.List.callback_unhighlighted_add: Added item param to func
 * elm.Toolbar.callback_clicked_add: Added item param to func
 * elm.Toolbar.callback_longpressed_add: Added item param to func
 * elm.Slideshow: item_data are now a single value, instead of args/kargs,
   like is implemented in Gengrid/Genlist

== Additions ==

 * evas.Smart
 * evas.Image.orient
 * edje.Edje.text_class_get
 * edje.text_class_get
 * elm.systray
 * elm.Configuration.window_auto_focus_animate
 * elm.Configuration.window_auto_focus_enable
 * elm.Image.memfile_set
 * elm.MultiButtonEntry.callback_item_longpressed_add
 * elm.MultiButtonEntry.callback_item_longpressed_del
 * elm.NaviframeItem.pop_cb_set
 * elm.Photocam.image_orient
 * elm.Scrollable.loop
 * elm.Slider.indicator_visible_mode
 * elm.Transit.go_in
 * elm.on_config_all_changed
 * elm.on_ethumb_connect
 * elm.on_policy_changed
 * elm.on_process_background
 * elm.LayoutClass.file is now also readable
 * elm.Video.file is now also readable

== Deprecation ==

 * evas.Rect.intercepts: Use intersects() instead


---

= Building and Dependencies =

== PYPI ==

The package is available on pypi, that means you should be able to
install using pip:

```
pip install python-efl
```

== Manual Install ==

If you have existing Python-EFL or the old split 1.7 release bindings
installed, you may wish to uninstall them before compiling and installing
to avoid possible conflicts during install and/or runtime.

To build the bindings you will need the following libraries:
* python (Python 2.6+/3.2+)
* efl (1.14)
* elementary (1.14)
* python-dbus (0.83+)

If you wish to compile using the Cython sources:
* cython (0.21+)


To install the bindings run:

  (sudo) python setup.py install

To generate the documentation locally you need:
* sphinx (1.1+)
* graphviz (optional)

To build the documentation:

  python setup.py build_doc

For more information on available build options see:

  python setup.py --help

== Download ==

| **tar.gz** | 
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.tar.gz
|
| **tar.bz2** |
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.tar.bz2
|
| **tar.xz** | 
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.tar.xz
|
| **md5sums** |
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.md5sums
|
| **sha1sums** |
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.sha1sums
|
| **sha256sums** |
https://download.enlightenment.org/rel/bindings/python/python-efl-1.14.0.sha256sums
|

For convenience the tarballs contain both the Cython sources and
generated intermediary C sources, meaning you **do not** need Cython
to compile the bindings. Full cython sources are also publicly
accessible from our git repository at:
https://git.enlightenment.org/bindings/python/python-efl.git/
---

= Projects using Python-EFL =

| **Project** | **Website** |
| -- | -- |
| **Enter** - LightDM greeter | https://github.com/wfx/enter/ |
| **EpyMC** - Media Center | https://github.com/DaveMDS/epymc |
| **Espionage** - D-Bus inspector |
https://phab.enlightenment.org/w/projects/espionage/ |
| **Epour** - BitTorrent Client |
https://phab.enlightenment.org/w/projects/epour/ |
| **Econnman** - Connman GUI |
https://phab.enlightenment.org/w/projects/econnman/ |
| **eInfo** - System Information Tool |
http://forums.bodhilinux.com/index.php?/topic/8289-einfo-system-information/
|
| **eAndora** - GUI for Pandora Internet Radio |
http://forums.bodhilinux.com/index.php?/topic/7365-eandora-elm-pandora-client/
|
| **egitu** - Git User Interface | https://github.com/DaveMDS/egitu |
| **edone** - Getting Things Done | https://github.com/DaveMDS/edone |
| **epack** - Tiny archive extractor | https://github.com/wfx/epack |

... and many more that cannot fit in this short list.



--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
__

Re: [E-devel] Any Improved Pulseaudio support for Mixer planned?

2015-05-01 Thread Kai Huuhko
2015-05-02 2:09 GMT+03:00 Carsten Haitzler :
> On Fri, 1 May 2015 23:40:25 +0300 Kai Huuhko  said:
>
>> 2015-05-01 5:54 GMT+03:00 Flavio Ceolin :
>> > On Thu, Apr 30, 2015 at 11:47:18AM +0900, Carsten Haitzler wrote:
>> >> On Wed, 16 Apr 2014 13:26:26 -0300 Flavio ceolin 
>> >> said:
>> >>
>> >> > Hi,
>> >> >
>> >> > Em 15/04/2014 22:11, "Lucas De Marchi" 
>> >> > escreveu:
>> >> > >
>> >> > > Em 15/04/2014 01:04, "Stefan Schmidt" 
>> >> > escreveu:
>> >> > > >
>> >> > > > Hello.
>> >> > > >
>> >> > > > On Fri, 2014-04-04 at 13:25, Flavio Ceolin wrote:
>> >> > > > >
>> >> > > > > Lucas De Marchi  writes:
>> >> > > > >
>> >> > > > > > On Mon, Mar 10, 2014 at 7:07 PM, Flávio Ceolin
>> >> > > > > >  wrote:
>> >> > > > > >> On Mon, Mar 10, 2014 at 6:43 PM, Jeff Hoogland <
>> >> > > jeffhoogl...@linux.com> wrote:
>> >> > > > > >>> This will be AWESOME. Shame you missed the change window for
>> >> > > > > >>> E19
>> >> > > for this
>> >> > > > > >>> to be included in core. Once you have code to share I'll be
>> >> > getting
>> >> > > this
>> >> > > > > >>> into the Bodhi 3.0.0 testing repos ASAP.
>> >> > > > > >>>
>> >> > > > > >>
>> >> > > > > >> Yeah i  know, my bad :(  but I'll release something usable 
>> >> > > > > >> soon.
>> >> > > > > >
>> >> > > > > > ping.
>> >> > > > > >
>> >> > > > > >
>> >> > > > > > Lucas De Marchi
>> >> > > > > >
>> >> > > > > >
>> >> > >
>> >> > --
>> >> > > > > > ___
>> >> > > > > > enlightenment-devel mailing list
>> >> > > > > > enlightenment-devel@lists.sourceforge.net
>> >> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >> > > > >
>> >> > > > >
>> >> > > > > It's about time :)
>> >> > > > > https://git.enlightenment.org/devs/ceolin/epulse.git
>> >> > > > >
>> >> > > > >
>> >> > > > > I have added a TODO list with the most important things i think
>> >> > > > > must
>> >> > be
>> >> > > > > done. If someone find any problem and|or have suggestions to
>> >> > > > > improve
>> >> > it,
>> >> > > > > please let me know.
>> >> > > >
>> >> > > > So much encouragement and still nobody tested it? Or nobody did
>> >> > > > report on it? :)
>> >> > > >
>> >> > >
>> >> > > I just didn't report. I'm using it daily... And it's working pretty
>> >> > > well. Not the prettiest interface, but functional.
>> >> > >
>> >> > > Lucas De Marchi
>> >> > >
>> >> > --
>> >> > > Learn Graph Databases - Download FREE O'Reilly Book
>> >> > > "Graph Databases" is the definitive new guide to graph databases and
>> >> > > their applications. Written by three acclaimed leaders in the field,
>> >> > > this first edition is now available. Download your free book today!
>> >> > > http://p.sf.net/sfu/NeoTech
>> >> > > ___
>> >> > > enlightenment-devel mailing list
>> >> > > enlightenment-devel@lists.sourceforge.net
>> >> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >> >
>> >> > I' ll chec

Re: [E-devel] Any Improved Pulseaudio support for Mixer planned?

2015-05-01 Thread Kai Huuhko
2015-05-01 5:54 GMT+03:00 Flavio Ceolin :
> On Thu, Apr 30, 2015 at 11:47:18AM +0900, Carsten Haitzler wrote:
>> On Wed, 16 Apr 2014 13:26:26 -0300 Flavio ceolin  
>> said:
>>
>> > Hi,
>> >
>> > Em 15/04/2014 22:11, "Lucas De Marchi"  
>> > escreveu:
>> > >
>> > > Em 15/04/2014 01:04, "Stefan Schmidt" 
>> > escreveu:
>> > > >
>> > > > Hello.
>> > > >
>> > > > On Fri, 2014-04-04 at 13:25, Flavio Ceolin wrote:
>> > > > >
>> > > > > Lucas De Marchi  writes:
>> > > > >
>> > > > > > On Mon, Mar 10, 2014 at 7:07 PM, Flávio Ceolin
>> > > > > >  wrote:
>> > > > > >> On Mon, Mar 10, 2014 at 6:43 PM, Jeff Hoogland <
>> > > jeffhoogl...@linux.com> wrote:
>> > > > > >>> This will be AWESOME. Shame you missed the change window for E19
>> > > for this
>> > > > > >>> to be included in core. Once you have code to share I'll be
>> > getting
>> > > this
>> > > > > >>> into the Bodhi 3.0.0 testing repos ASAP.
>> > > > > >>>
>> > > > > >>
>> > > > > >> Yeah i  know, my bad :(  but I'll release something usable soon.
>> > > > > >
>> > > > > > ping.
>> > > > > >
>> > > > > >
>> > > > > > Lucas De Marchi
>> > > > > >
>> > > > > >
>> > >
>> > --
>> > > > > > ___
>> > > > > > enlightenment-devel mailing list
>> > > > > > enlightenment-devel@lists.sourceforge.net
>> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> > > > >
>> > > > >
>> > > > > It's about time :)
>> > > > > https://git.enlightenment.org/devs/ceolin/epulse.git
>> > > > >
>> > > > >
>> > > > > I have added a TODO list with the most important things i think must
>> > be
>> > > > > done. If someone find any problem and|or have suggestions to improve
>> > it,
>> > > > > please let me know.
>> > > >
>> > > > So much encouragement and still nobody tested it? Or nobody did report
>> > > > on it? :)
>> > > >
>> > >
>> > > I just didn't report. I'm using it daily... And it's working pretty well.
>> > > Not the prettiest interface, but functional.
>> > >
>> > > Lucas De Marchi
>> > >
>> > --
>> > > Learn Graph Databases - Download FREE O'Reilly Book
>> > > "Graph Databases" is the definitive new guide to graph databases and 
>> > > their
>> > > applications. Written by three acclaimed leaders in the field,
>> > > this first edition is now available. Download your free book today!
>> > > http://p.sf.net/sfu/NeoTech
>> > > ___
>> > > enlightenment-devel mailing list
>> > > enlightenment-devel@lists.sourceforge.net
>> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >
>> > I' ll check the building problem on e18. As the UI side, anybody with ideas
>> > to improve it, please share with me.
>>
>> considering an epulse merge... first
>>
>> 1. what is the license? is it ok to merge into e as-is and rop under e's
>> blanket license?
>
> Yes, we can use e's license.
>
>> 2. if anyone has any branches to stuff - merge them into epulse master if you
>> want them in e. otherwise you'll have to port later on.
>
> Ok, i'll coordinate it with Marcel. But basically is use the emix branch
> (that support more backends than pulseaudio).

Please include E version compatibility if you can. I got epulse
working with E17 and current git master, not sure about E18 and E19.
See 
https://git.enlightenment.org/devs/ceolin/epulse.git/log/?h=devs/kuuko/compat

>
>>
>> --
>> - Codito, ergo sum - "I code, therefore I am" --
>> The Rasterman (Carsten Haitzler)ras...@rasterman.com
>>
>
> Regards,
> --
> Flavio Ceolin
>
>
> --
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [enlightenment/modules/edgar] master 01/01: Revert python code install location to libdir/enlightenment/gadgets

2015-04-08 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/edgar.git/commit/?id=6669595f1af0d17bdb7c10538f21fdbf337de0db

commit 6669595f1af0d17bdb7c10538f21fdbf337de0db
Author: Kai Huuhko 
Date:   Wed Apr 8 22:06:14 2015 +0300

Revert python code install location to libdir/enlightenment/gadgets

As requested by DaveMDS
---
 GADGETS/audio/Makefile  | 4 ++--
 GADGETS/calculator/Makefile | 4 ++--
 GADGETS/led_clock/Makefile  | 4 ++--
 GADGETS/ruler/Makefile  | 4 ++--
 python/Makefile.am  | 2 +-
 src/e_mod_edgar.c   | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/GADGETS/audio/Makefile b/GADGETS/audio/Makefile
index 8253e78..c6e7b10 100644
--- a/GADGETS/audio/Makefile
+++ b/GADGETS/audio/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
-gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=libdir enlightenment)
+gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/calculator/Makefile b/GADGETS/calculator/Makefile
index 1f62bf4..3a38ebb 100644
--- a/GADGETS/calculator/Makefile
+++ b/GADGETS/calculator/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
-gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=libdir enlightenment)
+gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/led_clock/Makefile b/GADGETS/led_clock/Makefile
index 46e8f41..1001ca0 100644
--- a/GADGETS/led_clock/Makefile
+++ b/GADGETS/led_clock/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
-gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=libdir enlightenment)
+gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/ruler/Makefile b/GADGETS/ruler/Makefile
index 4338b57..44eafb9 100644
--- a/GADGETS/ruler/Makefile
+++ b/GADGETS/ruler/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
-gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=libdir enlightenment)
+gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/python/Makefile.am b/python/Makefile.am
index b93d6fb..9087c14 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -1,6 +1,6 @@
 MAINTAINERCLEANFILES = Makefile.in
 
 edgarpy_base= e.py
-edgarpydir  = $(shell pkg-config --variable=pkgdatadir 
enlightenment)/gadgets
+edgarpydir  = $(shell pkg-config --variable=libdir 
enlightenment)/enlightenment/gadgets
 edgarpy_DATA= $(edgarpy_base)
 EXTRA_DIST  = $(edgarpy_base)
diff --git a/src/e_mod_edgar.c b/src/e_mod_edgar.c
index d844168..d1caf33 100644
--- a/src/e_mod_edgar.c
+++ b/src/e_mod_edgar.c
@@ -101,7 +101,7 @@ edgar_init()
int ret;
 
// prepare the local scope
-   snprintf(buf, sizeof(buf), "%s/data/gadgets", e_prefix_data_get());
+   snprintf(buf, sizeof(buf), "%s/enlightenment/gadgets", e_prefix_lib_get());
edgar_gadgets_system_dir = eina_stringshare_add(buf);
edgar_gadgets = 
eina_hash_string_superfast_new(edgar_gadgets_hash_free_func);
 

-- 




[EGIT] [admin/devs] master 01/01: Update my list of contributed projects, remove work key

2015-04-08 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=79a1e503969460bdc2f3a455438dfcb2e52e9b17

commit 79a1e503969460bdc2f3a455438dfcb2e52e9b17
Author: Kai Huuhko 
Date:   Wed Apr 8 19:42:21 2015 +0300

Update my list of contributed projects, remove work key
---
 developers/kuuko/id_rsa_innopoli3.pub | 1 -
 developers/kuuko/info.txt | 3 ++-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/developers/kuuko/id_rsa_innopoli3.pub 
b/developers/kuuko/id_rsa_innopoli3.pub
deleted file mode 100644
index ca0e71c..000
--- a/developers/kuuko/id_rsa_innopoli3.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa 
B3NzaC1yc2EDAQABAAACAQCxSLPNobdprzZsF13oXXFvxFL2Pfj/Wy9bHdepy8ssjtIOw2JecQ9RuKbPm9pB30b6Dxxkiuvt8y+AbtwqHmUc/mUXY7IhIBlE6Y8jPCk1dWSQDmIm8DX+DeYdgvUytFW+VIccJCmgFyMWexzd+l3CpgAfwmslRcnlzRYZoS4+L7rRx8ph8F+vV5BkuN5lzxNg1lIVc6CAS4bqXHywlOp5mkB+aY5DvKXmTew1CZjVeF9f/Za72Q8NiM2PJfiTbGh7YS5krKU7NGKqQV8WrF2/4ckcuH6kj/tRV0LloDaLJ6i7ZeY7elfHdIN71bhZW8ddD7hUuZa4q42cF+53bH7FXmGBKr8+A5bZ5nMCzdUNaDV4oYvUajb3a7xJgthuMWZ6H7k5vqXTIgidVq3Nr8uVfl+RYTS+C+R4Enmk676+w1oSLdHTrXLyHCw5ID2OOLPL9ZMk
 [...]
diff --git a/developers/kuuko/info.txt b/developers/kuuko/info.txt
index 4b0b73a..b3c947a 100644
--- a/developers/kuuko/info.txt
+++ b/developers/kuuko/info.txt
@@ -4,6 +4,7 @@ Cloak: developer/kuuko
 Name:  Kai Huuhko
 Location:  Helsinki, Finland
 E-Mail:kai.huu...@gmail.com
-Managing:  Python bindings, Epour, Apathy, Valosoitin
+Managing:  Python bindings, Epour, Apathy, Valosoitin, polkit-efl
+Contributing:  EFL, Elementary, E, E-modules, Econnman app
 Platform:  Gentoo (Linux)
 GeoData:   60.230490 24.926659

-- 




[EGIT] [enlightenment/modules/edgar] master 01/01: Add back full E19/E20 compatibility

2015-04-07 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/edgar.git/commit/?id=4855de622f7b36851097ab0356a3176be1954a23

commit 4855de622f7b36851097ab0356a3176be1954a23
Author: Kai Huuhko 
Date:   Tue Apr 7 23:27:08 2015 +0300

Add back full E19/E20 compatibility

Not yet E17 compatible, need to find out why E sigaborts on popup open
---
 GADGETS/audio/Makefile  |  4 ++--
 GADGETS/calculator/Makefile |  4 ++--
 GADGETS/led_clock/Makefile  |  4 ++--
 GADGETS/ruler/Makefile  |  4 ++--
 configure.ac| 16 +---
 python/Makefile.am  |  2 +-
 src/e_mod_edgar.c   | 21 +
 7 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/GADGETS/audio/Makefile b/GADGETS/audio/Makefile
index c6e7b10..8253e78 100644
--- a/GADGETS/audio/Makefile
+++ b/GADGETS/audio/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=libdir enlightenment)
-gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
+gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/calculator/Makefile b/GADGETS/calculator/Makefile
index 3a38ebb..1f62bf4 100644
--- a/GADGETS/calculator/Makefile
+++ b/GADGETS/calculator/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=libdir enlightenment)
-gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
+gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/led_clock/Makefile b/GADGETS/led_clock/Makefile
index 1001ca0..46e8f41 100644
--- a/GADGETS/led_clock/Makefile
+++ b/GADGETS/led_clock/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=libdir enlightenment)
-gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
+gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/GADGETS/ruler/Makefile b/GADGETS/ruler/Makefile
index 44eafb9..4338b57 100644
--- a/GADGETS/ruler/Makefile
+++ b/GADGETS/ruler/Makefile
@@ -7,8 +7,8 @@ EXTRA_FILES =
 
 # nothing  should be changed below this point
 GADGET_FILES = __init__.pyc $(GADGET_NAME).edj
-prefix = $(shell pkg-config --variable=libdir enlightenment)
-gadget_folder = ${prefix}/enlightenment/gadgets/$(GADGET_NAME)
+prefix = $(shell pkg-config --variable=pkgdatadir enlightenment)
+gadget_folder = ${prefix}/gadgets/$(GADGET_NAME)
 
 .PHONY: all install clean
 
diff --git a/configure.ac b/configure.ac
index 1468eea..a2b0275 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,13 +47,23 @@ AC_MSG_CHECKING([Which edje_cc to use])
 AC_MSG_RESULT(${EDJE_CC})
 
 # Check enlightenment version
-PKG_CHECK_MODULES(E, [enlightenment >= 0.19],
-  [AC_DEFINE([HAVE_E19], [1], [Have at least E19])],
-  [PKG_CHECK_MODULES(E, [enlightenment >= 0.17])]
+PKG_CHECK_MODULES(
+  E, [enlightenment >= 0.19.99],
+  [AC_DEFINE([HAVE_E20], [1], [Have at least E20])],
+  [PKG_CHECK_MODULES(
+E, [enlightenment >= 0.18.99],
+[AC_DEFINE([HAVE_E19], [1], [Have at least E19])],
+[PKG_CHECK_MODULES(
+  E, [enlightenment >= 0.17]
+)
+]
+  )
+  ]
 )
 
 # Explicit link to Eo
 PKG_CHECK_MODULES(EO, [eo])
+PKG_CHECK_MODULES(ELEMENTARY, [elementary])
 
 # Check for python3 and required modules
 # PKG_CHECK_MODULES(PYTHON3, [python3 >= 3.2])
diff --git a/python/Makefile.am b/python/Makefile.am
index aa9f651..b93d6fb 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -1,6 +1,6 @@
 MAINTAINERCLEANFILES = Makefile.in
 
 edgarpy_base= e.py
-edgarpydir  = $(libdir)/enlightenment/gadgets
+edgarpydir  = $(shell pkg-config --variable=pkgdatadir 
enlightenment)/gadgets
 edgarpy_DATA= $(edgarpy_base)
 EXTRA_DIST  = $(edgarpy_base)
diff --git a/src/e_mod_edgar.c b/src/e_mod_edgar.c
index bbebfc3..d844168 100644
--- a/src/e_mod_edgar.c
+++ b/src/e_mod_edgar.c
@@ -17,6 +17,7 @@
 
 
 #include 
+#include 
 #include 
 #include "e_mod_main.h"
 #include "e_mod_edgar.h"
@@ -100,7 +101,7 @@ edgar_init()
int ret;
 
// prepare the local scope
-   snprintf(buf, sizeof(buf), "%s/enlightenment/gadgets", e_prefix_lib_get());
+   snprintf(buf, sizeof(buf), "%s/data/gadgets", e_prefix_data_get());
edgar_gadgets_system_dir = eina_stringshare_add(buf);
edgar_gadgets = 
eina_hash_string_superfast_new(edgar_gadgets_hash_free_func);
 
@@ -294,7 +295,11 @@ edgar_gadget_unload(Edgar_Py_Ga

[EGIT] [bindings/python/python-efl] master 01/01: Update TODO and INSTALL

2015-04-05 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=f20c56fe1524503a67cc161cd1cbeebfa68e55ed

commit f20c56fe1524503a67cc161cd1cbeebfa68e55ed
Author: Kai Huuhko 
Date:   Tue Mar 31 15:49:17 2015 +0300

Update TODO and INSTALL
---
 INSTALL | 8 
 TODO| 7 +++
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/INSTALL b/INSTALL
index 1b1b118..ebb7077 100644
--- a/INSTALL
+++ b/INSTALL
@@ -2,8 +2,8 @@
 1. REQUIREMENTS
 ===
 
- * Python 2.6 or higher (http://www.python.org/)
-   - Tested with Python 2.7 / 3.2 / 3.3 / 3.4
+ * Python 2.6 or higher, 3.2 or higher (http://www.python.org/)
+   - Tested with Python 2.7 / 3.3 / 3.4
 
  * Cython 0.21 or higher (http://cython.org/)
- Tested with Cython 0.21.2
@@ -54,7 +54,7 @@
python setup.py clean --all
 
  * To also remove all the C/HTML files generated by Cython:
- 
+
python setup.py clean_generated_files
 
WARNING: you will need cython to regenerate the C files, do not use this
@@ -112,7 +112,7 @@
  tests or use the 00_run_all_tests.py in each folder or even in the tests/ base
  dir to run all the tests at once.
 
- Python 2.7 is required for running the tests.
+ Python 2.7 / 3.2 or greater is required for running the tests.
 
  The scripts in examples/ folder must be run by the user as they require
  user interaction.
diff --git a/TODO b/TODO
index 8f260d3..799a0b4 100644
--- a/TODO
+++ b/TODO
@@ -9,7 +9,6 @@ BUGS
 - Multibuttonentry.format_function_set()
 - Multibuttonentry.filter_append()
 - Multibuttonentry.filterprepend()
-* Evas: SmartObject callbacks broken when object is deleted
 
 Failing unit tests
 --
@@ -23,8 +22,7 @@ TODO
   http://www.freedesktop.org/wiki/Software/DBusBindings
   (requires fd.org shell account?)
 * Review the internal functions and name them consistently
-* Evas: SmartObject needs testing, work. Make it inheritable by extension
-  classes?
+* Evas: SmartObject needs testing
 * Improve ethumb
 * edje: complete the unit tests
 * Initial Evas GL support (for Elm)
@@ -36,11 +34,12 @@ Elm
 * Drag-n-Drop
 * Automate compilation of the example edje files.
 * Add more examples
-* Prefs
+* Prefs (only supports simple types, not so great for us)
 * GLView
 * Unit tests
 * Images missing in the documentation:
- datetime
+   - systray
- video
- web
- window ?

-- 




[EGIT] [apps/epour] master 01/01: Fix libtorrent-0.16.x compatibility for hash constructor

2015-04-01 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=c69df45075b963fd1b5043bae225b19e0d3af783

commit c69df45075b963fd1b5043bae225b19e0d3af783
Author: Kai Huuhko 
Date:   Wed Apr 1 17:32:21 2015 +0300

Fix libtorrent-0.16.x compatibility for hash constructor
---
 epour/Epour.py   | 12 ++--
 epour/session.py |  5 -
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/epour/Epour.py b/epour/Epour.py
index 110bf39..c87f310 100644
--- a/epour/Epour.py
+++ b/epour/Epour.py
@@ -212,10 +212,10 @@ class EpourDBus(dbus.service.Object):
 "save_path": self.conf.get("Settings", "storage_path"),
 "flags": 592
 }
-if os.path.isfile(t):
-self.session.add_torrent_from_file(add_dict, t)
-elif t.startswith("magnet:"):
+if t.startswith("magnet:"):
 self.session.add_torrent_from_magnet(add_dict, t)
+elif os.path.isfile(t):
+self.session.add_torrent_from_file(add_dict, t)
 else:
 self.session.add_torrent_from_hash(add_dict, t)
 except Exception:
@@ -230,10 +230,10 @@ class EpourDBus(dbus.service.Object):
 "save_path": self.conf.get("Settings", "storage_path"),
 "flags": 592
 }
-if os.path.isfile(t):
-self.session.add_torrent_from_file(add_dict, t)
-elif t.startswith("magnet:"):
+if t.startswith("magnet:"):
 self.session.add_torrent_from_magnet(add_dict, t)
+elif os.path.isfile(t):
+self.session.add_torrent_from_file(add_dict, t)
 else:
 self.session.add_torrent_from_hash(add_dict, t)
 except Exception:
diff --git a/epour/session.py b/epour/session.py
index 8dcd497..3fe99f1 100644
--- a/epour/session.py
+++ b/epour/session.py
@@ -382,7 +382,10 @@ class Session(lt.session):
 self.async_add_torrent(tmp_dict)
 
 def add_torrent_from_hash(self, add_dict, t_uri):
-add_dict["info_hash"] = lt.sha1_hash(bytes(t_uri))
+if "sha1_hash" in dir(lt):
+add_dict["info_hash"] = lt.sha1_hash(bytes(t_uri))
+else:
+add_dict["info_hash"] = lt.big_number(bytes(t_uri))
 self.log.debug("Adding %s", t_uri)
 self.async_add_torrent(add_dict)
 

-- 




[EGIT] [bindings/python/python-efl] master 02/02: Evas.SmartObject: Add more docs to move_children_relative()

2015-03-31 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=708f02bccce1a7799fb2ade31a9827d606105683

commit 708f02bccce1a7799fb2ade31a9827d606105683
Author: Kai Huuhko 
Date:   Tue Mar 31 12:14:58 2015 +0300

Evas.SmartObject: Add more docs to move_children_relative()
---
 efl/evas/efl.evas_object_smart.pxi | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index 3014e08..c6287c9 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -769,7 +769,19 @@ cdef class SmartObject(Object):
 return self.smart
 
 def move_children_relative(self, int dx, int dy):
-"""Move all children relatively."""
+"""Moves all children objects relative to a given offset.
+
+This will make each of object's children to move, from where
+they before, with those delta values (offsets) on both directions.
+
+.. note:: This is most useful on custom :func:`Smart.move` functions.
+
+.. note:: Clipped smart objects already make use of this function on
+their :func:`Smart.move` function definition.
+
+:param dx: horizontal offset (delta).
+:param dy: vertical offset (delta).
+"""
 evas_object_smart_move_children_relative(self.obj, dx, dy)
 
 def changed(self):

-- 




[EGIT] [bindings/python/python-efl] master 01/02: Fix method/prop highlight color with Sphinx 1.3

2015-03-31 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=aee5433cdc60abafb8477ef010155832acbf64c6

commit aee5433cdc60abafb8477ef010155832acbf64c6
Author: Kai Huuhko 
Date:   Wed Mar 25 07:15:20 2015 +0200

Fix method/prop highlight color with Sphinx 1.3
---
 doc/themes/efldoc/static/efl.css | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/doc/themes/efldoc/static/efl.css b/doc/themes/efldoc/static/efl.css
index 6a6c0d0..369fb22 100644
--- a/doc/themes/efldoc/static/efl.css
+++ b/doc/themes/efldoc/static/efl.css
@@ -330,15 +330,15 @@ tt {
 padding: 1px;
 }
 
-tt.descname, tt.descclassname, tt.xref {
+.descname, .descclassname, .xref {
 border: 0;
 }
 
-tt.descname {
+.descname {
 color: rgb(200,200,255);
 }
 
-tt.descclassname {
+.descclassname {
 color: rgb(160,160,255);
 }
 

-- 




[EGIT] [core/elementary] elementary-1.13 01/01: Fix elm_naviframe transition, finished smart events event_info

2015-03-27 Thread Kai Huuhko
hermet pushed a commit to branch elementary-1.13.

http://git.enlightenment.org/core/elementary.git/commit/?id=819146a9e36d164c9b6a839a7db4414f26114945

commit 819146a9e36d164c9b6a839a7db4414f26114945
Author: Kai Huuhko 
Date:   Sat Mar 28 15:12:33 2015 +0900

Fix elm_naviframe transition,finished smart events event_info

Summary:
A pointer to the internal Elm_Naviframe_Item_Data was mistakenly being 
passed as
event_info.

This patch changes the callback_call to pass the correct Elm_Object_Item 
(Eo) pointer.

Reviewers: #elementary, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D
---
 src/lib/elc_naviframe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index abd6cdf..9781ff5 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1122,7 +1122,7 @@ _on_item_show_finished(void *data,
if (sd->freeze_events)
  evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
 
-   evas_object_smart_callback_call(WIDGET(it), SIG_TRANSITION_FINISHED, data);
+   evas_object_smart_callback_call(WIDGET(it), SIG_TRANSITION_FINISHED, 
EO_OBJ(it));
 }
 
 static void

-- 




[EGIT] [core/elementary] master 01/01: Fix elm_naviframe transition, finished smart events event_info

2015-03-27 Thread Kai Huuhko
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=f675e236bce6fd05a7a31c2fcc57daf873a03943

commit f675e236bce6fd05a7a31c2fcc57daf873a03943
Author: Kai Huuhko 
Date:   Sat Mar 28 15:12:33 2015 +0900

Fix elm_naviframe transition,finished smart events event_info

Summary:
A pointer to the internal Elm_Naviframe_Item_Data was mistakenly being 
passed as
event_info.

This patch changes the callback_call to pass the correct Elm_Object_Item 
(Eo) pointer.

Reviewers: #elementary, Hermet

Reviewed By: Hermet

Differential Revision: https://phab.enlightenment.org/D
---
 src/lib/elc_naviframe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index df6fe81..9d2b7c5 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1122,7 +1122,7 @@ _on_item_show_finished(void *data,
if (sd->freeze_events)
  evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
 
-   evas_object_smart_callback_call(WIDGET(it), SIG_TRANSITION_FINISHED, data);
+   evas_object_smart_callback_call(WIDGET(it), SIG_TRANSITION_FINISHED, 
EO_OBJ(it));
 }
 
 static void

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Tests: Fix custom smart event callbacks' tests

2015-03-24 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=a119c3ccdb8cc8ed7b6581cce0daddd72023ee42

commit a119c3ccdb8cc8ed7b6581cce0daddd72023ee42
Author: Kai Huuhko 
Date:   Wed Mar 25 05:53:38 2015 +0200

Tests: Fix custom smart event callbacks' tests

Custom events always get event_info since commit
fcc93216f9b7179f4af13b29ddde848fcc94f19f
---
 tests/evas/test_06_object_smart.py | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/tests/evas/test_06_object_smart.py 
b/tests/evas/test_06_object_smart.py
index b672f87..2a15ba8 100644
--- a/tests/evas/test_06_object_smart.py
+++ b/tests/evas/test_06_object_smart.py
@@ -50,7 +50,7 @@ class SmartObjectTest(unittest.TestCase):
 
 def testCallbackSimple(self):
 self.expected_cbs = 2
-def _event1_cb(obj):
+def _event1_cb(obj, event_info):
 self.expected_cbs -= 1
 self.obj.callback_add("event1", _event1_cb)
 self.obj.move(1, 1) # should fire "event1"
@@ -60,7 +60,7 @@ class SmartObjectTest(unittest.TestCase):
 self.assertEqual(self.expected_cbs, 0)
 
 def testCallbackArgs(self):
-def _event1_cb(obj, arg1, arg2, arg3, mykarg2, mykarg1):
+def _event1_cb(obj, event_info, arg1, arg2, arg3, mykarg2, mykarg1):
 self.assertEqual(arg1, 11)
 self.assertEqual(arg2, 22)
 self.assertEqual(arg3, "arg3")
@@ -72,9 +72,9 @@ class SmartObjectTest(unittest.TestCase):
 self.obj.move(0, 0)
 
 def testCallbackMulti(self):
-def _event1_cb1(obj):
+def _event1_cb1(obj, event_info):
 self.expected_cbs += 1
-def _event1_cb2(obj):
+def _event1_cb2(obj, event_info):
 self.expected_cbs += 10
 
 self.expected_cbs = 0
@@ -98,7 +98,7 @@ class SmartObjectTest(unittest.TestCase):
 self.assertEqual(self.expected_cbs, 0)
 
 def testCallbackLots(self):
-def _event1_cb(obj):
+def _event1_cb(obj, event_info):
 self.expected_cbs -= 1
 
 self.expected_cbs = 2
@@ -113,7 +113,7 @@ class SmartObjectTest(unittest.TestCase):
 self.assertEqual(self.expected_cbs, 0)
 
 def testCallbackLots2(self):
-def _event1_cb(obj):
+def _event1_cb(obj, event_info):
 self.expected_cbs -= 1
 
 self.expected_cbs = 1
@@ -128,20 +128,20 @@ class SmartObjectTest(unittest.TestCase):
 self.assertEqual(self.expected_cbs, 0)
 
 def testCallbackWrongDel1(self):
-def _event1_cb(obj):
+def _event1_cb(obj, event_info):
 pass
 self.assertRaises(ValueError, self.obj.callback_del, "event1", 
_event1_cb)
 
 def testCallbackWrongDel2(self):
-def _event1_cb(obj):
+def _event1_cb(obj, event_info):
 pass
 self.obj.callback_add("event1", _event1_cb)
 self.obj.callback_add("event1", _event1_cb)
 self.obj.callback_del("event1", _event1_cb)
 self.obj.callback_del("event1", _event1_cb)
 self.assertRaises(ValueError, self.obj.callback_del, "event1", 
_event1_cb)
-
-
+
+
 if __name__ == '__main__':
 unittest.main(verbosity=2)
 evas.shutdown()

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Elm.Naviframe: Fix item_pop_cb call

2015-03-24 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=9f4eab83b7f789c2237ac02e9f33352499712314

commit 9f4eab83b7f789c2237ac02e9f33352499712314
Author: Kai Huuhko 
Date:   Tue Mar 24 14:48:05 2015 +0200

Elm.Naviframe: Fix item_pop_cb call
---
 efl/elementary/naviframe.pyx | 13 +
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/efl/elementary/naviframe.pyx b/efl/elementary/naviframe.pyx
index 4053adf..394dad5 100644
--- a/efl/elementary/naviframe.pyx
+++ b/efl/elementary/naviframe.pyx
@@ -128,7 +128,7 @@ cdef object _cb_object_item_conv(void *addr):
 
 cdef Eina_Bool py_elm_naviframe_item_pop_cb(void *data, Elm_Object_Item *it):
 cdef:
-ObjectItem item = _object_item_to_python(it)
+NaviframeItem item = _object_item_to_python(it)
 object func
 tuple args
 dict kwargs
@@ -136,7 +136,7 @@ cdef Eina_Bool py_elm_naviframe_item_pop_cb(void *data, 
Elm_Object_Item *it):
 
 try:
 func, args, kwargs = item.pop_cb_spec
-ret = func(*args, **kwargs)
+ret = func(item, *args, **kwargs)
 except Exception:
 traceback.print_exc()
 
@@ -192,12 +192,9 @@ cdef class NaviframeItem(ObjectItem):
 if isinstance(title_label, unicode): title_label = 
PyUnicode_AsUTF8String(title_label)
 self.label = title_label
 
-if prev_btn is not None:
-self.prev_btn = prev_btn.obj
-if next_btn is not None:
-self.next_btn = next_btn.obj
-if content is not None:
-self.item_content = content.obj
+self.prev_btn = prev_btn.obj if prev_btn is not None else NULL
+self.next_btn = next_btn.obj if next_btn is not None else NULL
+self.item_content = content.obj if content is not None else NULL
 
 self.args = args
 self.kwargs = kwargs

-- 




[EGIT] [bindings/python/python-efl] master 01/02: Elm.Naviframe: Add item_pop_cb, missing event_info for events

2015-03-24 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=73b54938c696be49098edf1fd54126d18edb8e32

commit 73b54938c696be49098edf1fd54126d18edb8e32
Author: Kai Huuhko 
Date:   Tue Mar 24 09:05:40 2015 +0200

Elm.Naviframe: Add item_pop_cb, missing event_info for events
---
 efl/elementary/naviframe.pxd |  3 ++
 efl/elementary/naviframe.pyx | 67 +---
 2 files changed, 48 insertions(+), 22 deletions(-)

diff --git a/efl/elementary/naviframe.pxd b/efl/elementary/naviframe.pxd
index 8afc192..a88495b 100644
--- a/efl/elementary/naviframe.pxd
+++ b/efl/elementary/naviframe.pxd
@@ -2,6 +2,8 @@ from efl.evas cimport Evas_Object, Eina_Bool, Eina_List
 from object_item cimport Elm_Object_Item
 
 cdef extern from "Elementary.h":
+ctypedef Eina_Bool (*Elm_Naviframe_Item_Pop_Cb)(void *data, 
Elm_Object_Item *it)
+
 Evas_Object *elm_naviframe_add(Evas_Object *parent)
 Elm_Object_Item *elm_naviframe_item_push(Evas_Object *obj, const 
char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object 
*content, const char *item_style)
 Elm_Object_Item *elm_naviframe_item_insert_before(Evas_Object 
*obj, Elm_Object_Item *before, const char *title_label, Evas_Object *prev_btn, 
Evas_Object *next_btn, Evas_Object *content, const char *item_style)
@@ -26,3 +28,4 @@ cdef extern from "Elementary.h":
 Eina_Boolelm_naviframe_event_enabled_get(const Evas_Object 
*obj)
 Elm_Object_Item *elm_naviframe_item_simple_push(Evas_Object *obj, 
Evas_Object *content)
 void elm_naviframe_item_simple_promote(Evas_Object 
*obj, Evas_Object *content)
+void elm_naviframe_item_pop_cb_set(Elm_Object_Item 
*it, Elm_Naviframe_Item_Pop_Cb func, void *data)
diff --git a/efl/elementary/naviframe.pyx b/efl/elementary/naviframe.pyx
index 301c03f..4053adf 100644
--- a/efl/elementary/naviframe.pyx
+++ b/efl/elementary/naviframe.pyx
@@ -121,6 +121,28 @@ from object_item cimport _object_item_to_python, 
_object_item_list_to_python, \
 
 from efl.utils.deprecated cimport DEPRECATED
 
+import traceback
+
+cdef object _cb_object_item_conv(void *addr):
+return _object_item_to_python(addr)
+
+cdef Eina_Bool py_elm_naviframe_item_pop_cb(void *data, Elm_Object_Item *it):
+cdef:
+ObjectItem item = _object_item_to_python(it)
+object func
+tuple args
+dict kwargs
+bint ret
+
+try:
+func, args, kwargs = item.pop_cb_spec
+ret = func(*args, **kwargs)
+except Exception:
+traceback.print_exc()
+
+return ret
+
+
 cdef class NaviframeItem(ObjectItem):
 """
 
@@ -133,6 +155,7 @@ cdef class NaviframeItem(ObjectItem):
 Evas_Object *prev_btn
 Evas_Object *next_btn
 Evas_Object *item_content
+tuple pop_cb_spec
 
 def __cinit__(self):
 self.prev_btn = NULL
@@ -381,30 +404,30 @@ cdef class NaviframeItem(ObjectItem):
 elm_naviframe_item_title_enabled_set(self.item, enabled, 
transition)
 
 def title_enabled_set(self, enabled, transition):
-"""title_enabled_set(self, enabled, transition)
-
-Enable/Disable the title area with transition effect.
+elm_naviframe_item_title_enabled_set(self.item, enabled, transition)
 
-:param enabled: if `True`, title area will be visible, hidden 
otherwise.
-:type enabled: bool
-:param transition: if `True`, transition effect of the title will be 
visible.
-:type transition: bool
+def title_enabled_get(self):
+return bool(elm_naviframe_item_title_enabled_get(self.item))
 
-.. versionadded:: 1.9
+def pop_cb_set(self, func, *args, **kwargs):
+"""Set a function to be called when the item is going to be popped.
 
-"""
-elm_naviframe_item_title_enabled_set(self.item, enabled, transition)
+:param func: the callback function.
 
-def title_enabled_get(self):
-"""
+.. warning::
 
-:return: `True` if the title is visible.
-:rtype: bool
+Don't set "clicked" callback to the prev button additionally if the
+function does an exact same logic with this ``func``. When hardware
+back key is pressed then both callbacks will be called.
 
-.. versionadded:: 1.9
+.. versionadded:: 1.14
 
 """
-return bool(elm_naviframe_item_title_enabled_get(self.item))
+if not callable(func):
+raise ValueError("func must be callable!")
+
+self.pop_cb_spec = (func, args, kwargs)
+elm_naviframe_item_pop_cb_set(self.item, py_elm_naviframe_item_pop_cb, 
NULL)
 
 
 cdef class Naviframe(LayoutClass):
@@ -572,24 +595,24 @@ cdef class Naviframe

[EGIT] [bindings/python/python-efl] master 02/02: Elm.Toolbar: Add missing event_info to events

2015-03-24 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=61b53f24774de8690c6f1e4a8a6e55e30e514714

commit 61b53f24774de8690c6f1e4a8a6e55e30e514714
Author: Kai Huuhko 
Date:   Tue Mar 24 09:06:49 2015 +0200

Elm.Toolbar: Add missing event_info to events
---
 efl/elementary/toolbar.pyx | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/efl/elementary/toolbar.pyx b/efl/elementary/toolbar.pyx
index 47abfca..a89f6ea 100644
--- a/efl/elementary/toolbar.pyx
+++ b/efl/elementary/toolbar.pyx
@@ -1128,17 +1128,17 @@ cdef class Toolbar(LayoutClass):
 
 def callback_clicked_add(self, func, *args, **kwargs):
 """When the user clicks on a toolbar item and becomes selected."""
-self._callback_add("clicked", func, args, kwargs)
+self._callback_add_full("clicked", _cb_object_item_conv, func, args, 
kwargs)
 
 def callback_clicked_del(self, func):
-self._callback_del("clicked", func)
+self._callback_del_full("clicked", _cb_object_item_conv, func)
 
 def callback_longpressed_add(self, func, *args, **kwargs):
 """When the toolbar is pressed for a certain amount of time."""
-self._callback_add("longpressed", func, args, kwargs)
+self._callback_add_full("longpressed", _cb_object_item_conv, func, 
args, kwargs)
 
 def callback_longpressed_del(self, func):
-self._callback_del("longpressed", func)
+self._callback_del_full("longpressed", _cb_object_item_conv, func)
 
 def callback_language_changed_add(self, func, *args, **kwargs):
 """When the program language changes."""

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Evas.Rect: Use inline and nogil to optimize the intersection helper

2015-03-23 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=3a143848324c03b647155fe295de4a2d05aa

commit 3a143848324c03b647155fe295de4a2d05aa
Author: Kai Huuhko 
Date:   Tue Mar 24 05:05:28 2015 +0200

Evas.Rect: Use inline and nogil to optimize the intersection helper
---
 efl/evas/efl.evas_rect.pxi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efl/evas/efl.evas_rect.pxi b/efl/evas/efl.evas_rect.pxi
index 5d55f51..76dce95 100644
--- a/efl/evas/efl.evas_rect.pxi
+++ b/efl/evas/efl.evas_rect.pxi
@@ -19,7 +19,7 @@ from efl.utils.deprecated cimport DEPRECATED
 cimport cython
 
 
-cdef int _spans_intersect(int c1, int l1, int c2, int l2):
+cdef inline int _spans_intersect(int c1, int l1, int c2, int l2) nogil:
 return not (((c2 + l2) <= c1) or (c2 >= (c1 + l1)))
 
 

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Evas.SmartObject: Fix smart callbacks with NULL event_info

2015-03-23 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=fcc93216f9b7179f4af13b29ddde848fcc94f19f

commit fcc93216f9b7179f4af13b29ddde848fcc94f19f
Author: Kai Huuhko 
Date:   Mon Mar 23 19:15:25 2015 +0200

Evas.SmartObject: Fix smart callbacks with NULL event_info

If the event has a conversion func assigned but event_info is NULL
we should pass None instead of dropping the parameter. This behavior
is now the same as before the callback rework.
---
 efl/evas/efl.evas_object_smart.pxi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index 087841e..3014e08 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -420,11 +420,13 @@ cdef void _smart_callback(void *data, Evas_Object *o, 
void *event_info) with gil
 if event_info == NULL:
 try:
 tmp_args = [spec.obj]
+if spec.event_conv != NULL:
+tmp_args.append(None)
 tmp_args.extend(spec.args)
 PyObject_Call(spec.func, tuple(tmp_args), spec.kargs)
 except Exception:
 traceback.print_exc()
-elif spec.event_conv == NULL:
+elif event_info != NULL and spec.event_conv == NULL:
 EINA_LOG_DOM_WARN(
 PY_EFL_EVAS_LOG_DOMAIN,
 'event_info for event "%s" is not NULL and there is no 
event_conv!',

-- 




[EGIT] [bindings/python/python-efl] master 03/04: Evas.SmartObject: Use calloc to allocate the array

2015-03-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=1940b51f156273f3faecde6a43c0a8b2fdf8d409

commit 1940b51f156273f3faecde6a43c0a8b2fdf8d409
Author: Kai Huuhko 
Date:   Sat Mar 21 10:37:47 2015 +0200

Evas.SmartObject: Use calloc to allocate the array
---
 efl/evas/efl.evas_object_smart.pxi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index b8bc667..a27e05b 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -21,7 +21,7 @@ from efl.eo cimport Eo, EoIterator
 
 from cpython cimport Py_INCREF, Py_DECREF, PyObject_Call, \
 PyMem_Malloc, PyMem_Free
-from libc.stdlib cimport malloc
+from libc.stdlib cimport malloc, calloc
 from libc.string cimport strdup
 
 #cdef object _smart_classes
@@ -53,7 +53,7 @@ cdef Evas_Smart_Cb_Description *_descriptions_to_array(descs):
 return NULL
 
 # allocate arr_len + 1 so it's NULL terminated
-arr = malloc(arr_len + 1 * 
sizeof(Evas_Smart_Cb_Description))
+arr = calloc(arr_len + 1, 
sizeof(Evas_Smart_Cb_Description))
 
 for i, desc in enumerate(descs):
 arr[i] = desc.desc[0]

-- 




[EGIT] [bindings/python/python-efl] master 01/04: Eo: Add the property 'parent'

2015-03-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=0266db28bdc943cec09d14220b16e257a5e13ff7

commit 0266db28bdc943cec09d14220b16e257a5e13ff7
Author: Kai Huuhko 
Date:   Sat Mar 21 10:06:45 2015 +0200

Eo: Add the property 'parent'
---
 efl/eo/efl.eo.pyx | 22 --
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx
index 604ea1e..43411a4 100644
--- a/efl/eo/efl.eo.pyx
+++ b/efl/eo/efl.eo.pyx
@@ -294,22 +294,24 @@ cdef class Eo(object):
 """
 return bool(self.obj == NULL)
 
-def parent_set(self, Eo parent):
-"""Set the parent object.
+property parent:
+"""The parent object
 
-:param parent: The object to set as parent.
-:type parent: :class:`Eo`
+:type: :class:`Eo`
 
 """
-eo_do(self.obj, eo_parent_set(parent.obj))
+def __set__(self, Eo parent):
+eo_do(self.obj, eo_parent_set(parent.obj))
 
-def parent_get(self):
-"""Get the parent object.
+def __get__(self):
+cdef cEo *parent = NULL
+parent = eo_do_ret(self.obj, parent, eo_parent_get())
+return object_from_instance(parent)
 
-:return: The parent object
-:rtype: :class:`Eo`
+def parent_set(self, Eo parent):
+eo_do(self.obj, eo_parent_set(parent.obj))
 
-"""
+def parent_get(self):
 cdef cEo *parent = NULL
 parent = eo_do_ret(self.obj, parent, eo_parent_get())
 return object_from_instance(parent)

-- 




[EGIT] [bindings/python/python-efl] master 04/04: Evas: Optimize Smart methods

2015-03-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=8a0dccbf227d0ba211a0d66ee4a2882df01ead44

commit 8a0dccbf227d0ba211a0d66ee4a2882df01ead44
Author: Kai Huuhko 
Date:   Sat Mar 21 10:38:24 2015 +0200

Evas: Optimize Smart methods

The methods are now checked on __init__. If a method is not initially
defined the calls to it will be skipped entirely. The methods can be
rebound later in runtime by initially providing an empty (pass) method.
---
 efl/evas/efl.evas_object_smart.pxi | 267 +++--
 1 file changed, 110 insertions(+), 157 deletions(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index a27e05b..087841e 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -106,9 +106,6 @@ cdef void _smart_object_delete(Evas_Object *o) with gil:
 return
 cls = tmp
 
-if "delete" not in cls.__class__.__dict__:
-return
-
 eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
 if tmp == NULL:
 EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -134,9 +131,6 @@ cdef void _smart_object_move(Evas_Object *o, Evas_Coord x, 
Evas_Coord y) with gi
 return
 cls = tmp
 
-if "move" not in cls.__class__.__dict__:
-return
-
 eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
 if tmp == NULL:
 EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -315,9 +309,6 @@ cdef void _smart_object_calculate(Evas_Object *o) with gil:
 return
 cls = tmp
 
-if "calculate" not in cls.__class__.__dict__:
-return
-
 eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
 if tmp == NULL:
 EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -344,9 +335,6 @@ cdef void _smart_object_member_add(Evas_Object *o, 
Evas_Object *clip) with gil:
 return
 cls = tmp
 
-if "member_add" not in cls.__class__.__dict__:
-return
-
 eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
 if tmp == NULL:
 EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -375,9 +363,6 @@ cdef void _smart_object_member_del(Evas_Object *o, 
Evas_Object *clip) with gil:
 return
 cls = tmp
 
-if "member_del" not in cls.__class__.__dict__:
-return
-
 eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
 if tmp == NULL:
 EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -464,29 +449,70 @@ cdef void _smart_callback(void *data, Evas_Object *o, 
void *event_info) with gil
 cdef class Smart(object):
 
 """
-An abstract class with callback methods.
+An abstract class that defines the behavior of the SmartObject.
 
 :param clipped: Make this Smart use a clipped class, ignoring the provided
-callback methods.
+callback methods, except :meth:`calculate` and :meth:`resize`.
 :type clipped: bool
 
-..
-note::
-You should never instantiate the Smart base class directly,
-but inherit and implement methods, then instantiate this new subclass.
+.. versionadded:: 1.14
 
-.. note::
-Do not call your parent on methods you want to replace the behavior
-instead of extending it. For example, some methods have default
-implementation, you may want to remove and replace it with something
-else.
+.. staticmethod:: delete(obj)
+
+Called in order to remove object from canvas and deallocate its 
resources.
+
+Usually you delete object's children here.
+
+.. staticmethod:: member_add(obj, Object child)
+
+Called when children is added to object.
+
+.. staticmethod:: member_del(obj, Object child)
+
+Called when children is removed from object.
+
+.. staticmethod:: move(obj, int x, int y)
+
+Called in order to move object to given position.
+
+Usually you move children here.
+
+.. staticmethod:: resize(obj, int w, int h)
+
+Called in order to resize object.
+
+.. staticmethod:: show(obj)
+
+Called in order to show the given element.
+
+Usually you call the same function on children.
+
+.. staticmethod:: hide(obj)
+
+Called in order to hide the given element.
+
+Usually you call the same function on children.
+
+.. staticmethod:: color_set(obj, int r, int g, int b, int a)
+
+Called in order to change object color.
+
+.. staticmethod:: clip_set(obj, Eo clip)
+
+Called in order to limit object's visible area.
+
+.. staticmethod:: clip_unset(obj)
+
+Called in order to unlimit object's visible area.
+
+.. staticmethod:: calculate(obj)
+
+Called befor

[EGIT] [bindings/python/python-efl] master 02/04: setup.py: Fix Cython specific options

2015-03-21 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=149f7d12781587a86f231516ef0e169fa1aa1c0d

commit 149f7d12781587a86f231516ef0e169fa1aa1c0d
Author: Kai Huuhko 
Date:   Sat Mar 21 10:08:25 2015 +0200

setup.py: Fix Cython specific options

**SPANK SPANK SPANK!!**  Dave has been naughty.

build_ext must be imported from Cython in order for options like
 --cython-dbg to be understood by the setup script.
---
 setup.py | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/setup.py b/setup.py
index dcc5d12..9aaa607 100755
--- a/setup.py
+++ b/setup.py
@@ -7,6 +7,7 @@ import platform
 import subprocess
 from distutils.core import setup, Command
 from distutils.extension import Extension
+from distutils.command.build_ext import build_ext
 from distutils.version import StrictVersion, LooseVersion
 from efl import __version__, __version_info__ as vers
 
@@ -216,7 +217,7 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) 
& set(sys.argv):
 if USE_CYTHON:
 # check if cython is installed
 try:
-from Cython.Distutils import Extension
+from Cython.Distutils import Extension, build_ext
 from Cython.Build import cythonize
 import Cython.Compiler.Options
 except ImportError:
@@ -515,6 +516,7 @@ setup(
 'build_doc': BuildDoc,
 'clean_generated_files': CleanGenerated,
 'uninstall': Uninstall,
+'build_ext': build_ext,
 },
 command_options={
 'build_doc': {
@@ -523,7 +525,7 @@ setup(
 },
 'install': {
 'record': ('setup.py', RECORD_FILE),
-}
+},
 },
 packages=packages,
 ext_package="efl",

-- 




[EGIT] [apps/epour] master 02/02: Limit to Python 2 for now

2015-03-20 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=80b5693719b81ac8c804dafeeb0aea460b98323d

commit 80b5693719b81ac8c804dafeeb0aea460b98323d
Author: Kai Huuhko 
Date:   Sat Mar 21 01:40:02 2015 +0200

Limit to Python 2 for now
---
 bin/epour | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/epour b/bin/epour
index 019d3d9..72519f8 100755
--- a/bin/epour
+++ b/bin/epour
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2
 
 import logging
 

-- 




[EGIT] [apps/epour] master 01/02: Handle setting the standard icons better

2015-03-20 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/apps/epour.git/commit/?id=c7f05643c46c6845dfb67adbffc27fee00ca9311

commit c7f05643c46c6845dfb67adbffc27fee00ca9311
Author: Kai Huuhko 
Date:   Sat Mar 21 01:39:26 2015 +0200

Handle setting the standard icons better
---
 epour/gui/__init__.py | 43 +--
 1 file changed, 33 insertions(+), 10 deletions(-)

diff --git a/epour/gui/__init__.py b/epour/gui/__init__.py
index da17161..98ddcc1 100644
--- a/epour/gui/__init__.py
+++ b/epour/gui/__init__.py
@@ -309,13 +309,24 @@ class SessionStatus(Table):
 
 ses_pause_ic = self.ses_pause_ic = Icon(parent)
 ses_pause_ic.size_hint_align = -1.0, -1.0
-try:
-if session.is_paused():
+
+if session.is_paused():
+try:
 ses_pause_ic.standard = "player_pause"
-else:
+except Exception:
+try:
+ses_pause_ic.standard = "media-playback-pause"
+except Exception:
+log.warn("the pause icon could not be set")
+else:
+try:
 ses_pause_ic.standard = "player_play"
-except RuntimeError:
-log.debug("Setting session ic failed")
+except Exception:
+try:
+ses_pause_ic.standard = "media-playback-play"
+except Exception:
+log.warn("the play icon could not be set")
+
 self.pack(ses_pause_ic, 1, 0, 1, 1)
 ses_pause_ic.show()
 
@@ -326,7 +337,7 @@ class SessionStatus(Table):
 d_ic = Icon(parent, size_hint_align=FILL_BOTH)
 try:
 d_ic.standard = "down"
-except RuntimeError:
+except Exception:
 log.debug("Setting d_ic failed")
 self.pack(d_ic, 0, 1, 1, 1)
 d_ic.show()
@@ -339,7 +350,7 @@ class SessionStatus(Table):
 u_ic = Icon(self, size_hint_align=FILL_BOTH)
 try:
 u_ic.standard = "up"
-except RuntimeError:
+except Exception:
 log.debug("Setting u_ic failed")
 self.pack(u_ic, 0, 2, 1, 1)
 u_ic.show()
@@ -460,11 +471,23 @@ class TorrentClass(GenlistItemClass):
 ic = Icon(obj)
 try:
 if h.is_paused():
-ic.standard = "player_pause"
+try:
+ic.standard = "player_pause"
+except Exception:
+try:
+ic.standard = "media-playback-pause"
+except Exception:
+pass
 elif h.is_seed():
-ic.standard = "up"
+try:
+ic.standard = "up"
+except Exception:
+pass
 else:
-ic.standard = "down"
+try:
+ic.standard = "down"
+except Exception:
+pass
 except RuntimeError:
 log.debug("Setting torrent ic failed")
 ic.tooltip_text_set(self.state_str[s.state])

-- 




  1   2   3   4   5   6   7   >