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
kompi-work has joined #libreoffice-ru
<kompi-work> mikekaganski: вот как бывает, написал Густаво, чтобы он локализовал свое расширение, тот в ответ попросил проверить багу в расширении, при проверке которой я наткнулся на креш Либры
<kompi-work> mikekaganski: все в мире взаимосвязано
<tagezi> kompi-work: а ты знал, что программеры специально вставляют краши? :)
<tagezi> есь даже специальная стандартная библиотека чтобы аварийно завершить работу приложения :)
<mikekaganski> :)
<mikekaganski> tagezi: поздравляю!
<mikekaganski> kompi-work: это ты про какой краш?
<tagezi> mikekaganski: чего бы сломать?
<tagezi> что-то, то что мне нравиться, либо слишком просто, либо слишком сложно
<mikekaganski> :)
<mikekaganski> а слишком просто - это плохо?
<mikekaganski> если нравится - делай
<tagezi> ну, оно уже не даёт расти дальше
<tagezi> хочется что-то, чтобы и мозг поскрипел, и решить мог
<mikekaganski> я же тебе недавно давал задачу, ты её на потом отложил... я уже не помню про что
<tagezi> вроде я всё что ты давал сделал
<tagezi> последнее что было предлагал Рома, но там я не понимаю
<tagezi> ?
<tagezi> ааа.. со списками
<tagezi> то что нужно было упростить
<kompi-work> mikekaganski: я хотел отбибисектить сам, но Хиско в ночи жахнул сам
<tagezi> kompi-work: Draw для и Math для обработки векторных рисунков
<kompi-work> а?
<tagezi> Draw для обработки векторных рисунков
<kompi-work> ну
<tagezi> а у тебя для рисования
<kompi-work> в оригинале drawing
<kompi-work> когда в draw я создаю рисунок я рисую
<kompi-work> чем это плохо?=(
<kompi-work> чему? https://i.imgur.com/tpUg5hK.png
<tagezi> у документации есть стандарты. Простонародные выражения нужно стараться избегать, так как они не польностью отражают цель
<tagezi> да, одно из сотни
<kompi-work> это не документация, это философский трактат
<kompi-work> я и пеерводил для простого народа
<kompi-work> ты как в другой галактике ей богу
<tagezi> вообще-то это документация, и по нему сдают экзамен чтобы попасть в список профессиональных мигрантов
<kompi-work> я что, извратил смысл текста? написал что в Draw можно писать Войну и мир - 2?
<tagezi> вообще-то можно :)
<tagezi> ой, да как хочешь
<kompi-work> надо добавить тогда
<tagezi> похер, пиши как хочешь
<kompi-work> оооо, экзамен, чтобы попасть в список профессиональных мигрантов?! а мужики-то в России не знают
<kompi-work> и я не сам сочинял, я ПЕРЕВЕЛ
<kompi-work> пойду мистера Эндорфина активирую
<mikekaganski> tagezi: ты же там мог просто менюшку добавить для начала
<tagezi> mikekaganski: угу, я вспомнил..
<tagezi> сейчас смотрю уже
<tagezi> mikekaganski: может из него художества убрать для начала?
<mikekaganski> художества?
<kompi-work> mikekaganski: посмотрел креш? или ты просто так спросил?
<mikekaganski> посмотрел, увидел бибисект.
<kompi-work> так я об этом и написал
<kompi-work> что Хиско в ночи жахнул
<kompi-work> из bibisect-gun
<mikekaganski> tagezi: я бы не стал. Это ерунда, на самом деле... :) меня интересует код, а не художества. Я вон тоже решил похулиганить: https://gerrit.libreoffice.org/#/c/47111/2/vcl/source/font/fontcache.cxx - строка 320
<mikekaganski> kompi-work: я помню :) просто ты спросил, посмотрел ли я
<mikekaganski> я и отчитался
<kompi-work> zcyj
<kompi-work> ясно
<kompi-work> опять вспышки на центральной звезде мешают коммуникациям=(
<tagezi> mikekaganski: ну, они мало информативны, а занимают кучу места
<mikekaganski> tagezi: удаление их в отдельном коммите - это шум в истории. Поскольку они исключительно бессмысленны, можешь убить их вместе с какой-нибудь другой правкой в этом файле
<tagezi> ты же говорил что правки не должны включать ничего лишнего
<tagezi> ты уж определись :)
<mikekaganski> да, но именно здесь это будет абсолютно ненужный коммит в истории. Жизнь сложна :)))
<tagezi> в чем вред для истории?
<mikekaganski> откат этого коммита не может быть нужен ни для чего - просто лишний элемент в бисекте
<tagezi> ну, если так рассуждать, то перевод коментариев тоже не нужен
<tagezi> есть гугл ранстейт всегда
<tagezi> и форматировать код тоже не нужно.. и так можно прочитать
<tagezi> и каргокульт убирать не нцжно, ибо он вообще не мешает, даже при чтении
<mikekaganski> ... :) ты бы попробовал потранслейтить некоторые тамошние комментарии :) - но я просто советую; ты можешь сделать отдельный патч -
<tagezi> я просто не понимаю принцип
<tagezi> вот я хочу сделать правку, это будт строк 10-15
<tagezi> эта правка может привести к регрессии, и её возможно нужно будет откатить
<tagezi> но я вижу, просто визуальный косяк.. не значимый для программы, но не удобный для визуазизауии кода..
<tagezi> и что мне делать?
<tagezi> оставлять мусор в коде?
<mikekaganski> правь :) я начинаю мешать
<kompi-work> mikekaganski: опечатки в коде правят же отдельными патчами, чего ты привязался
<kompi-work> fix typos
<kompi-work> полный геррит таких
<mikekaganski> я и говорю - правь, не слушай
JohnDoe_71Rus has joined #libreoffice-ru
<kompi-work> mikekaganski: сокращение кодовой базы важно для проекта?
<tagezi> нет
<tagezi> так же как и её увиличение
<mikekaganski> да, потому что (1) чем меньше кода, тем проще в нём ориентироваться; (2) главное - устранение дублирования кода упрощает поддержку и устранение багов
<tagezi> имеет значение уменьшение дублирующего функцинала
<tagezi> mikekaganski: ты путаешь теплое с мягким :)
<mikekaganski> ну, я отвечаю пользователю
<tagezi> он спросил про уменьшение кодовой базы, а не про удаление дублирующего кода :)
<mikekaganski> это не одно и то же, но очень связанные вещи
<tagezi> для ЛО не имеет значение уменьшение количество строк кода само по себе, это слишком сложная программа, и даже если кода будет в 2 раза меньше, то всеравно ориентироваться будет сложно
<mikekaganski> кроме устранения дублирования, второй главный метод уменьшения - это устранение неиспользуемого функционала
<mikekaganski> неправда насчёт "не имеет значения"
<mikekaganski> да, сложно будет, но эта сложность, во-первых, уменьшится - особенно для неновичков, а это тоже важно; во-вторых, облегчается сопровождение
<tagezi> значение имеет конкретные задачи, убирать дублирующий код, когда это возможно, убирать не используемый функционал, утрощение используемого
<tagezi> но это всё может приводить нетолько к уменьшению, но и к цвиличению кодовой базы :)
<mikekaganski> да
<tagezi> так что, само по себе уменьшение кодовой базы не имеет значения, имеет значение решение конкретных задач
<mikekaganski> kompi-work: хе, в моём ответе последняя ссылка начинается с SI-GUI
<tagezi> mikekaganski: как у нас организован вызов контекстного меню?
<tagezi> что-то я не догоняювообще
<mikekaganski> разбираться нужно... я не знаю
<kompi-work> mikekaganski: для него СиГУИ это вирус, так что не важно
<mikekaganski> kompi-work: он видит что видит; насколько я понимаю, он не сможет отключить антивирус; так что просто пусть делает вручную
<JohnDoe_71Rus> https://habrahabr.ru/company/piter/blog/345560/ ищите книгу на просторах инторнета
JohnDoe8 has joined #libreoffice-ru
JohnDoe_71Rus has quit [Ping timeout: 240 seconds]
<tagezi> где бы найти пануал по добавлению popup меню в ЛО :)
<tagezi> а то я вроде меню мобрал, но терь нужно понять как его вызвать в нужном месте :)
<tagezi> и это конечно жесть, в одном месте они в xml оформлены, а в других прям в коде прописаны
<kompi-work> tagezi: а был же целый проект по переводу всего в хэмээль
<kompi-work> mikekaganski: мне сейчас айтишник наш сказал такую штуку: "Зачем тебе Либра, если есть корпоративный МСО, который для тебя бесплатный, пока ты работаешь в компании?"
<kompi-work> такое неподдельное удивление у чувака
<tagezi> был.. как всё хорошее он так и остался не доделаным.. в одном месте ui, в другом xml, в третьем прям в коде сделано
<mikekaganski> :)
<kompi-work> mikekaganski: причем он такой "я и сам пишу баг-репорты, когда нахожу косяки и считаю это в принципе правильным...но Либра?!"
<mikekaganski> tagezi: если ты находишь такие штуки, прям сразу пиши багрепорты
<tagezi> mikekaganski: вот пусть ман напишут как заводить контекстное меню в интерфейс, я сам и сделаю это
<kompi-work> послушайте, но ведь ui - это диалоги, причем тут отдельное меню?
<tagezi> это для сайдебара ратера
<tagezi> kompi-work: а разница какая?
<tagezi> и там и там по сути xml, но немного разный
<tagezi> и там и там это гуи
<mikekaganski> tagezi: ну, здесь меню сильно динамическое, туда же тянется куча из документа?
<tagezi> единстренное чего добились этим переводом, так то, что куча окон теперь не расширить
<tagezi> mikekaganski: ну, по сули да.. но не совсем так..
<tagezi> там часть элементов, просто тупо в цикле набирается
<tagezi> и лишь четверный пункт добавляется если нужен
<tagezi> я думаю можно было вынести в файл, и четвертый пункт просто скрывать или отображать если нужно
<tagezi> но не суть, короче.. вот оно так сделано
<tagezi> но меня сейчас больше интерисует, как они это вызывают... потому что я не вижу вызова
<mikekaganski> это виртуальная функция, так что вызов где-то автоматом по ПКМ в VCL
<mikekaganski> тоже виртуальная
kompi-work has quit [Quit: Page closed]
<tagezi> интересно, почему функции называют виртуальными?
<tagezi> в русском языке это слово говорит о недействительном, чем-то абстракном
<mikekaganski> Спроси Bjarne :)))
<tagezi> а в английском это "фактический"
<mikekaganski> кстати, это именно абстрактные классы
<tagezi> тоесть правильно "фактически исполняемая функция"
<mikekaganski> virtually в значении "практически", "фактически" - это что-то другое
<tagezi> истинный :)
<mikekaganski> интересно, как слово вывернулось на изнанку в процессе использования
<tagezi> когда-то давно, какой-то переводчик решил так перевести
<mikekaganski> исходное - кажущийся и его товарищи
<tagezi> ну, это так же как с leave
<tagezi> с одной стороны оставлять, а с другой уходить :)
<tagezi> ладно, нужно придумать как эту функцию зарядть теперь.. пусть блин ничего не делает, главное чтобы меню появилось
<tagezi> никто умный не хочет написать книгу "Разработка в среде программирования ЛО на с++" ? :)
<tagezi> мне константа нужна.. теоритически она должна быть везде одинакова, но определена в райтере
<tagezi> почему-то
<mikekaganski> пересоздай заново...
<tagezi> да, ты прав, нужно делать для всех этих деревьев промежуточный файл, где объединять всё что повторяется
<tagezi> а то у меня начинают дублироваться константы, функции, макросы
kompi-home has joined #libreoffice-ru
<tagezi> :)
<tagezi> переборщил :)
<tagezi> но оно появляется :)
<mikekaganski> урррррррра! :)
<mikekaganski> ну а глубина мне нравится. Но не делай слишком много. 450-460, не больше.
<tagezi> :)
<tagezi> странно, там константа 10 равна
<mikekaganski> прикольный значок на окне... там тема какая-то?
<tagezi> эм..
<mikekaganski> LibreOffice XO!
<tagezi> X
<tagezi> это у всех не установленых приложений такой
<mikekaganski> а... интересно :)
<tagezi> странно
<tagezi> const sal_uInt8 MAXLEVEL = 10;
<mikekaganski> мне не странно (потому что кода не вижу ;))
<tagezi> sal_uInt8 m_nOutlineLevel;
<tagezi> но, если я подставляю в цикл m_nOutlineLevel, то получаю 100500 уровней, а если константу, то 10
<tagezi> , m_nOutlineLevel(MAXLEVEL)
<tagezi> в конструкторе
<tagezi> они же вроде должны быть равны
<mikekaganski> она у тебя в цикле не меняется?
<mikekaganski> popuo
<tagezi> это потом :)
<tagezi> хотя можно и сейчас, спасибо :)
tagezi_ has joined #libreoffice-ru
<mikekaganski> не понимаю... а куда ты пихаешь nOutlineLevel в цикле?
<tagezi_> вместо MAXLEVEL пытался
tagezi has quit [Ping timeout: 260 seconds]
tagezi_ is now known as tagezi
<mikekaganski> дай весь патч
<mikekaganski> лучше в форме, где он даёт кучу уровней
<tagezi> эм
<tagezi> сейчас сделаю
<tagezi> нужно будет не забыть весь мусар убрать из патча потом :)
<tagezi> вот второй, он дает кучу уровней
<mikekaganski> понял
<tagezi> о_О
<mikekaganski> private:
<mikekaganski> sal_uInt8 m_nOutlineLevel;
<mikekaganski> const sal_uInt8 MAXLEVEL = 10;
<mikekaganski> ...
<mikekaganski> SvxHlmarkTreeLBox::SvxHlmarkTreeLBox(vcl::Window* pParent, WinBits nStyle)
<mikekaganski> :
<mikekaganski> m_nOutlineLevel(MAXLEVEL)
<mikekaganski> { ...
<mikekaganski> Вот здесь у тебя объявлен сначала m_nOutlineLevel, а *потом* MAXLEVEL = 10
<tagezi> а есть разница?
<mikekaganski> он у тебя член класса, так что это просто переменная, но "постоянная".
<mikekaganski> и инициализируется десяткой она после того, как ей инициализирован первый член
<mikekaganski> а значит, в первый пошёл мусор в памяти
<mikekaganski> Чтобы это была реальная константа, нужно её сделать static
<mikekaganski> ну, или вынести из класса
<mikekaganski> ну, или сделать членом enum
<tagezi> тоесть у меня уровней, столько сколько в памяни мусару?
<mikekaganski> ага :)
<tagezi> с энумом нужно разбираться
<tagezi> тут вообще куча не нужного и куча не хватает
<mikekaganski> просто в конструкторе ~все компиляторы элементы объекта инициализируют в порядке их объявления в классе
<tagezi> я только сейчас начинаю въезжать как это работает
<tagezi> тоесть я ещё и не могу по красевее их распихать?
<mikekaganski> можешь, но нужно сделать так, чтобы один от другого не зависел
<tagezi> так.. ладно, константу можно вынести из класса
<mikekaganski> они в этом порядке инициализируются, но компилятор будет предупреждать (по крайней мере должён)
<mikekaganski> просто сделай static
<mikekaganski> зачем тебе лишний байт в каждом объекте?
<tagezi> так, не матерись
<tagezi> :)
<tagezi> mikekaganski: ты про добавление 100
<tagezi> ?
<tagezi> где байт?
kompi-home has quit [Quit: Page closed]
<tagezi> это интересный вопрос... не знаю.. убрал, вроде меню появляется, но не понятно как там будет потом, когда нужно будет определять какой пункт выбран
<tagezi> да, понял, оно мне не нужно.. мне достаточно от 1 до 10 сейчас
<tagezi> круто так, когда начинаешь понимать :))))
JohnDoe8 has quit [Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]