<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>
а, не совсем.. тут просто меню перетыкивается (
<mikekaganski>
JohnDoe_71Rus: там калориметр - это камера, стенки которой поддерживают одинаковую температуру (за счёт теплообменников). Таким образом, внутренняя среда обменивается теплом со стенками,
<mikekaganski>
а количество тепла в теплоносителе определяется тривиально
<mikekaganski>
Кроме того, определяются потреблённые (вода+еда) и выделенные теплоносители
<mikekaganski>
и используется калориметрическая бомба для определения разницы
<JohnDoe_71Rus>
мне к сожалению только через гугол прогонять.
<JohnDoe_71Rus>
ха, что означают крестики возле имени в начале. и конвертик
<mikekaganski>
крестик - ссылка ниже (принято в англоязычных научках вместо цифр)
<mikekaganski>
JohnDoe_71Rus: конвертик - емайл, но доступно после регистрации
<JohnDoe_71Rus>
mikekaganski: хм. одинаковый вклад... не вяжется у меня с самим символом. я сразу на статус R.I.P. подумал, но подвел конвертик следом. "кому писать сообщение"
<mikekaganski>
JohnDoe_71Rus: у них ещё всякие вариации есть, типа крестика с двумя горизонталями
<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>
так мэйк сделал.. теперь мне нужно найти файл в воркдир?
<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">
<mikekaganski>
В общем, там где нужно сохранить настройку, создаёшь ConfigurationChanges, потом вызываешь у своего свойства set() со значением и этим объектом, а потом ConfigurationChanges.commit()
<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>
ну, прсто если потом большенство функций будет вынесего, было бы логично сделать одну функцию сохранения настроек
<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>
да, но можно тупо их удалять при сохранении документа
<mikekaganski>
тут какой момент. Мне кажется, в таком виде это таки может вызвать регрессию. Хотя модуль IDE обязан загружаться *после* модуля настроек, так что инициализация глобальной переменной, возможно, не проблема
<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>
тогда в классе 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>
ну это как бы неизбежно... при таком размере патча
<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: дженкинс сказал что всё хорошо
<tagezi>
насколько я понимаю, выпиливает старые кастыли
<mikekaganski>
kompi: смысл глобальный - в упрощении локализации, в устранении случаев, когда непереведённый в какой-то локализации кусок должен находиться в этой локализации в английском варианте, это что я успел понять
<mikekaganski>
:))
<kompi>
Но как это отразится на текущей локализации?
<mikekaganski>
эта хрень ещё с 2000 года была перетащена хз откуда, и тогда существовал кусочек закомментированный - намёк на то, что когда-то это имело смысл :))
<tagezi>
да, тогда это имело смысл bAdd = GetEditView()->SelectCurrentWord();
<tagezi>
а сейчас она полюбому тру
<mikekaganski>
не, тогда уже не имело - эта строка уже была закомментирована. Это имело смысл когда-то раньше
<mikekaganski>
седая древность... :)
<tagezi>
я вообще эту функцию и изучал, на предмет, почему проскакивает _ при выделении переменной
<tagezi>
mikekaganski: проверь у себя плиз
<tagezi>
открой бейсик иде
<mikekaganski>
ладно, спокойной ночи! Не пытайся сегодня сделать то, что можно оставить на завтра. Я проверю завтра, ок?