Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » OutWiker

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

Открыть новую тему     Написать ответ в эту тему

Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OutWiker


Текущая стабильная версия: 3.0.0

Текущая бета-версия: 3.0.0.888 (13.05.2021)



 
Поддерживаемые операционные системы: Windows / Linux.
 
Программа OutWiker предназначена для хранения заметок в виде дерева. Такие программы называют outliner'ами, персональными вики или древовидными редакторами. Я долго подбирал для себя подобную программу из имеющихся, но в итоге решил сделать свой outliner в том виде, как он мне представляется наиболее удобным для использования.
Основное отличие OutWiker от других подобных программ заключается в том, что OutWiker не только хранит дерево заметок в виде обычных директорий на диске, но и поощряет изменение такой базы внешними средствами. Также к программе может быть прикреплено любое количество файлов.
Кроме того, OutWiker может содержать страницы разного типа, в данный момент поддерживаются два типа страниц: обычный текст и HTML, но в будущем количество типов страниц будет увеличиваться.
 
Основные возможности
* База хранится в виде директорий на диске.
* Поддержка плагинов
* К каждой заметке можно прикреплять любое количество файлов.
* Страницы могут быть разных типов. В данный момент поддерживаются текстовые страницы, страницы в формате HTML и вики-страницы.
* Прикрепленные картинки могут быть вставлены в HTML-страницы.
* Раскраска синтаксиса HTML.
* Поддержка тегов.
* Поддержка закладок на страницы.
* Каждая ветвь дерева может быть открыта как отдельная вики.
* Иконки для страниц.
* Кроссплатформенность (поддержка Windows и Linux).
* Портабельность. Программа все настройки хранит рядом с запускаемым файлом.
* Программа распространяется с открытыми исходниками.
* Возможность создания ссылок между страницами.
* Есть глобальный поиск по заметкам и поиск по тегам.
* К программе прилагается справка.

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 19:47 04-05-2010 | Исправлено: Jenyay, 19:39 13-05-2021
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Я бы назвал PluginsPanel.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 23:41 19-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
одна PluginsPanel уже есть.
Так что как-то по другому надо.
Или предлагаешь именно в уже существующей панели PluginsPanel создавать другим плагинам "подпанели"?
Наверно так даже лучше будет; новую панель придумывать/создавать не надо
 
Добавлено:
только нифига не понял, как к этой панели добавить подпанели.

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 07:03 21-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Порылся в wxPython, нашел в классе BookCtrlBase метод GetPageCount.
Т.е. получается, что сразу после создания в проге OW страницы плагинов ( self.__createPluginsPage () в классе PrefController ) можно заюзать что-то типа

Код:
self._dialog.pluginsPagePos = self._dialog.treeBook.GetPageCount() - 1

А в самих плагинах в обработчике __onPreferencesDialogCreate вместо

Код:
dialog.appendPreferenceGroup (panelName, panelsList)

писать типа такого

Код:
dialog.treeBook.InsertSubPage(dialog.pluginsPagePos, prefPanel, panelName)

Так ?

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 17:10 21-12-2015
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Да, я думаю, что лучше делать панели, вложенные в существущую.
 
Да, все верно, только InsertSubPage нужно вызывать сразу после создания родительской страницы, что не очень хорошо, потому что плагины могут захотеть добавить не вложенную в плагины панель. Treebook не дает возможности добавить подстраницу в уже давно добавленную страницу, поэтому я хочу переделать этот диалог, чтобы не использовать Treebook.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 19:44 21-12-2015 | Исправлено: Jenyay, 19:44 21-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Да, все верно, только InsertSubPage нужно вызывать сразу после создания родительской страницы

Ну почему же. InsertSubPage вставляет по позиции в дереве. Достаточно же знать позицию pluginsPage и можно вставить в него.
Если, как я выше описал, сохранить self._dialog.pluginsPagePos, то это можно сделать позже в плагинах. Главное, чтобы после отработки _onPrefDialogCreate какой-нибудь плагин не вставил страницу выше pluginsPage.
 
ЗЫ.
Кстати, а сейчас OW на какую версию wxPython рассчитан? (у меня непонятно какая, но походу меньше 2.9.5).
А то смотрю в v2.9.5 в классе BookCtrlBase есть метод FindPage, который наверно как раз и возвращает эту позицию (правда там про какой-то индекс на самом деле говорится).
Т.е. можно и самому в последствии в плагинах как-то определять позицию pluginsPage по объекту pluginsPage. Только непонятно, где временно хранить сам объект pluginsPage. Если в экземпляре PrefDialog, то не помешает ли это работе деструктора этого диалога. Если помешает, то в каком месте PrefDialog надо очищать ссылку на pluginsPage.
 

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 02:06 22-12-2015 | Исправлено: unreal666, 02:07 22-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел вариант вообще без изменения кода самой проги.
Нужно только в контроллере плагина изменить обработчик создания диалога настроек на

Код:
...
from outwiker.gui.preferences.pluginspanel import PluginsPanel
from .preferencepanel import PreferencePanel
...
 
class Controller (object):
 
...
 
    def __onPreferencesDialogCreate (self, dialog):
        prefPanel = PreferencePanel (dialog.treeBook, self._plugin.config)
        panelName = _("Source [Plugin]")
         
        pluginsPagePos = None
 
        for nPage in xrange(dialog.treeBook.PageCount):
            if isinstance(dialog.treeBook.GetPage(nPage), PluginsPanel):
                pluginsPagePos = nPage
                break
         
        if pluginsPagePos is not None:
            dialog.treeBook.InsertSubPage(pluginsPagePos, prefPanel, panelName)

попробовал на плагине source - "воткнулся" правильно.

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 07:41 22-12-2015 | Исправлено: unreal666, 17:57 22-12-2015
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Похоже, что ты прав, скорее всего я до этого смотрел на AddSubPage.
 

Цитата:
стати, а сейчас OW на какую версию wxPython рассчитан?

 
На 2.8, после релиза начну переводить на версию 3.0, там будут некоторые проблемы с обратной совместимостью.
 

Цитата:
А то смотрю в v2.9.5 в классе BookCtrlBase есть метод FindPage, который наверно как раз и возвращает эту позицию (правда там про какой-то индекс на самом деле говорится).  

 
А вот в 2.8 я такого метода не вижу.
 


----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 14:09 22-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А вот в 2.8 я такого метода не вижу.

по доке, он только в 2.9.5 и появился.
Да и не нужен он уже, код выше в посте и так работает. Но для этого кода я как раз из того метода и взял идею (посмотрел его код в cpp-файле wxWidget'а).

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 17:58 22-12-2015 | Исправлено: unreal666, 18:00 22-12-2015
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Привязываться к номеру панели как-то не интересно.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 19:51 22-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
но работает же

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 21:14 22-12-2015
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В блоге подвел итоги развития OutWiker в 2015 году и написал некоторые планы на развитие в следующем 2016 году - http://jenyay.net/blog/2015/12/30/outwiker-razvitie-v-2015-godu-i-plany-na-2016-god/

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 13:53 30-12-2015
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jenyay
Можешь в классе Parser в методе __init__ добавить строку типа self.pluginsProps = {} ?
Нужно для хранения свойств плагинов, уникальных (свойств) для страницы.
В самом плагине использовать наподобие
self.parser.pluginsProps['имя_плагина']['имя_свойства'] = значение_свойства

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 11:42 20-01-2016 | Исправлено: unreal666, 11:46 20-01-2016
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Хорошо, только, наверное, назову его как-то по-другому (customProps?), его же не только смогут плагины использовать.
 
Добавлено:
Добавил пока в ветке dev.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 21:28 20-01-2016
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Выложил новую нестабильную версию OutWiker и долгожданный плагин WebPage, который позволяет скачивать страницы из интернета.  
 
Подробности про эту версию и плагин читайте в блоге - http://jenyay.net/blog/2016/02/06/outwiker-1-9-0-782-unstable-i-novyjj-plagin-webpage/
 
Теперь начинаю готовить OutWiker к релизу, который хотелось бы выложить через месяц-два.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 21:36 06-02-2016
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В прошлой нестабильной версии OutWiker повилась ошибка, из-за которой у пользователей Windows программа не запускалась, если путь до OutWiker содержал русские буквы. В сегодняшней версии эта ошибка исправлена, а заодно я обновил несколько плагинов.
 
Подробности читайте в блоге по ссылке - http://jenyay.net/blog/2016/02/11/outwiker-1-9-0-784-unstable-i-obnovleniya-plaginov/

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 16:17 11-02-2016
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не понял. Где в проге регаются горячие клавиши Alt+[ и Alt+]? Или они зареганы где-то в wx?

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 07:15 14-02-2016 | Исправлено: unreal666, 07:15 14-02-2016
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Похоже, просто про клавиши [ и ] забыл. Добавлю.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 10:10 14-02-2016
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос был к тому, что в редакторе эти клавиши работают как перемещение по абзацам, а где они зареганы в проге/исходниках - я чего-то не нашел.
искал по исходникам по "[" и '[' - нифига, только в pyparsing есть такие строки.

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 10:14 14-02-2016 | Исправлено: unreal666, 10:15 14-02-2016
Jenyay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
unreal666
 
Значит они по умолчанию используются в редакторе.

----------
http://jenyay.net - софт, исходники и фото

Всего записей: 1737 | Зарегистр. 13-10-2001 | Отправлено: 08:30 15-02-2016
unreal666



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сделай, плиз, при запуске проги создание бекапа outwiker.ini, если он не нулевого размера.  
А то уже два раза он слетал:
- 1-ый раз чего-то намудрил в самой проге
- 2-ой раз сегодня после установки обновления винды - почему-то до 2-ой перезагрузки компа чего-то в системе сломалось, что при запуске OW повылезала куча ошибок. Даже в IE что-то сломалось - сайты суперкриво загружались.

Всего записей: 6610 | Зарегистр. 14-02-2005 | Отправлено: 05:39 18-02-2016 | Исправлено: unreal666, 05:40 18-02-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

Компьютерный форум Ru.Board » Компьютеры » Программы » OutWiker


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru