Масленица располагает выкладывать первые блины, так что ловите
Кто помнит - была тема: http://gbx.ru/index.php?showtopic=50751
Сверхзадача проекта так не была решена в связи с крайним несоответствием задачи и выбранного инструмента.
So may Fx File Navgator rest in peace - встречайте PythonedFileManager!
Цели нового проекта те же: Полноценный файловый менеджер для GP2X/GPH серии (и для любого похожего девайса с наличием порта pygame)
Под полноценностью понимается:
+ возможность копировать, удалять, переименовывать и создавать файлы и каталоги (*)
+ поддержка юникода (ака русские буковки) (*)
- просмотр картинок (*), текстов
- проигрывание музыки
+ запуск gpe и перехват "стандартного" exec gp2xmenu (*)
- редактор текстов (для конфигов)
- выполнение произвольных комманд ОС (ака шелл, ака терминал)
+ настройка сети (*)
- опрос/исследование сети, передача файлов
- поддержка внешней клавиатуры, джойстика, других девайсов на какие хватит драйверов
- монтирование-размонтирование флешек / SD-шек
Пункты помеченные (*) реализованы в текущей версии, остальное WIP.
Каждый пункт знаю как сделать и сделаю тем скорее, чем выше будет энтузиазм сообщества
Этот пост будет обновляться по ходу развития событий.
НАПОМИНАЮ, ЧТО ФАЙЛОВЫЙ МЕНЕДЖЕР ДЛЯ CAANOO = РИСК ОТСТРЕЛИТЬ СЕБЕ НОГУ И БРИКНУТЬ КОНСОЛЬ! ТЕСТИРОВАНИЕ ТОЛЬКО ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ. Я ПРЕДУПРЕДИЛ. Я СЕРЬЁЗНО.
Не желающие рисковать консолькой могут принять участие в обсуждении.
Управление:
стик - навигация в списках, ввод букв в редакторе
B - выбор пункта списка
A - смена режима инфопанели
X - возврат в родительский каталог, затирание буквы в редакторе
Y - прокрутка стека, пробел в редакторе
HELP-I - вызов меню, завершение редактирования с подтверждением
MENU=HOME - выход, выход из редактирование с отказом от действия/изменений
R - помещение в стек, смена раскладки в редакторе
L - выброс из стека, смена варианта раскладки в редакторе
------
В чём мне сейчас нужен совет:
- любые вопросы из серии "а как тут сделать это?" для доведения юзабилити
- наиболее разумные биндинги для режима навигации/работы со стеком/ввода текста
- наиболее разумное распределение символов для четырёхпозиционного ввода
- наиболее удобное расположение и поведение элементов интерфейса в режиме навигации
также принимаются любые общие вопросы и соображения.
Последний раз редактировалось: EugeneP (Пт Апр 06, 2012 8:29 am), всего редактировалось 10 раз(а)
Файловый менеджер это как раз то чего не хватает, спасибо.
При переименовывании файлов нажатие на R изменяет регистр букв, нажатие на L - вылет из программы. Как менять язык я так и не понял, возможно как раз на L должно быть.
Директорию скопировать не смог, выдает ошибку.
По поводу интерфейса:
Хорошо было бы сделать при нажатии влево/вправо пролистывание списка на целый экран, а при удержании вверх/вниз пролислывание списка построчно, как это сделано в эмуляторах Notaz'а(вообще у него управление в меню идеальное).
Шрифт на мой взгляд слишком большой.
Может быть стек перенести на отдельный экран? Переключаться на него, к примеру, по клавише Help ||
Ввод текста неплохо реализован в программе pspmaps http://dl.openhandhelds.org/cgi-bin/caanoo.cgi?0,0,0,0,112,763, присмотрись к такому варианту, немного тренировки и текст вводится довольно быстро. _________________ Мой блог Мой эмулятор CHIP-8 и Super CHIP
Файловый менеджер это как раз то чего не хватает, спасибо.
При переименовывании файлов нажатие на R изменяет регистр букв, нажатие на L - вылет из программы. Как менять язык я так и не понял, возможно как раз на L должно быть.
Директорию скопировать не смог, выдает ошибку.
Падения исправлено. Ошибки файловых операций сделал помногословнее.
В случае падения нужно смотреть и присылать файлик err - там как правило лог ошибок.
Otto Baynes писал(а):
По поводу интерфейса:
Хорошо было бы сделать при нажатии влево/вправо пролистывание списка на целый экран, а при удержании вверх/вниз пролислывание списка
построчно
Сделано постраничное перелистывание. Залипание кнопок требует немного больше времени, но сделаю обязательно.
Otto Baynes писал(а):
Шрифт на мой взгляд слишком большой.
Может быть стек перенести на отдельный экран? Переключаться на него, к примеру, по клавише Help ||
Ввод текста неплохо реализован в программе pspmaps http://dl.openhandhelds.org/cgi-bin/caanoo.cgi?0,0,0,0,112,763, присмотрись к такому варианту, немного тренировки и текст вводится довольно быстро.
Интерфейс, цвета, шрифты пока чистая условность. Когда программа будет более-менее функционально полна, тогда возьмусь за красивости. Конфиг со сменными шрифтами/цветами/фоном постараюсь сделать на неделе. Если кто-нибудь набросает эскиз интрерфейса - будет вообще шик.
Упомянутый девятипозиционный ввод хорош, и я могу сделать его опциональным вариантом для коротких раскладок, но основным всё равно останется текущий четрёхпозиционный. 9-пощиционный ввод даёт максимум 9x4=36 символов в раскладке, т.е. русский сюда влазит уже без знаков препинания, а татарский, к примеру, не влазит вообще.
Новая версия перезалита.
PS
Доброе слово и багрепорт помогают лучше просто доброго слова
В todo хорошо бы встроить возможность багрепортить на файлы, делая это как по WiFi, так и по какому-нибудь более простому алгоритму через клиент на PC, который возьмет к примеру файл отчета из стандартной папки на консоли и кинет его в нужную разработчику тему.
Сам репорт привязывается к примеру к md5 gpe-шника и фильтруется таким образом в нужную тему автоматом.
К репорту бы хорошо уметь клеить один два файла (например сейвы в эмуляторе, чтобы показать в какой момент происходит глюк либо лог ошибки). Список того, что должно клеится также может задаваться разработчиком.
Если еще развить эту идею - то можно по контролке определять и ромы (по уже готовым базам), и по определенным таким образом названиям иметь возможность быстро перейти в браузере на странички с факьюшками для этих конкретных игр, делать списки совместимости игр и пр.
Также не забывай про возможность клеить торренты на русбейзе, можно тоже как-то использовать данный момент. И вообще - хостинг вполне можно использовать под нужды форумчан и их идеи.
Еще маленькое дополнение по поводу функциональности - предзапуск вифи в обход стандартной процедуры для наших свистков перед запуском требующих их приложений. _________________ Просто Вовк
При создании файла или папки содержащей кириллицу программа вылетает, но файл/папку создает. При заходе в такую папку снова вылет.
Код:
Traceback (most recent call last):
File "pfm.py", line 80, in <module>
pfm.MainLoop()
File "pfm.py", line 53, in MainLoop
mode = m_fm.loop()
File "/home/eugene/pygame/pfm/ModeFM.py", line 141, in loop
File "/home/eugene/pygame/pfm/EntryList.py", line 29, in relist
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0424' in position 6: ordinal not in range(128)
Если создавая файл стереть название "NewFile" и написать свое большими латинскими буквами, то файл создастся названный маленькими буквами. С папками тоже самое. Если в названии есть и строчные и прописные, то все нормально. _________________ Мой блог Мой эмулятор CHIP-8 и Super CHIP
Я тут подумал: у нас же есть сенсорный экран. Как вариант ввод текста можно реализовать через виртуальную клавиатуру. _________________ Мой блог Мой эмулятор CHIP-8 и Super CHIP
Если запускаемый файл gpe не сценарий оболочки, а бинарник, то после выхода из программы ни меню, ни pfm не запускаются, консоль зависает. К примеру после запуска grafx2 в файле err содержится:
Код:
pfm.py:11: RuntimeWarning: import threads: cannot import name itemgetter
(ImportError: cannot import name itemgetter)
import pygame, sys
Неплохо было бы сделать что бы после возврата из запущенной программы pfm показывал бы директорию в которой мы находились до запуска программы.
Еще хочется просмотр свойств файла/директории (размер, дата создания/изменения и т.п.). И немного раздражает что элементы интерфейса вылазят за экран(под пластиковый ободок), можно их отодвинуть от краев экрана на пару-тройку пикселей? _________________ Мой блог Мой эмулятор CHIP-8 и Super CHIP
Если запускаемый файл gpe не сценарий оболочки, а бинарник, то после выхода из программы ни меню, ни pfm не запускаются, консоль зависает. К примеру после запуска grafx2 в файле err содержится:
Код:
pfm.py:11: RuntimeWarning: import threads: cannot import name itemgetter
(ImportError: cannot import name itemgetter)
import pygame, sys
Неплохо было бы сделать что бы после возврата из запущенной программы pfm показывал бы директорию в которой мы находились до запуска программы.
Еще хочется просмотр свойств файла/директории (размер, дата создания/изменения и т.п.). И немного раздражает что элементы интерфейса вылазят за экран(под пластиковый ободок), можно их отодвинуть от краев экрана на пару-тройку пикселей?
- Добавлен параметр comp_padding - ширина пустой рамки по периметру экрана. Переписал под это дело большую часть интерфейсов.
- Нашел причину бага с grafx2. Баг не совсем мой, стандартное меню в такой ситуации тоже рушится. Купил поллитру, думаю как красивее костыли расставить. (Не пофиксил пока, короче)
- Добавил начальную поддержку сети (кнопочка HELP-II) - пока умеем только включать донгл, находить сеть, цепляться к открытой незащищённой сети и получать адрес по dhcp.
-- Подключаем донгл
-- retry networking -> появляется scan wifi
-- scan wifi -> появляются имена сетей
-- имя сети -> выдаётся ip, можно запускать браузер ( в комплект не входит )
Все писалось очень быстро и по-гоблински. Скорее всего что-то где-то сломал.
Сеть нужна, ибо:
- Планируется передача файлов по сети.
- Планируется установка приложений и ромов из сети + некая обратная связь (там выше туманные пожелания Hahahoj)
- В перспективе должна получится полная замена стандартного меню, соответственно нужны все функции стандартного меню.
- Стандартное меню пускает сеть через **** и поэтому работает только с "родными" брендированными свистакми, хотя драйвер поддерживает почти любой ralink-чип. До сих пор не могу понять КАК они этого добились. Наша пускалка сети работает с почти любым донглом на ralink-е.
Не находит он мой донгл (родной caanoo'вский). Делаю так:
Вставляю донгл, жму хелп_2, выделяю "Retry network", жму B, через секунду выделяется пункт "Back" и больше ничего не происходит. scan wifi так и не появился ни разу.
Скрыто:
pfm.py:11: RuntimeWarning: import threads: cannot import name itemgetter
(ImportError: cannot import name itemgetter)
import pygame
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/wireless/rt3070sta.ko': unknown symbol in module
insmod: cannot insert '/lib/modules/2.6.24/kernel/net/packet/af_packet.ko': File exists
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы