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
JohnDoe_71Rus has joined #libreoffice-ru
<tagezi> утра
<mikekaganski> tagezi: нихт ферштейн. Это же коммит?
<tagezi> да ) но это связано с внешним дидом, но не разу не дизайн )
<tagezi> хотя может и дизайн
<tagezi> mikekaganski: слушай, вот есть такой вопрос
<tagezi> вот как найти область в коде?
<tagezi> окно редактора имеетт область дебагера
<tagezi> она двигается туда сюда
<tagezi> ща скрин сделаю
<tagezi> вот эту область
<tagezi> как она называется?
<tagezi> вернее как выяснить её название )))
<mikekaganski> Погоди. Расскажи, что ты хочешь сделать в результате?
<tagezi> хочу сделать возможноть её скрывать
<mikekaganski> я сейчас грепаю "Watch:" (в русском Контрольное значение)
<tagezi> она много места занимает, а когда пишешь чтонибудь большое, что должно быть монолитным, это начинает бесить
<tagezi> где грепаешь?
<mikekaganski> в исходниках
<mikekaganski> basctl/source/basicide/baside2b.cxx
<mikekaganski> WatchWindow
<tagezi> ээээ
<mikekaganski> не то?
<tagezi> StackWindow?
<tagezi> блин, нужно вчитываться, пока это больше на кучу буковок похоже )
<tagezi> аааа, там два окна.. да, то
<tagezi> буду вчитываться, спасибо
UNIm95 has joined #libreoffice-ru
<JohnDoe_71Rus> tagezi: https://www.eurekalert.org/pub_releases/2017-05/sumc-fta051817.php тебе было интересно. только не нашел, есть там линк на само исследование
UNIm95 has quit [Client Quit]
<mikekaganski> Ну а разве это не очевидно?
<mikekaganski> аккуратно измерить энергозатраты можно только в калориметрической комнате
<mikekaganski> там измерения идут по эмпирическим формулам
UNIm95 has joined #libreoffice-ru
<mikekaganski> и обязаны плавать
<mikekaganski> (плюс если пользователь не калибрует время от времени, вес свой не уточняет и т.д.)
<tagezi> нет, там идет подсчет по серцебиениям, вес не участвует в этом вообще
<mikekaganski> не правда
<mikekaganski> как минимум, есть сервисы, где это учитывается
<tagezi> но да, системы очень разные, разные фитнес трекерры отталкиваются от разных источников, а многие источнике не используют калориметр в своих исследованиях, а только вторичные показатели
<tagezi> у меня при беге гуглфит и ранкипер показывают разницу в 2 раза при подсчете калорий )
<mikekaganski> и калориметр в этом случае - это точечные замеры температуры, а не покрытие тела полностью :)
<tagezi> нет, калориметр это всё тело
<tagezi> это камера
<mikekaganski> в том то и дело, что это в идеале, а где ты видел такое?
<mikekaganski> а... ты про исследования
<mikekaganski> сорри
<JohnDoe_71Rus> засунуть человека в камеру что бы он тепло излучал и воздух нагревал?
<mikekaganski> да, так и делают *в исследованиях*
<mikekaganski> tagezi: я прочитал "а многие приборы не используют калориметр в своих измерениях, а только вторичные показатели"
<mikekaganski> что захотел, то и увидел :)))
<tagezi> :))
<JohnDoe_71Rus> ну так это сауна получится, в процессе исследования.
<JohnDoe_71Rus> зажарить подопытных собственным бегом
<tagezi> ну, я точного принципа действия не изучал, но нет другого способа найти точное количество калорий выделяемых в окружающую среду
<JohnDoe_71Rus> выделяемых? а как соотнести выделяемое с израсходованным?
<JohnDoe_71Rus> в виде тепла выйдет не все потребленное
<tagezi> плотность тканей известна, удельная теплоёмкость тоже, так что по выделяемому теплу можно сказать сколько всего было затрачено
<tagezi> калория - это мера теплоты
<tagezi> главная задача - это точно собрать сколько тело выделило, а дальше это просто математика
<tagezi> смотри какая ошибка, уже древнючая, онаже вроде должна быть простой очень для исправления
<tagezi> функция котороя выделяет слово не учитывает подчеркивание
JohnDoe_71Rus has quit [Read error: Connection reset by peer]
JohnDoe_71Rus has joined #libreoffice-ru
<tagezi> mikekaganski: вот, вот.. помнишь я говорил? )))) https://bugs.documentfoundation.org/show_bug.cgi?id=38889
<tagezi> а, не совсем.. тут просто меню перетыкивается (
<mikekaganski> JohnDoe_71Rus: там калориметр - это камера, стенки которой поддерживают одинаковую температуру (за счёт теплообменников). Таким образом, внутренняя среда обменивается теплом со стенками,
<mikekaganski> а количество тепла в теплоносителе определяется тривиально
<mikekaganski> Кроме того, определяются потреблённые (вода+еда) и выделенные теплоносители
<mikekaganski> и используется калориметрическая бомба для определения разницы
<mikekaganski> tagezi: хочешь подчёркивания поправить?
<tagezi> да, оно выбешивает переодически.. и мне нужно как-то изучать код, а простые вещи очень здорово этому помогают
<mikekaganski> полностью поддерживаю
<tagezi> ну и, если это не поправили за 5 лет, я думаю можно это поправить )
<tagezi> с окном, я наверное пока не справлюсь.. отложу немного, на время когда будет проще читать
<tagezi> дженкинс одобрил ))
<mikekaganski> tagezi: погодь
<tagezi> а чего годить то? Катрину я поставил в просмотр, хейко тоже, ты можешь не пинать его
VitaliyAnderson has joined #libreoffice-ru
<mikekaganski> вот всё, что нужно для новой опции конфигурации: https://gerrit.libreoffice.org/#/c/37297/
<tagezi> хотя там просто изменение галки с отключено на включено
<VitaliyAnderson> Всем утра, девочки, мальчики и боты
<mikekaganski> не нужно никакого UI, будет просто строка в Advanced
<mikekaganski> VitaliyAnderson: угу
<mikekaganski> tagezi: сделай это - и не будет никакой возможности никому бухтеть
<tagezi> хахаха )
<tagezi> мальчики в песочнице (ц) :)
<tagezi> а мы тут прям правки делаем на живом проекте ))
<mikekaganski> tagezi: да не, я серьёзно. Несколько строк - и есть опция, её можно настроить под себя, дефолт не меняется - чего ещё желать?
<tagezi> да, это круто, я попробую
<JohnDoe_71Rus> завтра домой приеду и попробую откатить 5.2 на 4.3 и если в коробке иконки на панели появяца кому кляузу строчить?
<mikekaganski> JohnDoe_71Rus: TDF
<tagezi> JohnDoe_71Rus: у тебя же хп?
<JohnDoe_71Rus> вот как так можно было иконки поломать
<mikekaganski> а.... да. если так - то уже никому
<JohnDoe_71Rus> tagezi: хр на работе. дома у меня lubuntu
<tagezi> для лубунты в багзилу пиши, пусть правят хады :)
<mikekaganski> JohnDoe_71Rus: приходи - научу ;)
<tagezi> угу, а потом мы из кода будет транзисторы и резисторы выковыривать )))
<mikekaganski> tagezi: :))
<mikekaganski> зато всегда можно будет резистор заменить на послабже, если сильно тормозит :)
<JohnDoe_71Rus> шуруп забитый молотком держит лучше чем гвоздь закрученый отверткой
<tagezi> :))
<VitaliyAnderson> Клей "жидкие сопли" и не нужны никакие гвозди!
<tagezi> да, нужно опцию делать, чтобы угдить всем
<mikekaganski> tagezi: да, и переключение в меню должно просто переключать эту опцию
<mikekaganski> так получится, что и UI уже есть
<mikekaganski> включил - и оно остаётся
<tagezi> дада, я просто немного не доумал до конца.. я слабо ориентируюсь в коде пока, не знаю что как работает
<tagezi> и эта куча незнакомых слов, которые нужно раскопать, нахрен они вообще там нужны
<tagezi> сохранение настройки опции - это классная идея, и людям будет удобнее, и мне хорошо ))
<mikekaganski> насчёт незнакомых слов - я не умею отвечать на незаданные вопросы :)
<tagezi> а я его и не задавал ))
<tagezi> я просто констатирую факт, что я не понимаю что там написано ))) слишком большой слой абстракции для меня
<mikekaganski> JohnDoe_71Rus: tagezi: http://www.mdpi.com/2075-4426/7/2/3
<mikekaganski> (это ссылка на исходную статью)
<JohnDoe_71Rus> мне к сожалению только через гугол прогонять.
<JohnDoe_71Rus> ха, что означают крестики возле имени в начале. и конвертик
<mikekaganski> крестик - ссылка ниже (принято в англоязычных научках вместо цифр)
<mikekaganski> JohnDoe_71Rus: конвертик - емайл, но доступно после регистрации
<JohnDoe_71Rus> mikekaganski: хм. одинаковый вклад... не вяжется у меня с самим символом. я сразу на статус R.I.P. подумал, но подвел конвертик следом. "кому писать сообщение"
<mikekaganski> JohnDoe_71Rus: у них ещё всякие вариации есть, типа крестика с двумя горизонталями
<tagezi> :))) всё уже сломано до нас )))
<mikekaganski> э... ?
<tagezi> аааа
<tagezi> черт, я слепой
<tagezi> нет, это мы сломали бейсик )
<tagezi> так, ладно
<mikekaganski> :)
<tagezi> 7 багов порыться для начала хватит, через пол годика выберу ещё )))))
<tagezi> mikekaganski: так
<tagezi> вот теперь у меня вопросы появились )
<tagezi> oor:name="TrySystemCredentialsFirst" это что за имя?
<mikekaganski> Это имя я придумал для свойе проблемы
<tagezi> ты его дальше используешь только так bool bUseSystemCredentials = ::officecfg::Office::Common::Passwords::TrySystemCredentialsFirst::get();
<mikekaganski> верно, это автогенерируемый класс для работы с этим именем
<tagezi> но он же только получает значение, но не отдает его обратно в настройки, как ты значение обратно в настройки пихаешь?
<mikekaganski> у меня это только чтение, пишется пользователем в адвансд
<tagezi> а мне нужно будет сделать обработчик этого самому?
<mikekaganski> tagezi: тебе в месте, где сейчас происходит обработка меню, нужно будет сделать не get(); а put()
<tagezi> вот это oor:nillable="false" что за буковки? Значение по умолчанию ты указываешь ниже, как я понимаю <value>false</value>
<tagezi> эм
<tagezi> тогда я вообще не понимаю
<mikekaganski> это значит, что нельзя удалить это значение, оно обязано быть
<mikekaganski> не опциональное
<tagezi> понятно, могу скопипастить ))
<tagezi> объясни алгоритм работы этого, я не савсем догоняю.. вот человек поставил галочку, это значение должно не только показать номера строк, но и записать его в файл настроек
<tagezi> затем, когда человек открывает окно, значение должно считаться из файла настроек
<tagezi> get() берёт значение, put() его втыкает ... куда и зачем? )
<mikekaganski> Это делается парой ::officecfg::путь-к-настройке::get()/put()
<tagezi> и почему у тебя гет, а у меня должно быть пут?
<mikekaganski> именно в настройки :)
<mikekaganski> у меня ничего не записывается
<mikekaganski> у тебя будет записываться
<tagezi> да, но считываться то оно тоже должно, или оно будет автоматом считываться, гдето там глубоко в абстрактном слое?
<mikekaganski> get() считывает
<tagezi> это я уже понял )
<mikekaganski> если ты его будешь использовать в том месте, где сейчас происходит решение о включении - всё заработает
<tagezi> > нужно будет сделать не get(); а put()
<mikekaganski> это был ответ на вопрос "как записывать"
<tagezi> аааа
<tagezi> а хмл я должен включить сюда officecfg/registry/schema/org/openoffice/Office/BasicIDE.xcs ?
<mikekaganski> да, вероятно :)
<tagezi> а это в каком месте живёт? officecfg/Office/Common.hxx
<mikekaganski> это автогенерируемые файлы в workdir
<tagezi> эм.. то есть этот файл заголовок собирается из хмл?
<mikekaganski> ага
<tagezi> так, понятно
<tagezi> спасибо, попробую сделать это )
<tagezi> mikekaganski: в инфо пишется что-то типа коментария? оно участвует в интерфейсе?
<mikekaganski> да
<mikekaganski> насчёт UI не знаю
<tagezi> mikekaganski: объясни мне пожалуйста конструкцию вот этого ::officecfg::Office::Common::Passwords::TrySystemCredentialsFirst::get();
<tagezi> комон - это имя файла
<mikekaganski> нет
<tagezi> трайсистем - это имя которое ты дал
<tagezi> эээ
<mikekaganski> это путь к настройке
<mikekaganski> в XML
<mikekaganski> технически это имена пространств имён
<mikekaganski> для начала добавь нужную настройку в XML и сделай мейк
<tagezi> знаешь анегдот про чукчу и русскую подводную лодку? )))
<mikekaganski> потом открой получившийся файл
<mikekaganski> :)
<mikekaganski> я и показываю :))
<tagezi> так, сейчас
<mikekaganski> у меня только что make clean отработал, так что я даже сам открыть не могу
<tagezi> так мэйк сделал.. теперь мне нужно найти файл в воркдир?
<mikekaganski> да, в папке officecfg
<mikekaganski> BasicIDE.hxx
<tagezi> так, не правильно сделал мэйк ))
<tagezi> mikekaganski: https://paste.ubuntu.com/24653741/
<tagezi> клеан делать и пересобирать всё с нуля?
<mikekaganski> tagezi: ytn
<mikekaganski> нет
<mikekaganski> покажи твой XML
<mikekaganski> тоже в пейстбин
<mikekaganski> он у тебя как раз ругаецца на этот файл
<mikekaganski> что-то неправильно сделано, и генерируемый hxx имеет неправильный синтаксис
<mikekaganski> s/xsboolean/xs:boolean/
<tagezi> ааа
<tagezi> спасибо
<mikekaganski> Переименуй в LineNumbering плиз
<mikekaganski> Sets the line numbering on/off
<mikekaganski> или LineNumbers
<tagezi> а это почему? libreoffice/workdir/XcsTarget/org/openoffice/Office/BasicIDE.xcs:47: namespace error : Namespace prefix orr for nillable on prop is not defined <prop oor:name="LineNumbering" oor:type="xs:boolean" orr:nillable="false">
<mikekaganski> s/orr/oor/
<tagezi> блин, вот я же говорю, что мы всегда уверены на ~100% )))
<mikekaganski> :)
<mikekaganski> ничего, нас контролируют компиляторы, дженкинс, коверити, гугл, ревьюеры и миллионы пользователей
<tagezi> ладно, начал компилить, надеюсь не очень долго это будет продолжаться
<mikekaganski> ты используй build-nocheck в процессе, а то долговато проверки проходят
<tagezi> да, я использую
<mikekaganski> время от времени делай без этого, чтобы контролировать
<mikekaganski> а в конце make check
<tagezi> потом когда все будет готово сделаю проверку
<mikekaganski> это включает дополнительные проверки
<mikekaganski> ага
<tagezi> и удалю ветку от ужаса )))
<mikekaganski> :))) да ладна
<tagezi> давно я не программил уже на плюсах.. жесть то какая
<mikekaganski> а мне нравится :) можно тыкать пальцем ;)
<tagezi> ну, погоди, будут ещё более глупые вопросы :)))
<tagezi> я себе синтаксис не могу настроить в вим, чтобы эти файлы нормально читались
<mikekaganski> не бывает глупых вопросов. Бывает глупое молчание :)
<mikekaganski> tagezi: хм, у тебя оно в группе <group oor:name="Autocomplete"> ? Как-то не совсем
<tagezi> эм.. так, давай не будет говорить на китайском ))
<mikekaganski> В XML твоя настройка внутри группы Autocomplete. Это нелогично. Добавь группу, например, <group oor:name="EditorSettings">
<tagezi> аааа
<tagezi> так, поправил, сейчас соберётся
<tagezi> ::openoffice::Office::BasicIDE::EditorSettings::LineNumbering::get()/put()
<tagezi> так?
<mikekaganski> (FYI: поскольку изменение XML перегенерирует заголовок, использующийся в других местах, сборка идёт дольше, чем могло бы быть)
<mikekaganski> именно! :)
<tagezi> о, я умный )))
<tagezi> то есть получается ::openoffice::Office::ИмяФайла::ИмяГруппы::ИмяНастройки::ЧоДелаем
<mikekaganski> да
<mikekaganski> я тут немного ошибся про put
<mikekaganski> забыл уже
<mikekaganski> сейчас поищу
<tagezi> где вообще эти методы описаны?
<tagezi> этоже методы, вроде )
<mikekaganski> VitaliyAnderson: не кинешь ссылку на твою настройку?
<mikekaganski> tagezi: да, методы
<VitaliyAnderson> mikekaganski: настройку?
<mikekaganski> я забыл, как там используется batch для записи конфигурации
<mikekaganski> VitaliyAnderson: твоя настройка совместимости
<VitaliyAnderson> в смысле на патч?
<mikekaganski> VitaliyAnderson: си
<VitaliyAnderson> в геррите в поиске vanderson
<VitaliyAnderson> выдаст все мои патчи
<VitaliyAnderson> их не так много
<tagezi> там комбобилити дофига
<tagezi> VitaliyAnderson: профи по совмещению )))
<mikekaganski> не то... там использовался другой механизм.
<VitaliyAnderson> tagezi: MS Word compatibility option
<VitaliyAnderson> Правда я потом зарефакторил весь этот участок кода
<tagezi> mikekaganski: ты меня переоцениваешь
<tagezi> или тыкай пальцем дальше )
<mikekaganski> VitaliyAnderson: не помнишь, ты батчи не использовал при записи настроек?
<mikekaganski> tagezi: я ничего не говорю, сам про себя ворчу на свою тупость
<tagezi> не ворчи.. человек помнит то, что он использует, это спицифика памяти..
<tagezi> я всего полтора года на с++ не программил, и уже струдом пробираюсь сквозь буквы
<tagezi> mikekaganski: ты хочешь найти метод batch?
<mikekaganski> в этом классе есть set
<mikekaganski> но он требует batch
<tagezi> да, сижу читаю уже
<mikekaganski> В общем, там где нужно сохранить настройку, создаёшь ConfigurationChanges, потом вызываешь у своего свойства set() со значением и этим объектом, а потом ConfigurationChanges.commit()
<mikekaganski> прекрасный пример
<tagezi> да, понятный. Спасибо
<tagezi> почти )
<tagezi> mikekaganski: std::shared_ptr<comphelper::ConfigurationChanges>
<mikekaganski> ?
<tagezi> стд - это пространство имен
<mikekaganski> да
<mikekaganski> это библиотечный класс
<tagezi> а саред_птк
<mikekaganski> я имею ввиду std::shared_ptr
<mikekaganski> это "совместно используемый умный указатель"
<tagezi> то есть, фактически у меня эта строка не изменится std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
<mikekaganski> "разделяемый" (в смысле, делиться им можно)
<mikekaganski> да, абсолютно
<tagezi> умрет ещё один котенок ))
<mikekaganski> :) экий ты!
<tagezi> Ну, это не я сказал, а бубли: "Каждый раз когда кто-нибудь копипастип код, в мире умерает один котенок"
<mikekaganski> я помню... :) ну, поверь, она, как и все мы, судя по поведению, ненавидит котят :)
<tagezi> )))))
<tagezi> так, вот объясни мне ещё такую штуку... вот я всё написал, замечательно просто написал.. загружается бейсик иде и начинают читаться настройки
<tagezi> я так понимаю, во время запуска настроек может и не быть, например их удалили, значит я должен сделать проверку
<tagezi> и подставить значение по умолчанию
<tagezi> и сразу записать это в конфиг
<tagezi> так?
<mikekaganski> нет
<tagezi> ну вот тебе раз )
<mikekaganski> у тебя настройки будут
<tagezi> как это
<mikekaganski> ты же их прописал not nullable
<tagezi> ааа, вот зачем это нужно ))
<tagezi> то есть я могу не проверять наличие настройки...
<mikekaganski> ага
<mikekaganski> не парься
* tagezi уже баится )
<VitaliyAnderson> mikekaganski: сорри. отходил
<VitaliyAnderson> нет батчи не юзал
<mikekaganski> VitaliyAnderson: спасибо! я нашёл, так что не ищи
<mikekaganski> tagezi: а чего боишься, если не секрет?
<tagezi> да, оно обычно падает, когда не проверяешь )))
<mikekaganski> ты же как раз и увидишь это при первом пуске :)
<tagezi> mikekaganski: хаха ))
<tagezi> bool bSourceLinesEnabled = ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get();
<tagezi> эта переменная указывает включено или нет
<tagezi> фалс - нумерации нет, тру - есть
<mikekaganski> ага
<tagezi> BASIC syntax error.
<tagezi> Unexpected symbol: Subgitcd.
<mikekaganski> чиииво?
<tagezi> ааа.. черт, это не с этим связано
<tagezi> и как оно там сохранилось то о_О
<mikekaganski> моятвоянипанимай
<tagezi> да я в модуле макроса как-то напечатал кучу символов и оно сохранилось
<tagezi> и при окрытии сразу вылетала ошибка в макросе
<tagezi> так, ты когда имел ввиду обработку меню, ты имел ввиду то место, где параметр считывается при изменении меню?
<mikekaganski> да
<mikekaganski> тебе вообще нужно уничтожить bSourceLinesEnabled, а во всех местах, где она проверяется, сделать get, а где устанавливается - set
<tagezi> вот это, как я понимаю http://paste.ubuntu.com/24654480/
<mikekaganski> да
<tagezi> mikekaganski: вот, ещё глупый вопрос, сейчас в файле вообще нет сохранения настроек... но по идее лучше будет если они будут
<mikekaganski> погоди, не понял
<tagezi> как лучше делать, как отдельную функции или просто в кейс встраивать
<mikekaganski> прямо там встрой три строки сохранения
<tagezi> тоесть не париться
<mikekaganski> не понял
* tagezi не навидит бани ))
<mikekaganski> :)
<tagezi> ну, прсто если потом большенство функций будет вынесего, было бы логично сделать одну функцию сохранения настроек
<tagezi> и значит нужно думать как её назвать, чтобы потом не вычищать
<tagezi> ладно, рефакторить буду потом, когданибудь.. когда стану буддой )
<mikekaganski> :) Просто в данном случае это просто, читаемо и аккуратно
<tagezi> круто, работает
<mikekaganski> Я там -1 на твоём патче поставил, чтобы его не закомиттили пока
<mikekaganski> здорово!
<tagezi> да, я сделал всё, сейчас соберу с проверками, и если всё будет хорошо, то кину новую версию
<mikekaganski> не забудь в коммите заголовок начать с tdf#91913: ...
<tagezi> да, это я помню
<tagezi> пока помню )
<tagezi> круто, я почти сам, почти написал настоящий патч в ЛО ))
<mikekaganski> ты же не первый патч делаешь!
<tagezi> ну вот, бли... взял и опустил )
<mikekaganski> наоборот: у тебя прогресс!!
<tagezi> почему такое простое так долго висит?
<tagezi> я понимаю что нужны изихаки для новеньких, но если висит давно, не более правильно было бы это исправить уже?
<mikekaganski> если бы каждый, кто может, взял и написал маленький патч! как здорово стало бы! сколько новых возможностей, сколько новых, с иголочки, нескучных регрессий!!!
<tagezi> ))))
<mikekaganski> tagezi: я спецом это для тебя не правил - ещё в тот раз, когда мы обсуждали. Потому что - как раз.
<mikekaganski> Если это важно, люди мучаются - это нужно. А если это вопрос лени - то сам
<tagezi> вот мне тоже интересно, где это выстрелит регрессией ))
<tagezi> ну жно будет ещё поразбираться, не доконца понимаю
<mikekaganski> Это? нигде. Но не расстраивайся, всё впереди!
<tagezi> слушай, а бэкпорт чтобы сделать git push origin ИмяМоейВетки:refs/for/аТутЧто ?
<mikekaganski> Не делай бэкпорт плиз
<tagezi> почему?
<mikekaganski> погодь, что значит бэкпорт? на 5.4?
<tagezi> ну сейчас я в мастер пуляю
<mikekaganski> прямо из геррита сделаешь
<tagezi> аа
<mikekaganski> заодно увидишь список, так что потом и в командной строке сможешь
<tagezi> в 5.4 же гуи ещё не фиксированы, вроде
<mikekaganski> да, там всё можно, да ты гуи и не трогаешь, только сохраняешь
<mikekaganski> я просто подумал, что ты про 5-3
<tagezi> не, там уже гуй не принимают, даже если он был сломан
<tagezi> недавно Сергей матерился
<mikekaganski> это не гуи :) это просто сохранение
<mikekaganski> ты же ничего не делаешь в гуях!
<mikekaganski> просто галка, которую ты поставишь, появится после перезагрузки
<mikekaganski> сохранится*
<mikekaganski> но тем не менее, не надо. Это всё же хоть и небольшая, но новая фича
<mikekaganski> так что только в 5-4
<tagezi> небольшая )))
<mikekaganski> tagezi: ты не жди ничего, запули в геррит, я гляну. Заодно соберётся на всех платформах
<tagezi> почти форматирование кода, с легким копипастом ))
<mikekaganski> и что? как бы это не было "легко", это не меняет сути.
<tagezi> не, придется ждать, опять где-то таб стоит
<tagezi> You have some suspicious patch lines:
<mikekaganski> понял
<mikekaganski> ты сразу поправь и пуляй, всё равно не жди
<tagezi> а сборка?
<mikekaganski> не страшно
<mikekaganski> если он *в данный момент* компилит этот файл - он будет для чтения
<mikekaganski> а если ещё не или уже да - пофиг
<mikekaganski> бывает, кожда ты вносишь изменение, которое меняет код - тогда могут появиться файлы одновременно со старым и новым вариантом. Это неприятно, надо ждать. А тут - пробелы
<mikekaganski> tagezi: ты своему vimу скажи, чтобы он при выравнивании отступов табы не пихал
<tagezi> да я казал уже ))
<mikekaganski> не слушается?
<tagezi> там ещё конечные пробелы проверяются
<tagezi> у меня пустая строка была с 12 пробелами, нужно будет с этим разобраться, чтобы он их удалял нафиг
<mikekaganski> а... ясно.
<tagezi> офигеть сборка долго идет )
<tagezi> Note: Some input files use unchecked or unsafe operations.
<tagezi> Note: Recompile with -Xlint:unchecked for details.
<tagezi> это имеет значение?
<tagezi> это было после [JUT] dbaccess_unoapi
<mikekaganski> не имеет
<mikekaganski> красное глянь :)
<mikekaganski> а зачем дефолт тру?
<mikekaganski> оставь как было, тогда все будут довольны
<tagezi> а кто не доволен?
<mikekaganski> пока никто, но поверь мне
<mikekaganski> тут же набегут "у меня какие-то цыфорьки показались где их не было"
<tagezi> вообще, во всех нормальных редакторах строки видны, я вообще не понимаю почему они у нас были по умолчанию не включены
<mikekaganski> а так ничего не меняется для тех, кому не надо, а тем, кому надо - ништяк
<tagezi> а чтобы не довольные не кричали сильно, и сделана настройка
<mikekaganski> вот конкретно это нужно "обсуждать"
<tagezi> кого с кем?
<mikekaganski> "нужно ли это включать по умолчанию"
<mikekaganski> просто обязательно появятся несогласные
<mikekaganski> поэтому я и не понимаю, зачем менять дефолт, если ты настройкой себе всё сделаешь зашибись
<tagezi> не согласные есть всегда, но у нас мериократия, так что -- программист всегда прав )))
<mikekaganski> ок, не спорю :))))
<mikekaganski> но если кроме шуток - я тебе советую подумать об этом
<tagezi> ну, слушай.. будет визг, поменяю обратно, там уже просто, хотя я не представляю почему он может быть...
<mikekaganski> я в любом случае возьму на себя пуш - потом, если надо, исправят
<mikekaganski> я просто параноик :)
<tagezi> экраны уже почти у всех широкие, и я думаю 90% этого не заместят вообще
<mikekaganski> ладно. Надо об этом в релизнотах написать
<tagezi> а оставшиеся 10% будет меня искать, только для того чтобы поблагодарить ))
<mikekaganski> замки починил? а то мало ли...
<tagezi> пробел нужно удалить... влез гадина
<tagezi> нужно с ними придумать будет что-нибудь
<mikekaganski> в виме же вроде можно как-то подсвечивать висящие пробелы
<tagezi> да, но можно тупо их удалять при сохранении документа
<mikekaganski> тут какой момент. Мне кажется, в таком виде это таки может вызвать регрессию. Хотя модуль IDE обязан загружаться *после* модуля настроек, так что инициализация глобальной переменной, возможно, не проблема
<mikekaganski> Я бы всё же выкинул глобальную переменную, а проверял настройку каждый раз там, где она нужна
<mikekaganski> (вообще глобальные переменные - зло :) )
<JohnDoe_71Rus> глобальные постоянные - добро
<mikekaganski> локальные
<tagezi> вот по этому, я и говорил тебе про то, что нужно преверять её ))
<tagezi> а вдруг её нет )
<mikekaganski> tagezi: там не её нет, а ты можешь обратиться к менеджеру настроек, которого ещё нет
<tagezi> хорошо, вот и нужно смотреть, если менеджер настроек есть то присваеваем из настроек, а иначе она равна Тру
<mikekaganski> прекрасно, все *nix отработали норм
<tagezi> и не париться с проверками, выниманиями и передачами переменной
<mikekaganski> ты как менеджер настроек видишь? ты используешь хелпер, который это всё от тебя скрывает
<tagezi> тоесть к нему нельзя обратиться?
<mikekaganski> если ты сейчас откажешься от хелпера, тогда у тебя появится нагромождение
<mikekaganski> можно, но через жопу
<mikekaganski> лучше просто в 3 местах замени bSourceLinesEnabled на ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get()
<tagezi> а если менеджер настроек не загрузился, чему равно вот это ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get() ?
<mikekaganski> а строки 176-177 просто убей
<mikekaganski> tagezi: возможно, крашу :)
<mikekaganski> это нужно залезть в кишки хэлпера, проанализировать все вложенные методы.
<tagezi> ну, это уже не спасёт ни что в этом коде
<mikekaganski> Зачем?
<mikekaganski> почему не спасёт?
<mikekaganski> не понял тебя
<tagezi> ну потому что, в любом месте переменная может быть пуста, если менеджер настроек не загрузился
<tagezi> и не важно локальная она или глобаьная
<mikekaganski> Проблема же не в том, что опасно использовать хэлпер: проблема в том, что ты его используешь вне функций, в инициализаторе глобальной переменной
<mikekaganski> эта инициализация происходит до того, как все объекты готовы. Порядок инициализации таких переменных не определён стандартом
<mikekaganski> и поэтому если ты в таком инициализаторе зависишь от другого глобального объекта, то могут быть неприятности
<mikekaganski> а менеджер глобален
<tagezi> ну, можно сделать так.. забирать его в той части, где галка ставиться или убирается
<mikekaganski> ты там и забираешь, но что будет до того, как ты щёлкнул туда?
<mikekaganski> у тебя строки: 1128, 1195, 1377
<mikekaganski> всё
<tagezi> не, погоди, ты меня не путай.. сейчас обращение к менеджеру происходит тогда, когда ещё не отработали функции первый рах, тоесть гуй не сформирован
<mikekaganski> так
<mikekaganski> один раз
<mikekaganski> и что?
<tagezi> если его ставить, то вотсюда
<tagezi> 1126 case SID_SHOWLINES:
<tagezi> 1129 break;
<tagezi> 1130 }
<tagezi> 1128 rSet.Put(SfxBoolItem(nWh, bSourceLinesEnabled));
<tagezi> 1127 {
<mikekaganski> не только
<tagezi> и тогда определять 2 локаьных переменных
<mikekaganski> ты хочешь оптимизнуть?
<mikekaganski> тогда в классе ModulWindow добавь один булевский член класса и инициализируй его в конструкторе ModulWindow::ModulWindow
<tagezi> блин, если убираешь глобальную переменную, тогда начинается копипаст кода
<mikekaganski> такой копипаст (одинаковый вызов одной функции) - это не копипаст. Тебя не напрягают повторяющиеся использования какого-нибудь sin()?
<mikekaganski> а у тебя именно используется одна функция.
<mikekaganski> просто с длинным именем
<tagezi> ну, вот я обычно стараюсь писать так, чтобы не повторяться )
<mikekaganski> В строках 987-993, конечно, объявишь локальную переменную
<tagezi> чтобы это была одна логическая цепочка
<mikekaganski> :))))
<mikekaganski> хе. Это ты хитришь.
<mikekaganski> Повторы имени переменной - не повторы?
<mikekaganski> разницы практически нет
<mikekaganski> если бы ты в каждом месте писал повторяющийся алгоритм - тогда да
<mikekaganski> Короче: давай сделаем либо повторы вызовов функции, либо член класса с инициализацией в конструкторе
<mikekaganski> второй вариант тебе ближе
<mikekaganski> хотя ИМО избыточен
<tagezi> тут есть ещё один вопрос, кадый раз вызывая эту функцию, я буду вызывать работы менеджера настроек
<tagezi> что будет увеличивать время работы алгоритмя
<tagezi> а* )
<mikekaganski> я и говорю: ты хочешь оптимизнуть
<tagezi> ну, да..
<mikekaganski> в данном случае это не принципиально, поскольку число срабатываний ничтожно
<mikekaganski> но в принципе ты прав
<mikekaganski> и в этом случае вариант с членом класса - наше всё
<tagezi> и в данном случае, на мой взгляд это логично, потому что вызывается довольно большой кусак кода, а проблема о которой ты говоришь, должна решать не в этом месте
<mikekaganski> но в случае члена класса есть момент
<mikekaganski> склько может быть открыто таких окон?
<tagezi> одно
<mikekaganski> если одно - нет проблем
<mikekaganski> если несколько - нужно как-то договориться, как оповещать остальные об изменении параметра
<mikekaganski> потому что сейчас у тебя есть глобальная переменная, общая для потенциально многих окон
<tagezi> да, в этом случае я согласен )
<mikekaganski> а в случае члена класса при клике меню будет меняться настройка одного окна
<tagezi> но покажи мне как открыть второе окно BasicIDE )
<mikekaganski> я и говорю - ЕСЛИ
<mikekaganski> вариант с постоянным вызовом функции не имеет этой проблемы, потому что любое окно узнает об изменении, как только вызовет её
<mikekaganski> Смотри: у тебя эта опция дёргается когда?
<mikekaganski> 1. При клике меню - ModulWindow::ExecuteCommand
<mikekaganski> 2. При запросе свойств окна - ModulWindow::GetState (это внешние клиенты могут спрашивать)
<mikekaganski> 3. При активации окна - ModulWindow::Activating
<mikekaganski> 4. При создании документа - ModulWindow::OnNewDocument
<mikekaganski> Всё.
<mikekaganski> При этом пункт 1 - там запись, а не чтение
<mikekaganski> Это несколько вызовов за всю сессию работы, а не использование в каком-то плотном цикле
<tagezi> ну, да
<mikekaganski> так что *в данном конкретном случае* использование каждый раз менеджера настроек - не проблема, а код упрощает
<tagezi> ладно, впринципе ты прав, а зоодно мне сейчас расскажешь про это:
<tagezi> тогда в классе ModulWindow добавь один булевский член класса и инициализируй его в конструкторе ModulWindow::ModulWindow
<mikekaganski> это другой вариант,
<mikekaganski> а что именно рассказать?
<tagezi> то есть, ты предлагаешь написать булееву функцию
<JohnDoe_71Rus> напоминает мне программирование на asm по телефону. на первом курсе
<tagezi> bool ModulWindow::GetSetting()
<mikekaganski> tagezi: ну, я бы не стал здесь писать ещё функцию
<tagezi> это?
<tagezi> тогда я тебя вообще не понимаю
<mikekaganski> просто ModulWindow::m_bLineNumbers
<tagezi> погодь, а что она будет возвращать?
<tagezi> чото ты меня запутал в конец
<mikekaganski> basctl/source/basicide/baside2.hxx: пихаем между строками 316 и 317 такое вот: bool bLineNumbers;
<tagezi> ну, переменная
<JohnDoe_71Rus> переменные не возвращают. переменные принимают значения
<mikekaganski> потом в basctl/source/basicide/baside2.cxx после стр. 188 пихаем bLineNumbers = ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get();
<mikekaganski> и потом в нужных местах вместо bSourceLinesEnabled используем эту bLineNumbers
<mikekaganski> всё
<mikekaganski> (это если окно одно)
<tagezi> аничнается )
<mikekaganski> Так это же вариант, который нам сейчас не нужен. Ты никакие переменные не вводи
<mikekaganski> (а то я боюсь тебя запутать)
<tagezi> ты меня уже запутал ))
<mikekaganski> мы же говорили про два варианта: ЛИБО в каждом месте использовать ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get(), ЛИБО член класса
<mikekaganski> Мы вроде договорились про ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get()
<mikekaganski> а потом ты меня спросил про член класса
<mikekaganski> я подумал, что это тебе просто для интереса
<mikekaganski> потому что выбранный способ не требует этих телодвижений
<tagezi> не, почему мы пихаем в 316-317 строку имя переменной
JohnDoe_71Rus has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]
<tagezi> причем тут вообще BasicExecute
<mikekaganski> [15:47]mikekaganski: лучше просто в 3 местах замени bSourceLinesEnabled на ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get()
<mikekaganski> [16:17]mikekaganski: так что *в данном конкретном случае* использование каждый раз менеджера настроек - не проблема, а код упрощает
<mikekaganski> [16:10]mikekaganski: но в случае члена класса есть момент ...
<mikekaganski> [15:58]mikekaganski: тогда в классе ModulWindow добавь один булевский член класса и инициализируй его в конструкторе ModulWindow::ModulWindow
<mikekaganski> [15:57]mikekaganski: ты хочешь оптимизнуть?
<mikekaganski> [16:21]tagezi: ладно, впринципе ты прав, а зоодно мне сейчас расскажешь про это:
<mikekaganski> это я хронологию привёл на всякий случай
<mikekaganski> теперь я должен понять: какой из двух вариантов ты для себя выбрал? с вызовом функции или с членом класса?
<mikekaganski> а то мы совсем запутаемся
<tagezi> вызов функции я понимаю, пишу булеву функцию и ставлю её вместо переменной там где нужно считать настройки из файла
<tagezi> объясни про член )
<mikekaganski> не надо ничего писать! вызов функции - это именно ::officecfg::Office::BasicIDE::EditorSettings::LineNumbering::get()
<mikekaganski> это такое имя функции
<mikekaganski> которую и надо вызывать
<mikekaganski> про член объяснить - это да, это интересно :)
<mikekaganski> это нужно БЫЛО БЫ, если бы ты решил не вызывать функцию менеджера настроек каждый раз, а хранить значение в локальной переменной для оптимизации
<mikekaganski> и поскольку мы отказались от такого варианта, то я рассказываю чисто для полноты картины (если бы у бабу^Wкласса был член, это был бы...)
<mikekaganski> в общем-то, этот вариант описан с [16:26] по [16:28]
<mikekaganski> я там остановился на том, что этот вариант ещё больше усложнился БЫ, если бы было много окон
<mikekaganski> так что вроде всё рассказал
<tagezi> так, нужно чтать учебник.. )
<tagezi> член класса - это перменная объявленая в описании класса
<mikekaganski> да
<tagezi> но я не понимаю как это решит вопрос с поздним доступом менеджера
<mikekaganski> а! тогда вопрос понятен
<mikekaganski> поскольку мы в этом случае инициализировали бы его в конструкторе, время инициализации зависело бы от момента создания окна
<mikekaganski> а окно создаётся у нас гарантированно после инициализации всех глобальных объектов
<mikekaganski> в т.ч. и менеджера настроек
<tagezi> а в чем тогда минус?
<mikekaganski> в случае множества окон
<mikekaganski> тогда бы пришлось регистрировать слушатель изменений настроек, чтобы при изменении этой настройки в одном окне все другие тоже бы знали об этом
<mikekaganski> либо делать эту переменную статическим членом класса и так же инициализировать её в конструкторе, но с доступом через мьютекс для безопасной работы в многопоточной среде
<mikekaganski> короче, это бы усложнилось
<mikekaganski> Я целиком за то, чтобы не городить огород
<tagezi> ладно, тогда как временный вариан (тоесть на всегда :) уберу глобальную переменную и подставлю функцию
<tagezi> если мой компьютер начнет тормозить, я тебе всё выскажу )))
<mikekaganski> :))))))))))))))))))))))))))))))))))))
* mikekaganski довольно потирает руки, радуясь, что сделал гадость - в душе радость
<VitaliyAnderson> Типичный депутат
<VitaliyAnderson> mikekaganski: го избарацца
<VitaliyAnderson> избирацца*
<mikekaganski> VitaliyAnderson: :)
<mikekaganski> tagezi: Мне нравится.
<tagezi> ааа.. у него дохрена конфликтов
<mikekaganski> ну это как бы неизбежно... при таком размере патча
<tagezi> а зачем он уберает строку?
<tagezi> хм.. а размер строки не измениться после этого? )
<tagezi> и пач да... очень большой.. надеюсь он его не руками делал
<mikekaganski> что значит - убирает строку?
<tagezi> ой, я посмотрел всего пару файлов, он там дофига чего чистит
<mikekaganski> какой-то глобальный чендж системы локализации
<tagezi> наверное анализатор гугла посоветовал ))
<mikekaganski> :)
<tagezi> блин, она наверное месяц работал над этим патчем.. там же реально в каждом файле изменения )
<VitaliyAnderson> омг
<VitaliyAnderson> mikekaganski: ты чего таких монстров в чат кидаешь
<VitaliyAnderson> не пугай норот
<mikekaganski> я???
<VitaliyAnderson> а.. извиняюсь
<VitaliyAnderson> tagezi: ты! :D
<mikekaganski> я сам тут из-под стола отвечаю
<tagezi> ну, мне герит сказал что конфликт, я решил посмотреть с кем
<tagezi> ну и... страшно стало, решил поделиться )
<VitaliyAnderson> Такое ощущение, что некоторые программисты - не люди
<mikekaganski> а каолан - это и не человек, об этом даже квип знает
<VitaliyAnderson> Ну физически хрен сможешь столько кода написать, даже если изначально пишешь правильно
<VitaliyAnderson> mikekaganski: а что там в квипе про это?
<mikekaganski> VitaliyAnderson: In fact, Caolán appears to be an email alias that 3 developers are attached to. - Keith Curtis
<tagezi> ))
<mikekaganski> VitaliyAnderson: <buovjaga> the "Caolán conspiracy theory" surfaces again: https://lists.freedesktop.org/archives/libreoffice-qa/2016-July/009708.html -- <buovjaga> do reptilians control Earth politics, can jet fuel melt steel and does Caolán consist of a cabal of furiously typing elves?
<tagezi> cabal of furiously typing elves
<tagezi> дадада
<mikekaganski> :)
<VitaliyAnderson> Ну да
<VitaliyAnderson> Я даже проформошлепать на Qt не смогу столько за день
<tagezi> за 3 дня )
<tagezi> никсы собрались нормально
JohnDoe_71Rus has joined #libreoffice-ru
<tagezi> mikekaganski: а в 5.4 его толкнуть, нужно будет на кнопку чери-пик жать?
<tagezi> mikekaganski: дженкинс сказал что всё хорошо
<mikekaganski> ага
<tagezi> и теперь чери пик ченьж?
<mikekaganski> да
<tagezi> ладно, пойду я погуляю, пока дженкинс там собирает
kompi has joined #libreoffice-ru
<mikekaganski> kompi: закинешь патч tagezi в релиз?
<kompi> mikekaganski: мне хватает пары ачивок от Майкла Саундерса - за помощь в подтверждении багов и за написание документации!
<kompi> я город и без этого вашего кода-копания!
<kompi> горд //фикс
<kompi> я щас сдохну, так бошка заболела резко..............
kompi has quit [Quit: Page closed]
VitaliyAnderson has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<tagezi> mikekaganski: да я сам закину
<tagezi> mikekaganski: готово, собралось
kompi has joined #libreoffice-ru
_whitelogger has joined #libreoffice-ru
<kompi> Живые есть?
<tagezi> угу
<kompi> И как оно?
<kompi> Ты решил покодить на благо мира?
<tagezi> на благо себя, просто Майк застебал меня в доску, пришлось допиливать до ума )
<mikekaganski> хм... вроде не стебал...
<tagezi> тсссс ;)
<kompi> Ахах
<kompi> А он НЕ СПИТ!
<kompi> tagezi: ты оформи свои достижения в релизнотес не стесняйся
<tagezi> kompi: всмысле?
<kompi> Опиши свои правки меню
<tagezi> если что, я вообще ниразу не стеснительный )))
<tagezi> kompi: ты видел патч макнамары?
<kompi> Прощай локализация?
<kompi> Смысл глобальный в чем?
<tagezi> упрощение локализации
<tagezi> насколько я понимаю, выпиливает старые кастыли
<mikekaganski> kompi: смысл глобальный - в упрощении локализации, в устранении случаев, когда непереведённый в какой-то локализации кусок должен находиться в этой локализации в английском варианте, это что я успел понять
<mikekaganski> :))
<kompi> Но как это отразится на текущей локализации?
<tagezi> mikekaganski: объясни мне, недостойному подавану мастеров программирования ЛО
<mikekaganski> пока писал свои многабукаф, tagezi всё описал в двух словах. Краткость - с.т.
<mikekaganski> :))))))))))) слющий! и ведь блин ни одна зараза коверити не нашла!
<tagezi> можно я исправлю? )
<mikekaganski> канешна.
<tagezi> раз оно работает с ними, должно работать и без них )
<mikekaganski> :)
<kompi> Смотри не сломай все нафиг
<mikekaganski> если он ни разу не сломает - как он детям в старости смотреть в глаза будет?
<kompi> Я хз
<tagezi> правельный ответ: через очки )
<mikekaganski> :)
<kompi> Почему бы и нет
<kompi> Т
<tagezi> а сижу тут думаю, и чего это я код местами не понимаю.. думаю отупел на старости лет... ааа, нет, не отупел ))
<kompi> Зоркий глаз
JohnDoe_71Rus has quit [Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
<mikekaganski> эта хрень ещё с 2000 года была перетащена хз откуда, и тогда существовал кусочек закомментированный - намёк на то, что когда-то это имело смысл :))
<tagezi> да, тогда это имело смысл bAdd = GetEditView()->SelectCurrentWord();
<tagezi> а сейчас она полюбому тру
<mikekaganski> не, тогда уже не имело - эта строка уже была закомментирована. Это имело смысл когда-то раньше
<mikekaganski> седая древность... :)
<tagezi> я вообще эту функцию и изучал, на предмет, почему проскакивает _ при выделении переменной
<tagezi> mikekaganski: проверь у себя плиз
<tagezi> открой бейсик иде
<mikekaganski> ладно, спокойной ночи! Не пытайся сегодня сделать то, что можно оставить на завтра. Я проверю завтра, ок?
<tagezi> выдели любую переменную двойным щелчком мыши
<mikekaganski> ок
<tagezi> и потом просто в неё ещё раз ткни, чтобы снять выделение
<tagezi> хорошо
<mikekaganski> ты про то, что _ "разделяет" выделение?
<tagezi> нет, я про то что выделение не снимается, при повторном нажатии на переменную
<tagezi> походу у нас регрессия
<mikekaganski> у меня снимается
<mikekaganski> это в какой версии
<mikekaganski> или это в мастере?
<tagezi> так... ты прав.. не пытайся сломать сегодня то, что можно сломать завтра ))
<tagezi> в мастере
<mikekaganski> до завтра!
<tagezi> да, ночи ))