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_LIST
ELM_FILESELECTOR_GRID 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: ctypedef enum Elm_Flip_Direction:
ELM_FLIP_DIRECTION_UP ELM_FLIP_DIRECTION_UP
ELM_FLIP_DIRECTION_DOWN ELM_FLIP_DIRECTION_DOWN

View File

@ -1,6 +1,6 @@
from efl.eina cimport Eina_Bool, const_Eina_List from efl.eina cimport Eina_Bool, const_Eina_List
from efl.evas cimport Evas_Object, const_Evas_Object 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 from libc.string cimport const_char
cdef extern from "Elementary.h": 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_filters_clear(Evas_Object *obj)
void elm_fileselector_hidden_visible_set(Evas_Object *obj, Eina_Bool visible) void elm_fileselector_hidden_visible_set(Evas_Object *obj, Eina_Bool visible)
Eina_Bool elm_fileselector_hidden_visible_get(const_Evas_Object *obj) 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 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 cpython cimport PyUnicode_AsUTF8String
from libc.stdint cimport uintptr_t from libc.stdint cimport uintptr_t
@ -97,6 +151,16 @@ cimport enums
ELM_FILESELECTOR_LIST = enums.ELM_FILESELECTOR_LIST ELM_FILESELECTOR_LIST = enums.ELM_FILESELECTOR_LIST
ELM_FILESELECTOR_GRID = enums.ELM_FILESELECTOR_GRID 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): def _cb_string_conv(uintptr_t addr):
cdef const_char *s = <const_char *>addr cdef const_char *s = <const_char *>addr
return _ctouni(s) if s is not NULL else None return _ctouni(s) if s is not NULL else None
@ -253,6 +317,25 @@ cdef class Fileselector(LayoutClass):
def mode_get(self): def mode_get(self):
return elm_fileselector_mode_get(self.obj) 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: property multi_select:
"""Multi-selection in the file selector widget. """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.button import Button
from efl.elementary.check import Check from efl.elementary.check import Check
from efl.elementary.list import List 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_button import FileselectorButton
from efl.elementary.fileselector_entry import FileselectorEntry from efl.elementary.fileselector_entry import FileselectorEntry
from efl.elementary.separator import Separator from efl.elementary.separator import Separator
@ -46,6 +46,10 @@ def ck_cb_buttons(bt, fs):
print("Toggle buttons_ok_cancel") print("Toggle buttons_ok_cancel")
fs.buttons_ok_cancel = not fs.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): def bt_cb_sel_get(bt, fs):
print("Get Selected:" + fs.selected_get()) print("Get Selected:" + fs.selected_get())
@ -56,6 +60,9 @@ def bt_cb_mode_cycle(bt, fs):
mode = fs.mode + 1 mode = fs.mode + 1
fs.mode_set(mode if mode < 2 else 0) 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): def fileselector_clicked(obj, item=None):
win = StandardWindow("fileselector", "File selector test", autodel=True, win = StandardWindow("fileselector", "File selector test", autodel=True,
@ -102,6 +109,11 @@ def fileselector_clicked(obj, item=None):
hbox.pack_end(ck) hbox.pack_end(ck)
ck.show() 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) hbox = Box(win, horizontal=True)
vbox.pack_end(hbox) vbox.pack_end(hbox)
hbox.show() hbox.show()
@ -121,6 +133,11 @@ def fileselector_clicked(obj, item=None):
hbox.pack_end(bt) hbox.pack_end(bt)
bt.show() 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.resize(240, 350)
win.show() win.show()