add new Filesector.sort_method property (since 1.9)

This commit is contained in:
Davide Andreoli 2014-01-08 22:06:29 +01:00
parent fdb66d75e6
commit bd063f0ece
4 changed files with 115 additions and 2 deletions

View File

@ -116,6 +116,17 @@ cdef extern from "Elementary.h":
ELM_FILESELECTOR_LIST
ELM_FILESELECTOR_GRID
ctypedef enum Elm_Fileselector_Sort:
ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
ELM_FILESELECTOR_SORT_BY_TYPE_ASC
ELM_FILESELECTOR_SORT_BY_TYPE_DESC
ELM_FILESELECTOR_SORT_BY_SIZE_ASC
ELM_FILESELECTOR_SORT_BY_SIZE_DESC
ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
ELM_FILESELECTOR_SORT_LAST
ctypedef enum Elm_Flip_Direction:
ELM_FLIP_DIRECTION_UP
ELM_FLIP_DIRECTION_DOWN

View File

@ -1,6 +1,6 @@
from efl.eina cimport Eina_Bool, const_Eina_List
from efl.evas cimport Evas_Object, const_Evas_Object
from enums cimport Elm_Fileselector_Mode
from enums cimport Elm_Fileselector_Mode, Elm_Fileselector_Sort
from libc.string cimport const_char
cdef extern from "Elementary.h":
@ -26,3 +26,5 @@ cdef extern from "Elementary.h":
void elm_fileselector_filters_clear(Evas_Object *obj)
void elm_fileselector_hidden_visible_set(Evas_Object *obj, Eina_Bool visible)
Eina_Bool elm_fileselector_hidden_visible_get(const_Evas_Object *obj)
Elm_Fileselector_Sort elm_fileselector_sort_method_get(const_Evas_Object *obj)
void elm_fileselector_sort_method_set(Evas_Object *obj, Elm_Fileselector_Sort method)

View File

@ -82,8 +82,62 @@ Fileselector modes
Layout as a grid
.. _Elm_Fileselector_Sort:
Fileselector sort method
========================
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
Sort by filename in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
Sort by filename in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_ASC
Sort by file type in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_TYPE_DESC
Sort by file type in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_ASC
Sort by file size in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_SIZE_DESC
Sort by file size in descending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
Sort by file modification date in ascending order
.. versionadded:: 1.9
.. data:: ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
Sort by file modification date in descending order
.. versionadded:: 1.9
"""
from cpython cimport PyUnicode_AsUTF8String
from libc.stdint cimport uintptr_t
@ -97,6 +151,16 @@ cimport enums
ELM_FILESELECTOR_LIST = enums.ELM_FILESELECTOR_LIST
ELM_FILESELECTOR_GRID = enums.ELM_FILESELECTOR_GRID
ELM_FILESELECTOR_SORT_BY_FILENAME_ASC = enums.ELM_FILESELECTOR_SORT_BY_FILENAME_ASC
ELM_FILESELECTOR_SORT_BY_FILENAME_DESC = enums.ELM_FILESELECTOR_SORT_BY_FILENAME_DESC
ELM_FILESELECTOR_SORT_BY_TYPE_ASC = enums.ELM_FILESELECTOR_SORT_BY_TYPE_ASC
ELM_FILESELECTOR_SORT_BY_TYPE_DESC = enums.ELM_FILESELECTOR_SORT_BY_TYPE_DESC
ELM_FILESELECTOR_SORT_BY_SIZE_ASC = enums.ELM_FILESELECTOR_SORT_BY_SIZE_ASC
ELM_FILESELECTOR_SORT_BY_SIZE_DESC = enums.ELM_FILESELECTOR_SORT_BY_SIZE_DESC
ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC = enums.ELM_FILESELECTOR_SORT_BY_MODIFIED_ASC
ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC = enums.ELM_FILESELECTOR_SORT_BY_MODIFIED_DESC
ELM_FILESELECTOR_SORT_LAST = enums.ELM_FILESELECTOR_SORT_LAST
def _cb_string_conv(uintptr_t addr):
cdef const_char *s = <const_char *>addr
return _ctouni(s) if s is not NULL else None
@ -253,6 +317,25 @@ cdef class Fileselector(LayoutClass):
def mode_get(self):
return elm_fileselector_mode_get(self.obj)
property sort_method:
"""The way files are sorted in the fileselector.
:type: :ref:`Elm_Fileselector_Sort`
.. versionadded:: 1.9
"""
def __get__(self):
return elm_fileselector_sort_method_get(self.obj)
def __set__(self, method):
elm_fileselector_sort_method_set(self.obj, method)
def sort_method_set(self, method):
elm_fileselector_sort_method_set(self.obj, method)
def sort_method_get(self):
return elm_fileselector_sort_method_get(self.obj)
property multi_select:
"""Multi-selection in the file selector widget.

View File

@ -12,7 +12,7 @@ from efl.elementary.label import Label
from efl.elementary.button import Button
from efl.elementary.check import Check
from efl.elementary.list import List
from efl.elementary.fileselector import Fileselector
from efl.elementary.fileselector import Fileselector, ELM_FILESELECTOR_SORT_LAST
from efl.elementary.fileselector_button import FileselectorButton
from efl.elementary.fileselector_entry import FileselectorEntry
from efl.elementary.separator import Separator
@ -46,6 +46,10 @@ def ck_cb_buttons(bt, fs):
print("Toggle buttons_ok_cancel")
fs.buttons_ok_cancel = not fs.buttons_ok_cancel
def ck_cb_hidden(bt, fs):
print("Toggle hidden_visible")
fs.hidden_visible = not fs.hidden_visible
def bt_cb_sel_get(bt, fs):
print("Get Selected:" + fs.selected_get())
@ -56,6 +60,9 @@ def bt_cb_mode_cycle(bt, fs):
mode = fs.mode + 1
fs.mode_set(mode if mode < 2 else 0)
def bt_cb_sort_cycle(bt, fs):
sort_method = fs.sort_method + 1
fs.sort_method = sort_method if sort_method < ELM_FILESELECTOR_SORT_LAST else 0
def fileselector_clicked(obj, item=None):
win = StandardWindow("fileselector", "File selector test", autodel=True,
@ -102,6 +109,11 @@ def fileselector_clicked(obj, item=None):
hbox.pack_end(ck)
ck.show()
ck = Check(win, text="hidden", state=fs.hidden_visible)
ck.callback_changed_add(ck_cb_hidden, fs)
hbox.pack_end(ck)
ck.show()
hbox = Box(win, horizontal=True)
vbox.pack_end(hbox)
hbox.show()
@ -121,6 +133,11 @@ def fileselector_clicked(obj, item=None):
hbox.pack_end(bt)
bt.show()
bt = Button(win, text="sort_method cycle")
bt.callback_clicked_add(bt_cb_sort_cycle, fs)
hbox.pack_end(bt)
bt.show()
win.resize(240, 350)
win.show()