ChanServ changed the topic of #libreoffice-ru to: Канал поддержки русскоязычных пользователей LibreOffice | Wiki TDF http://tdf.io/wikiru | On-line документация http://tdf.io/helpru | Логи канала: http://goo.gl/gzwdwU
jrj_ has joined #libreoffice-ru
<mikekaganski> tagezi: source sha:2be139d76bdb66e77719613d802dc0047c284456 -> значит, правильно отбибисектили
<tagezi> mikekaganski: я сделал бибисект ещё раз
<tagezi> и всеравно тотже результат. я не нахожу этого комита
<mikekaganski> tagezi: что значит "не нахожу этого коммита"? Ты же отправил данные: 6d9989c53cf0cb8fa93b17f499b13768138dbf89 is the first bad commit - source sha:2be139d76bdb66e77719613d802dc0047c284456
<mikekaganski> Может, ты ищешь 6d9989c53cf0cb8fa93b17f499b13768138dbf89 ? Это неправильно
<tagezi> а что искать нужно?
<mikekaganski> Это коммит в бибисекте. Он не зря имеет описание source sha:2be139d76bdb66e77719613d802dc0047c284456
<mikekaganski> искать нужно именно 2be139d76bdb66e77719613d802dc0047c284456
<tagezi> и куда его тыкать?
<mikekaganski> cgit.freedesktop.org/libreoffice/core/commit/?id=<ТЫКАТЬ_СЮДА>
<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)
<tagezi> так
<tagezi> а я GBD
<mikekaganski> вот правда, я не работал с ним
<mikekaganski> ты спроси в -dev чуток попозже
<tagezi> странно, она вообще это выдает постоянно
<tagezi> так, у меня вот такое выдает
<tagezi> warn:legacy.osl:1383:1383:basctl/source/basicide/scriptdocument.cxx:686: DBG_UNHANDLED_EXCEPTION in bool basctl::ScriptDocument::Impl::createModule(const rtl::OUString&, const rtl::OUString&, bool, rtl::OUString&) const
<tagezi> type: com.sun.star.container.ElementExistException
<tagezi> если честно, ничего не проясняет :)
UNIm95 has joined #libreoffice-ru
<mikekaganski> ага, нормально, это похоже на оно :)
kompi has joined #libreoffice-ru
<mikekaganski> я полагаю, что он добавляет ModuleInfo при добавлении модуля, а удалять при удалении модуля забыл
<kompi> утра
<mikekaganski> ку
<tagezi> mikekaganski: и как ты это понял?
<mikekaganski> ну, если он при первом проходе работает нормально, а при втором после удаления выдаёт ElementExistException
<kompi> tagezi: опыт у него, ОПЫТ
<mikekaganski> и в коммите есть только добавление
<tagezi> да, логично
<tagezi> mikekaganski: объясни мне тогда как удалять.. я не вижу тут delete вообще
<mikekaganski> tagezi: ну, значит, перед строкой 530 мы должны повторить получение контейнера, и там вызвать удаление
<mikekaganski> причём в этом случае мы должны перехватывать возможные исключения в удалении
<mikekaganski> хотя лучше просто перед удалением просто проверить xVBAModuleInfo->hasModuleInfo(_rModuleName)
<tagezi> что значит лучше? проверить и удалить?
<tagezi> чем просто проверка поможет?
<mikekaganski> Ну, я имею ввиду, не надо там перехватывать исключение от удаления, а лучше проверить и удалить
<mikekaganski> потому что глушить здесь исключения неправильно
<mikekaganski> там они ниже перехватываются
<tagezi> так, хорошо, я ставлю иф(xVBAModuleInfo->hasModuleInfo(_rModuleName)) и делаю блок для удаления xVBAModuleInfo
<tagezi> я так понимаю, что я не могу просто написать delete xVBAModuleInfo
<mikekaganski> Сначала нужно получить контейнер для VBA info : Reference< XVBAModuleInfo > xVBAModuleInfo(xLib, UNO_QUERY);
<mikekaganski> как у маркуса
<mikekaganski> удаление - аналогично добавлению: xVBAModuleInfo->removeModuleInfo(_rModuleName);
<tagezi> угу..
<tagezi> будем пробовать
<tagezi> ща как всё сломаю :)
JohnDoe_71Rus has joined #libreoffice-ru
<tagezi> mikekaganski: а где можно посмотреть методы для этого контейнера?
<tagezi> спасибо
<kompi> пора сделать #libreoffice-ru-dev
<tagezi> угу, и сидеть там в двоём с Мишей
<tagezi> зачем?
<tagezi> Миша понатаскает меня немного, и я перестану приставать по глупым вопросам
<tagezi> просто я программирую редко, и уже теряю даже те навыки которые имел
<mikekaganski> мне кажется, нормально здесь всё обсуждаем... или прямо сильно мешает?
<tagezi> что-то я даже синтаксис стал забывать уже
<tagezi> да не мешает.. он просто мечтает, что появиться 100500 русских програмистов, которые начнут править все его баги
<JohnDoe_71Rus> normalno tut
<mikekaganski> ну, я тоже хотел бы так
<tagezi> мне пока маркуса хватает :) я вчера смотрел баги и три подряд - это были регрессии после маркуса :)
<tagezi> круто, Миша поправил ещё один баг :)
<tagezi> mikekaganski: спасибо, пойду сделаю патч :)
<kompi> tagezi: это работы у Миши такая, баги править
<kompi> tagezi: да, куча русских программистов - это было бы круто
<tagezi> kompi: нет, это его увлечение, а работа у него другая
<kompi> mikekaganski: у тебя работа-увлечение, везет
<tagezi> mikekaganski: кстати, что сейчас делаешь?
<mikekaganski> всё то же - пилю импорт mailmerge из docx
<kompi> майлмерге - это?
<tagezi> kompi: а ты говоришь баги править
<mikekaganski> kompi: это рассылка
<tagezi> хотя ЛО - это один сплошной баг :)
<tagezi> красиво, всег 3 строчки, и никаких извращений :)
<kompi> tagezi: чо ты пристал? зато с Майком можно пообщаться
<tagezi> он ещё проверяет
UNIm95 has quit [Ping timeout: 255 seconds]
UNIm95 has joined #libreoffice-ru
<mikekaganski> tagezi: сорри, замотался. Там ещё нужно проверить на if (xVBAModuleInfo.is()) (см. ScriptDocument::Impl::createModule)
<mikekaganski> там ещё в одном месте не проверяется это - я бы сразу поправил: см. ScriptDocument::Impl::renameModuleOrDialog
<mikekaganski> if ( xVBAModuleInfo.is() && xVBAModuleInfo->hasModuleInfo( _rOldName ) )
<mikekaganski> а то могёт быть segfault
<tagezi> mikekaganski: segfault?
<mikekaganski> tagezi: разименование нулевого указателя
<tagezi> mikekaganski: так, погодь
<tagezi> xVBAModuleInfo.is() зачем эта проверка?
<tagezi> он может быть и при этом не иметься?
<mikekaganski> Reference< XVBAModuleInfo > xVBAModuleInfo(xLib, UNO_QUERY) возвращает ссылку на интерфейс, причём ссылка может быть пустой, если объект xLib не поддерживает этот интерфейс
<mikekaganski> Reference::is() как раз проверяет, не пустая ли ссылка
<tagezi> mikekaganski: так, а если делать удаление в переименовании, то нужно также делать проверку при добавлении
<tagezi> разве нет?
<tagezi> и ещё
<mikekaganski> при добавлении уже есть проверка
<mikekaganski> или я не понял
<tagezi> может не городить одинаковых строк, а заменить xLib->removeByName( _rOldName ); на вызов removeModuleOrDialog
<tagezi> а, точно есть
<mikekaganski> не понял
<tagezi> так, погоди, ты меня вообще запутал
<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 прочитал простыню переговоров и понял чуть менее, чем ничего
<tagezi> маркус как всегда не допилил до ума, хотя там реально просто
<tagezi> Миша просто меня учит :)
<kompi> нет, не похоже
<kompi> насчет Маркуса - это точняк
<tagezi> что не похоже?
<kompi> он и автоапдейтер так же наверное реализует
<kompi> баг по твоей ссылке на багу чувака с форума
<tagezi> он автоапдейтер реализует?
<tagezi> какбы пользователи винды не проснулись с утра, а там у всех голая консоль от линуха :)
<tagezi> kompi: https://bugs.documentfoundation.org/show_bug.cgi?id=111837 раскажи мне про это
<tagezi> что у него там может обнавляться медленно?
<tagezi> в навигаторе нет картинок, там просто текст выделяется
bormant has joined #libreoffice-ru
<tagezi> mikekaganski: вот смотри, есть изихак https://bugs.documentfoundation.org/show_bug.cgi?id=111837
<tagezi> там охренеть слоеный пирог
<tagezi> и я не уверен, что реарганизация проверок сиьно сократит время
bormant has quit [Remote host closed the connection]
<kompi> tagezi: он говорит о том, что слайд уже сменился на нужный, а в самом навигаторе отображение выделения этого слайда с запозданием
<kompi> небось либра опять ищет что-то несуществующее
<tagezi> нет, тут очень простой читаеый алгоритм
<kompi> tagezi: ты лучше скажи мне, чего ты решил обратно в Раиссию вернуться?
<tagezi> что значит решил?
<tagezi> я не решал, меня просто отсюда вышлют
<kompi> О_О
<kompi> а что случилось?
<tagezi> я с женой развожусь
<tagezi> и хватит об этом
<kompi> омг, извини
<mikekaganski> tagezi: второй патчсет убрали, ждём третий
<tagezi> угу, правильно, нечего грудить зря машину
<mikekaganski> tagezi: я бы тот изихак вообще не трогал
<tagezi> да я смотрю что все изихаки такие
<mikekaganski> не, тот изихак не нужно править вообще
<tagezi> а зачем тогда он вообще висит?
<mikekaganski> там для того, чтобы интерфейс был отзывчивее, обновление вторичных элементов выполняется после основных. И навигатор обновляется после основного окна.
<mikekaganski> Я не знаю зачем его вообще сделали
<tagezi> ну, это понятно, иначе будут тормоза в основном окне, а это страшнее
<tagezi> и я не вижу что он до жутиков медленный
<tagezi> :))
<tagezi> изихак, блин.. найдите всю копипасту
<mikekaganski> ну, это изихак из разряда "найдите какую-нибудь копипасту и пофиксите"
<kompi> какой глобальный изихак
<kompi> они хотят весь код почекать на предмет копипаст?
<mikekaganski> да, и предлагают для этого использовать существующие утилиты
jrj__ has joined #libreoffice-ru
jrj_ has quit [Ping timeout: 248 seconds]
jrj_ has joined #libreoffice-ru
jrj__ has quit [Ping timeout: 246 seconds]
<kompi> mikekaganski: это же муторное дело?
<mikekaganski> Как сказать... В любом случае это вариант познакомиться с кодом
<kompi> mikekaganski: стоит писать багу про поведение стилей таблиц?
<mikekaganski> стоит сначала описать у себя желательное поведение стилей, чтобы отправить полную спецификацию
<kompi> эх
<kompi> мне бы путевый инглишь, чтобы все меня поняли
<kompi> проверить что ли в вьорде?
<tagezi> mikekaganski: была бы ещё нормальная утилита для этого
<mikekaganski> хе ;) и чтобы правила сама
<tagezi> можно просто чтобы сверяла и выдовала куски кода на проверку
<tagezi> они есть, но за 90$
<tagezi> Found 58566 duplicate lines in 857 blocks in 387 files
<tagezi> я же говорю, Ло это сплошной копипаст :)
<tagezi> mikekaganski: раскажи :)
<tagezi> там даже коментарий скопипасчин :)
<mikekaganski> :)
<tagezi> вот что с этим делать?
<tagezi> по уму, я бы это вынес всё в отдельный файл.. онже работает
<mikekaganski> смотреть, нельзя ли избавиться от дубликата
<tagezi> хм..
<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> и он публичный
JohnDoe8 has joined #libreoffice-ru
<tagezi> mikekaganski: https://gerrit.libreoffice.org/#/c/44956/ этот тоже готов
<tagezi> девы молчат
<tagezi> короче, сказали, что это ремоте импрес
<tagezi> я его не могу проверить
<mikekaganski> а, тогда да...
<tagezi> не уи :)
<mikekaganski> попробуй вынести все общие функции в отдельный файл
<tagezi> но это разные архитектуры поверписи
<tagezi> думаешь оно будет потом работать? :)
<tagezi> опять же, я проверить не могу
<tagezi> можно конечно попробовать поставить виртуалки, но это всеравно слои абстракции, и не совсем понятно как оно заработает на живом железе
<tagezi> но я подумаю.. может что придумаю
<kompi> а что паверРС еще где-то работают?
<tagezi> ты думаешь сервера которые купили лет 10-15 назад уже хотят выкидывать?
<tagezi> а вот это за что отвечает?
<tagezi> mikekaganski: если я тебя достану вопросами глупыми, ты говори :)
<mikekaganski> :) Accessible - значит, относится к подсистеме Accessibility (IAccessible). Его главная цель - по событию изменения выделения в списке оповестить слушателей ( NotifyAccessibleEvent)
<tagezi> а как потестить?
<tagezi> это же по сути одна функция, и две её модификации, одна принимает sal_Int32, в вторая бул, и разные они только в самом конце
<tagezi> не, не знаю.. нужно подумать
<tagezi> mikekaganski: ^
<tagezi> вот смотри, как я понимаю, тут имеет значение только 74 и 75 строки, остальное одинаковое
<tagezi> и да, кстати, а фиксы которые я сегодня сделал, их можно в 5.4 пульнуть?
<tagezi> ошибка с 5.4 началась
* tagezi ща как перестанет бояться, как наисправляет..
<tagezi> и весь ЛО уместиться в пару тысяч строк :)
<mikekaganski> :) сорри, у меня вечер...
<tagezi> я понимаю.. всё нормально
<mikekaganski> Погоди, ты кинул одиночную ссылку https://opengrok.libreoffice.org/xref/core/accessibility/source/standard/vclxaccessiblelist.cxx#662 - а какая там пара?
<mikekaganski> "это же по сути одна функция, и две её модификации, одна принимает sal_Int32, в вторая бул, и разные они только в самом конце"
<mikekaganski> Насчёт японцев - вынеси это в общий .hxx файл, и инклюдь.
<mikekaganski> да вообще зачем...
<mikekaganski> перенеси одну из них в другой файл, а второй файл убей
<mikekaganski> блин, везде тут надо вникать. Так просто всё не решается. Нужно смотреть и пробовать. Сделай вариант, посмотрим, как оно получится
<tagezi> да, везде нужно вникать, я согласен
<tagezi> ну, зато научусь в коде ориентироваться
<tagezi> :)
<mikekaganski> Строки с 204 по 252 идеально дублируются - кандидат для отдельной функции
<tagezi> да, я тоже про это подумал
<tagezi> mikekaganski: как это потестить?
<tagezi> вот этот вопрос интересен
kompi_ has joined #libreoffice-ru
<kompi_> >_<
<kompi_> на работе что ли не выключил?
<tagezi> kompi: ты accessibility юзаешь?
<kompi_> не настолько я слепой
<kompi_> (к счастью)
<tagezi> ладно, я не понимаю чт проверять
<tagezi> нужно найти когнибудь кто понимает, почему файл называется list, а содержит комбобоксы
<kompi_> ask Markus
bormant has joined #libreoffice-ru
bormant has quit [Remote host closed the connection]
<tagezi> маркус вроде не спрограммировал это
JohnDoe8 has quit [Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
<kompi_> tagezi: зато он может знать, он же Маркус
<kompi_> я вот думаю, намного проще будет обновить GSGuide 4.2 RU до 6.0 своими словами, чем синхронить и переводить инглиш версию
* kompi_ потерял готовую обложку для GS Guide 6.0 RU
<kompi_> я просто в шоке
<kompi_> может у жены на ноуте?!
<kompi_> точно
<kompi_> фуух
<kompi_> mikekaganski: а знаешь в Ворде с этим делом (копированием из таблицы в таблицу) намного все проще и круче
<kompi_> тупая копипаста просто работает так, как ожидается интуитивно
<kompi_> mikekaganski: https://i.imgur.com/rXRVw2c.png еще более НЯ, оно позволяет на лету менять текущий стиль
<kompi_> так, как тебе надо
<kompi_> сказка
<kompi_> и цвета приятные
UNIm95 has quit [Quit: Leaving.]
kompi_ has quit [Quit: Page closed]
mikekaganski has quit [Read error: Connection reset by peer]