<tagezi>
и всеравно тотже результат. я не нахожу этого комита
<mikekaganski>
tagezi: что значит "не нахожу этого коммита"? Ты же отправил данные: 6d9989c53cf0cb8fa93b17f499b13768138dbf89 is the first bad commit - source sha:2be139d76bdb66e77719613d802dc0047c284456
<mikekaganski>
Может, ты ищешь 6d9989c53cf0cb8fa93b17f499b13768138dbf89 ? Это неправильно
<tagezi>
а что искать нужно?
<mikekaganski>
Это коммит в бибисекте. Он не зря имеет описание source sha:2be139d76bdb66e77719613d802dc0047c284456
<mikekaganski>
искать нужно именно 2be139d76bdb66e77719613d802dc0047c284456
<mikekaganski>
это он, не сомневайся. Просто при чём тут строки?
<tagezi>
круто.. и причем тут строки маркуса? :)
<mikekaganski>
Я просто не понимаю твой коммент "как можно добавить строки для вба и сломать отображение библиотек?" - может, ты просто говорил о строках кода, а я думаю о строках UI?
<mikekaganski>
тогда прошу прощения, туплю
<mikekaganski>
Ну, на мой взгляд, коммит выглядит безобидно (я бы не подумал, что оно вызывает такое - разве что то, что это Маркус :)
<mikekaganski>
здесь фикс должен быть простой: участок кода известен; где ставить брейкпоинт, понятно
<mikekaganski>
tagezi: ты займёшься?
<tagezi>
да, я думаю над ним
<mikekaganski>
ок
<mikekaganski>
там явно в этом месте либо происходит исключение, либо ... (тут мысль останавливается).
<tagezi>
mikekaganski: а где код смотрится?
<mikekaganski>
?
<tagezi>
опенглок, вспомнил :)
<tagezi>
прости :)
<mikekaganski>
эй, не надо тут этих "прости"! Тут все свои :))
<tagezi>
mikekaganski: так, а как установить точку останова?
<tagezi>
ScriptDocument::Impl::createModule
<tagezi>
так он говорит что функция не определена
<mikekaganski>
Это зависит от твоего дебагера (я работаю в VS)
<mikekaganski>
Reference< XVBAModuleInfo > xVBAModuleInfo(xLib, UNO_QUERY) возвращает ссылку на интерфейс, причём ссылка может быть пустой, если объект xLib не поддерживает этот интерфейс
<mikekaganski>
Reference::is() как раз проверяет, не пустая ли ссылка
<tagezi>
mikekaganski: так, а если делать удаление в переименовании, то нужно также делать проверку при добавлении
<tagezi>
разве нет?
<tagezi>
и ещё
<mikekaganski>
при добавлении уже есть проверка
<mikekaganski>
или я не понял
<tagezi>
может не городить одинаковых строк, а заменить xLib->removeByName( _rOldName ); на вызов removeModuleOrDialog
<mikekaganski>
там ещё в переименовании по хорошему нужно сначала добавлять в новый, а уже потом удалять из старого
<tagezi>
вот тут делается удаление
<mikekaganski>
забудь про переименование, сделай его потом отдльно
UNIm95 has quit [Ping timeout: 255 seconds]
[unkn0wn] has joined #libreoffice-ru
[unkn0wn] has quit [Client Quit]
<tagezi>
а как вообще переименовать то?
<mikekaganski>
tagezi: забудь про переименование, это я сам себя и тебя запутал с переименованием
<tagezi>
да ладно.. его вообще не сделать
<tagezi>
покрайне мере для скрипта
<tagezi>
офигеть интуитивно :))
<tagezi>
я переименовал
<tagezi>
вроде ошибок тут нет
<kompi>
добро пожаловать в большой проект на С++
UNIm95 has joined #libreoffice-ru
<mikekaganski>
tagezi: ты проверил, оно исправляет у тебя ошибку?
<tagezi>
да, у меня начинает работать нормально
<tagezi>
mikekaganski: у тебя не работает?
<mikekaganski>
ок. Сделай ещё одну правку, плиз ()
<mikekaganski>
я не проверял
<tagezi>
эм..
<tagezi>
какую?
<mikekaganski>
там добавление XVBAModuleInfo сделано после добавления в xLib. Сделай, плиз удаление в обратном порядке: сначала xLib->removeByName, а уж потом твои правки перед return
<mikekaganski>
это , вероятно, неважно, но я просто привык, что очистка в обратной последовательности по сравнению к инициализации
<tagezi>
хорошо
<tagezi>
mikekaganski: сделал
<tagezi>
Jenkins тупит
<mikekaganski>
там очередь
<mikekaganski>
как он проверит, я отправлю
<tagezi>
да, я вижу что очередь.. и он ещё не начал вторую версию проверять, так что третью не скоро начнём
<mikekaganski>
теперь смотри, что я имел ввиду насчёт переименования
<mikekaganski>
строка 646
<mikekaganski>
там нет проверки на .is()
<tagezi>
641
<mikekaganski>
а дальше идёт сначала удаление (removeModuleInfo), а потом добавление (insertModuleInfo)
<tagezi>
и ты хотел бы поменять их местами
<tagezi>
это логично, сначало создать, потом удалять
<mikekaganski>
а, нет, менять местами не надо, сорри
<mikekaganski>
только проверить на is()
<mikekaganski>
я не посмотрел общую логику
<tagezi>
но это вообще не влияет на работу, макрос не пропадает
<mikekaganski>
всё верно
<tagezi>
на из согласен, чтобы предохраниться от странной ситуации, когда объект как бы есть, но его нет
<tagezi>
но если честно, мне кажеться это третьим презервативом
<tagezi>
:)
<tagezi>
mikekaganski: как это назвать?
<tagezi>
added check to avoid segfault
<mikekaganski>
renameModuleOrDialog: add missing check for valid Reference
<tagezi>
mikekaganski: а в пояснении что написать?
<mikekaganski>
ничего
<mikekaganski>
там всё ясно
<kompi>
это вы не тот баг правите, что у чувака с форума макросы пропали?
<tagezi>
kompi: не знаю
* kompi
прочитал простыню переговоров и понял чуть менее, чем ничего
<mikekaganski>
tagezi: я бы тот изихак вообще не трогал
<tagezi>
да я смотрю что все изихаки такие
<mikekaganski>
не, тот изихак не нужно править вообще
<tagezi>
а зачем тогда он вообще висит?
<mikekaganski>
там для того, чтобы интерфейс был отзывчивее, обновление вторичных элементов выполняется после основных. И навигатор обновляется после основного окна.
<mikekaganski>
Я не знаю зачем его вообще сделали
<tagezi>
ну, это понятно, иначе будут тормоза в основном окне, а это страшнее
<tagezi>
там есть конечно ложные срабатывания, например в самом начале
<mikekaganski>
Ну, знаешь! Это не у нас копипасты, это у какого-то home/lera - ты сам глянь: в каждой строке он!
<tagezi>
:)
<tagezi>
расказал бы лучше как грамотно это обработать
<tagezi>
начти с того чтобы расказать что это за хрень? desktop/source/deployment/gui/
<mikekaganski>
я в этом коде не лазил. Мне кажется, что это что-то связанное с настройками (там, список Advanced) - но могу ошибаться. Спроси в -dev
<tagezi>
в обеих случаях происходит обработка нажатий клавиш в диалоге, как я понимаю, но они в разных местах же, можно было бы вызвать процедуру из например десктоп, но этоже черевато регрессиями
<mikekaganski>
Любое изменение чревато регрессиями :) Я не люблю работать с UI
<tagezi>
люблю не люблю.. я учусь.. то что видно, проще..
<tagezi>
можно скопипастить и проверить: работает или нет :)
<mikekaganski>
:))
<tagezi>
как в этом примере :))
<mikekaganski>
Можно переименовать класс и глянуть, где заругаецца
<tagezi>
можно же сделать дубликат метода, только не копипастом, а вызвать уже сузествующий метод, и передать ему значение
<tagezi>
или нет
<tagezi>
?
<tagezi>
есть же разработанный метод bool ExtensionBox_Impl::HandleCursorKey( sal_uInt16 nKeyCode )
<tagezi>
mikekaganski: если я тебя достану вопросами глупыми, ты говори :)
<mikekaganski>
:) Accessible - значит, относится к подсистеме Accessibility (IAccessible). Его главная цель - по событию изменения выделения в списке оповестить слушателей ( NotifyAccessibleEvent)
<tagezi>
а как потестить?
<tagezi>
это же по сути одна функция, и две её модификации, одна принимает sal_Int32, в вторая бул, и разные они только в самом конце