Ru-Board.club
← Вернуться в раздел «Программы»

» OutWiker

Автор: Jenyay
Дата сообщения: 24.05.2014 10:39
Ага, тоже увидел перемещение кнопок.

Есть подозрение, что это из-за порядка вызова обработчиков событий, потому что в классе Event обработчики хранятся в set, а не в list.


Цитата:
В справке - source, wraptag, spoiler, thumbgallery. При этом на викистранице source не активен, а остальные активны.


А вот этого повторить не могу.


Цитата:
И почему-то мой плагин wraptag в консольном режиме активен через раз. Это из-за чего может быть? У плагинов могут какие-то конфликты возникнуть между собой?


У них должны быть разные имена и, если используешь actions, то уникальные разные stringId. Больше ничего в голову не приходит.
Автор: unreal666
Дата сообщения: 24.05.2014 11:34

Цитата:
А вот этого повторить не могу.


Цитата:
У них должны быть разные имена и, если используешь actions, то уникальные разные stringId. Больше ничего в голову не приходит.

stringId разные. И сейчас потестил - оба этих глюка возникают только, если в папке плагинов одновременно и source и wraptag.

Добавлено:

Цитата:
Есть подозрение, что это из-за порядка вызова обработчиков событий, потому что в классе Event обработчики хранятся в set, а не в list.

сделать list

Добавлено:
еще. Понавтыкал print'ов в методы ActionGuiCreator, в которых присутствует _onTabChanged.
Когда происходит такой глюк, _onTabChanged отрабатывает только один раз - при выполнении метода createTools. Дальше при переключении между вкладками/заметками обработчик не реагирует, как-будто переключений между вкладками не было (хотя при переключении заметок иногда реагирует; закономерности не увидел).
И насчет неактивности wraptag. Оказывается, если происходит такой глюк, то его активность зависит от вкладки, на которой была открыта база. Если при открытии базы вкладкой была 1-ая вкладка (т.е. вики), то плагин наоборот всегда активен.
Автор: unreal666
Дата сообщения: 24.05.2014 17:13
ЗЫ.
Временно перешел на OldGuiCreator

Добавлено:
Кстати. OW случайно автопереводом не занимается. А то у меня почему-то часть GUI для плагина wraptag оказалась переведенной. При этом папка locale у него пустая
Или что-то непереведенное OW может взять из своей папки locale?

Добавлено:
ЗЫ еще.
Кстати. Случайно не вешается ли на одно событие в OW только один обработчик?
Т.е. одно событие (EVT_PAGE_TAB_CHANGED) и один обработчик (или из source или из wraptag).
Т.к. смотрю в PyCharm - сделал брейкпоинт на строке ниже pageView.Bind в ActionGuiCreator в своем плагине.
И смотрю в окне Watches отладчика - pageView.GetPreviousHandler() и pageView.GetNextHandler() == None.
Это же событие уже было зарегано в плагине source (там тоже делал брейкпоинт), т.е. GetPreviousHandler по идее должен быть не None, если я конечно правильно использую эти методы, т.к. немного запутался в коде wx.
Автор: Jenyay
Дата сообщения: 24.05.2014 18:15

Цитата:
Кстати. OW случайно автопереводом не занимается. А то у меня почему-то часть GUI для плагина wraptag оказалась переведенной. При этом папка locale у него пустая
Или что-то непереведенное OW может взять из своей папки locale?


Очень даже может быть. Там для перевода есть некоторые шаманства, связанные с импортом и передачей в модули функции _, если ты не вызвал инициализацию локали на свою папку, то скорее всего должен подцепить перевод из программы, а если вызывал, то не факт.


Цитата:
Кстати. Случайно не вешается ли на одно событие в OW только один обработчик?
Т.е. одно событие (EVT_PAGE_TAB_CHANGED) и один обработчик (или из source или из wraptag).


По идее не должно быть такого, хотя надо попробовать. В ближайшее время я собирался более активно это событие использовать внутри программы, поэтому замечу, если это так.

Добавлено:
Сейчас посмотрел, да, после Source (_onTabChanged) событие дальше не распространяется, чтобы оно пошло дальше в этот метод надо добавить event.Skip().
Автор: unreal666
Дата сообщения: 24.05.2014 19:36

Цитата:
в этот метод надо добавить event.Skip().

не понял. Можно точнее, куда чего добавить?

Добавлено:
Еще просьба. На винде справку желательно запускать не через python, а через pythonw.
А еще лучше сначала попытаться запустить как pythonw, если не прокатило, тогда python. А то мало ли, может у кого-то стоит не полный пакет питона, а какой-нибудь огрызок.
Автор: Jenyay
Дата сообщения: 24.05.2014 20:30
unreal666


Цитата:
не понял. Можно точнее, куда чего добавить?


Сделал коммит в исходниках.


Цитата:
Еще просьба. На винде справку желательно запускать не через python, а через pythonw.
А еще лучше сначала попытаться запустить как pythonw, если не прокатило, тогда python. А то мало ли, может у кого-то стоит не полный пакет питона, а какой-нибудь огрызок.


А зачем? Если кто-то использует exe-сборку, то запускается сам exe-шник, а если кто-то запускает как скрипт, то подразумевается, что Питон у него установлен.

Кстати, надо бы тебя добавить в список благодарностей, как на тебя лучше сослаться?
Автор: unreal666
Дата сообщения: 24.05.2014 21:08

Цитата:
А зачем? Если кто-то использует exe-сборку, то запускается сам exe-шник, а если кто-то запускает как скрипт, то подразумевается, что Питон у него установлен.

у меня, к примеру, OW запускается через pythonw, т.е. как GUI-приложение. А если запускать через python, то дополнительно будет висеть ненужная консоль. Я через консоль иногда запускаю OW только для отладки, вместо запуска тяжелого PyCharm.

Цитата:
Кстати, надо бы тебя добавить в список благодарностей, как на тебя лучше сослаться?

так и сослаться - unreal666 Не хочу светить имя. ну или вообще не ссылаться, мне до фени.
Автор: Jenyay
Дата сообщения: 24.05.2014 21:10
А почему не запускаешь как exe-шник, если не нужна отладка?
Автор: unreal666
Дата сообщения: 24.05.2014 21:33
Потому что мне проще скопировать исходники из репозитория в папку в прогах, чем каждый раз компилить их. Да и у меня эти исходники одновременно юзаются и в "быту" и для отладки.

Добавлено:
А де можно найти флаги для параметра style класса TextCtrl ?
Чего-то в исходниках wx порылся... нашел определения для стиля других элементов управления (файл defs.h), в котором для TextCtrl флагов не вижу.

Добавлено:
Хотя не надо. Нашел в textctrl.h.
И вопрос. Именно TextCtrl используется в качестве текстового поля ввода или какой другой класс?
Автор: Jenyay
Дата сообщения: 24.05.2014 22:03

Цитата:
А де можно найти флаги для параметра style класса TextCtrl ?


Например, вот - http://docs.wxwidgets.org/2.8/wx_wxtextctrl.html


Цитата:
Потому что мне проще скопировать исходники из репозитория в папку в прогах, чем каждый раз компилить их. Да и у меня эти исходники одновременно юзаются и в "быту" и для отладки.


Тогда ты лучше в своей версии поправь файл src\outwiker\actions\openhelp.py, там в самой последней строке.

Не хочется еще разделять на Windows/Linux, и так приходится тестировать в трех вариантах сборки.

Добавлено:

Цитата:
Именно TextCtrl используется в качестве текстового поля ввода или какой другой класс?


Если ты имеешь в виду большое поле ввода? Там StyledTextCtrl, а в остальных местах TextCtrl.
Автор: unreal666
Дата сообщения: 24.05.2014 22:11

Цитата:
Если ты имеешь в виду большое поле ввода?

нет. Обычное мелкое однострочное поле ввода.

Добавлено:

Цитата:
Тогда ты лучше в своей версии поправь файл src\outwiker\actions\openhelp.py, там в самой последней строке.

а какой тип ошибки возникнет при попытке выполнения несуществующего исполняемого файла?
А то может просто сделать try...except, в котором в блоке try будет попытка запуска pythonw, а в except - python.
Автор: Jenyay
Дата сообщения: 24.05.2014 22:18

Цитата:
а какой тип ошибки возникнет при попытке выполнения несуществующего исполняемого файла?
А то может просто сделать try...except, в котором в блоке try будет попытка запуска pythonw, а в except - python.


Под Windows - WindowsError, но лучше ловить OSError для общности.
Автор: unreal666
Дата сообщения: 28.05.2014 21:08
Jenyay

Цитата:
В википарсере улучшен разбор параметров команд (:...

(\s*=\s*(?P<param>([-_\w]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)"""

разве в \w символ _ не входит?
Автор: Jenyay
Дата сообщения: 28.05.2014 21:35

Цитата:
разве в \w символ _ не входит?


Вообще да, я про него все время забываю. Не понимаю, зачем его вообще в \w запихнули
Автор: Jenyay
Дата сообщения: 09.06.2014 20:48
Выложил новую нестабильную версию 1.8.0.730. В этой версии изменения носят скорее оформительский характер, плюс были исправлены некоторые ошибки. Из заметных пользователям изменений можно отметить:

* В окне настроек в поле выбора формата отображения даты показывается пример того, как это будет выглядеть.
* В HTML-страницы вставляется тег <title> с заголовком страницы.
* В стилях теперь $$ не заменяются на $.
* Исправление ошибок.

Тем, кто пользуется последними версиями OutWiker, советую обновиться до этой версии, поскольку сейчас я делаю новые плагины, которые будут требовать для своей работы OutWiker этой версии.

Один такой плагин уже готов, он предназначен для организации автоматической нумерации чего-либо (рисунков, разделов и т.п.) на странице, но я его выложу как-нибудь позже, хотя самые нетерпеливые могут взять его из исходников на github (https://github.com/Jenyay/outwiker )

Сейчас делаю плагин для вставки тегов <title>, <meta description...> и <meta keywords...> в викистраницы.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: denver 22
Дата сообщения: 10.06.2014 08:55
Установил поверх 1.8.0.724. При запуске выдает ошибку со ссылками на несколько папок (или файлов) с программой Питон, на локальные папки в директории User на ПК Jenyay...
Вернул 1.8.0.724 - всё снова запустилось нормально.
Автор: Jenyay
Дата сообщения: 10.06.2014 09:12
Интересно, а можешь показать скриншот?
Автор: denver 22
Дата сообщения: 10.06.2014 09:25
Скриншот ошибки
Автор: Jenyay
Дата сообщения: 10.06.2014 09:25
Я вчера, похоже, вообще старую версию залил (предыдущую), сейчас перезакачал новую.

Добавлено:
Да, я как раз эту ошибку исправил.
Автор: denver 22
Дата сообщения: 10.06.2014 09:30
Jenyay
Спасибо Вам ещё раз!
По поводу мобильных платформ есть какие-то изменения (начинания)? Был бы счастлив, если бы под Андроид хотя бы вьюер простенький появился. Чтобы мобильно пользоваться теми знаниями, которые собрал в своих Записях.
Автор: Jenyay
Дата сообщения: 10.06.2014 09:32
Нет, до мобильной версии пока руки вообще не доходят. Сейчас все силы бросил на доведение версии 1.8 до релиза.
Автор: unreal666
Дата сообщения: 21.06.2014 02:27
Jenyay
А зачем в htmlrenderie.py заменил переносы строк на \r\n?
Теперь по diff-у непонятно, какие другие изменения были в нем.

Добавлено:
По хорошему надо бы привести все py-файлы к одному виду переносов строк.
А то еще такие есть.

Добавлено:
Кстати. Может для Windows нафиг хранить пути к файлам/заметкам и т.п. во всех местах в коде с символом "\".?
Может во всех таких путях/ссылках явно заменять "\" на "/". Один фиг функции типа "os.path.exists" нормально работают с такими путями и в винде.
тогда будет меньше мусора по преобразованию туда-обратно URL'ов в файловые пути.

Добавлено:
в файле src/outwiker/gui/htmlcontrollerie.py :

Код: page = self._getPageByProtocol (href)

if page is not None:
return (None, page, None, None)
Автор: Jenyay
Дата сообщения: 21.06.2014 07:10

Цитата:
А зачем в htmlrenderie.py заменил переносы строк на \r\n?


Это похоже git надо винить.


Цитата:
По хорошему надо бы привести все py-файлы к одному виду переносов строк.


Это уже работа git - http://jenyay.net/Git/Autocrlf


Цитата:
так неинтересно - якоря обламываются


Сейчас проверил - якоря на странице работают.


Цитата:
Насчет  UNC-путей в винде:


Я давно про них думаю, может как-нибудь и сделаю.
Автор: unreal666
Дата сообщения: 21.06.2014 08:53

Цитата:
Это уже работа git - http://jenyay.net/Git/Autocrlf

я про этот параметр знаю. Но ИМХо лучше за это пускай человек отвечает, а не будет делать, как ему вздумается. У меня, к примеру, на винде, во всех юзаемых мной (Notepad++, SciTE, Sublime Text) текстовых редакторах по умолчанию стоит LF.

Цитата:
Это похоже git надо винить.

угу. Где-то на твоей стороне, т.к. в репо на github'е у тебя такая же фигня. У меня в C:\Users\my_login\.gitconfig переменная "core.autocrlf" установлена в false, чтобы не было никакого своеволия со стороны git.

ЗЫ.
Интересно, какие настройки git'а стоят у github'а? Он же тоже участвует в этой цепочки "создание -> коммит -> push -> fetch".

Добавлено:

Цитата:
Сейчас проверил - якоря на странице работают.

даже вида page://какой-то_udi#якорь ?
А то я не могу проверить, т.к. текущие исходники при попытке вызова свойства страницы или настроек проги у меня происходит ошибка

Код: Traceback (most recent call last):
File "U:\Git\outwiker\src\outwiker\gui\pagepopupmenu.py", line 67, in __onPropertiesPopup
outwiker.gui.pagedialog.editPage (self.parent, self.popupPage)
File "U:\Git\outwiker\src\outwiker\core\commands.py", line 44, in readOnlyWrap
return func (*args, **kwargs)
File "U:\Git\outwiker\src\outwiker\gui\pagedialog.py", line 33, in editPage
dlg = EditPageDialog (currentPage, currentPage.parent, parent = parentWnd)
File "U:\Git\outwiker\src\outwiker\gui\pagedialog.py", line 162, in __init__
BasePageDialog.__init__ (self, parentPage, *args, **kwds)
File "U:\Git\outwiker\src\outwiker\gui\basepagedialog.py", line 47, in __init__
self._fillComboType()
File "U:\Git\outwiker\src\outwiker\gui\basepagedialog.py", line 135, in _fillComboType
for factory in FactorySelector.factories:
AttributeError: type object 'FactorySelector' has no attribute 'factories'
Автор: Jenyay
Дата сообщения: 21.06.2014 21:17

Цитата:
А то я не могу проверить, т.к. текущие исходники при попытке вызова свойства страницы или настроек проги у меня происходит ошибка


Ага, похоже, это я вчера сломал во время большого рефакторинга.


Цитата:
даже вида page://какой-то_udi#якорь ?  


А такой и раньше не работал. В будущем сделаю.


Цитата:
И кстати, откуда брать инфу об UID страницы?


Оно сгенерится при копировании ссылки на страницу.

Добавлено:
Сейчас поправил ошибки.
Автор: unreal666
Дата сообщения: 21.06.2014 23:32

Цитата:
А такой и раньше не работал. В будущем сделаю.

Зато у меня подобные ссылки работали ([[коммент -> ..\..\page1\page2#anchor1]] и другие). Я это добавил во время добавления обработки относительных ссылок на страницы.
Автор: Jenyay
Дата сообщения: 22.06.2014 07:39
Кстати, теперь эти якоря сделать проще, только надо слеш еще добавить: page://какой-то_uid/#якорь. И это можно сделать более кроссплатформенно.
Автор: Jenyay
Дата сообщения: 23.06.2014 09:20
Выложил новую нестабильную версию 1.8.0.732. В этой версии из изменений, заметных пользователю, можно отметить два момента.

Во-первых, теперь можно ссылаться на страницы, используя уникальные идентификаторы, а не имена страниц. Таким образом исчезает проблема, когда вы ставите ссылку на страницу, а потом ее перемещаете или переименовываете. Новые ссылки имеют вид page://__5a44f232-96ac-4aee-8665-4753f008c0e1. Эти ссылки можно получить так же, как и раньше, с помощью пункта меню "Копировать ссылку на страницу". Разумеется, такие ссылки можно использовать и на викистраницах, и в HTML-страницах.

Если вам не нравится внешний вид таких ссылок, то чуть позже я выложу плагин, который позволит менять идентификаторы страниц, чтобы сделать их более осмысленными.

Старый вид ссылок продолжает работать, но использовать его не рекомендуется, поскольку преимуществ у них особо нет.

Во-вторых, добавил возможность применять стиль страниц разом к целой ветке или всем заметкам дерева. Для этого предназначен пункт меню "Инструменты -> Установить стиль для ветки".

Начиная с этой версии я изменил статус программы с dev на beta, поскольку все заметные пользователям изменения, которые планировал сделать к релизу версии 1.8 сделал, осталось написать несколько новых плагинов. Но это не значит, что саму программу я трогать не буду, внутри я еще буду приводить код в порядок, добавлять возможности для будущих плагинов, но внешне это заметно не будет.

По плану до релиза осталось закрыть 7 заявок - http://jenyay.net/traq/outwiker/tickets?milestone=1-8&status=allopen

Скачать очередную нестабильную версию можно как всегда по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: unreal666
Дата сообщения: 23.06.2014 09:39

Цитата:
  По плану до релиза осталось закрыть 7 заявок - http://jenyay.net/traq/outwiker/tickets?milestone=1-8&status=allopen


Цитата:
Плагин для вставки текущей даты/времени

и где, интересно, эта дата/время храниться будут? В opt-файле? А то тоже думал о таком плагине, но непонятно было, где это хранить.

Цитата:
Плагин для вставки ссылки на родительскую страницу

если бы в основном репо уже была поддержка относительных ссылок, то данная заявка уже была бы решена
Автор: Jenyay
Дата сообщения: 23.06.2014 11:24

Цитата:
и где, интересно, эта дата/время храниться будут? В opt-файле? А то тоже думал о таком плагине, но непонятно было, где это хранить.


Нигде. Это просто кнопка для вставки текущей даты в виде текста.


Цитата:
если бы в основном репо уже была поддержка относительных ссылок, то данная заявка уже была бы решена


Страницы: 123456789101112131415161718192021222324252627282930

Предыдущая тема: Acronis True Image Home vs Clonezilla


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.