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
<mikekaganski> tagezi: AreaParamClipRect -> AdjustAreaParamClipRect
<tagezi> переименовать?
<mikekaganski> ага
<tagezi> так
<tagezi> хорошо, сделаю, хотя ты придераешься :))
<tagezi> скажи вот что лучше
<mikekaganski> а вообще хороший файл, непаханное поле :)
<mikekaganski> я не придираюсь. Нужно, чтобы было понятно, что происходит в алгоритме
<tagezi> да я вчера уже матом крыл всех.. там есть ещё такоеже место, но чуть чуть другое, я просто не стал объединять уже, потому что срастить 5 мест, это уже жесть просто
<mikekaganski> Твой патч сделает весь код понятнее, и имя функции - один из компонентов
<mikekaganski> ? там не получится срастить? птому что если можно 5 - сделай 5
<tagezi> сейчас гляну ещё раз, дай кофе допить, я пол второго по финке лёг, в 6 встал уже :)
<tagezi> так, вопрос
<tagezi> про ссылки
<tagezi> вот смотри, тут копия куска
<tagezi> но в отличии от предыдущих мест, где в нутри функции обхейк создается, тут он берётся ссылка на него
<tagezi> OutputAreaParam& aAreaParam
<mikekaganski> так
<tagezi> я вызываю функцию так bool bClip = AreaParamClipRect(aAreaParam, bWrapFields);
<tagezi> и опять беру по ссылке bool ScOutputData::AreaParamClipRect(OutputAreaParam& aAreaParam, bool bWrapFields)
<mikekaganski> всё верно, твоя функция тоже принимает ссылку
<tagezi> да, но получается ссылка на ссылку
<tagezi> или там полставляется адрес объекта?
<mikekaganski> нет, это та же ссылка
<mikekaganski> да, там адрес объекта
<tagezi> то тоесть все изменения будут писаться в реальный объект?
<mikekaganski> да
<tagezi> хорошо, меня этот вопрос волнова, чуть не встал с кровати, когда спать лёг :)
<mikekaganski> :))
<mikekaganski> отдыхай блин
<tagezi> я не доконца понимаю эти ссылки
<tagezi> никто блин на пальцах не может объяснить
<tagezi> из некоторых мануалов вообще следует что *&object это копия объекста
<mikekaganski> ссылка - это тот же указатель, но гарантированно имеющая объект
<mikekaganski> так, дочу в сад
<tagezi> давай
<tagezi> ещё меня вот это место беспокоит https://opengrok.libreoffice.org/more/core/sc/source/ui/view/output2.cxx?defs=bWrapFields
<tagezi> оно негде не вычисляется
<tagezi> не, нашёл где вычисляется
<tagezi> вот вторая ссылка, это то место которое можно включить тоже, но тогда нужно делить на 2 функции
<tagezi> mikekaganski: и ещё вопрос по веркам git. я вчера тормазнул, мастер обновил, а в свою ветку мастер не забрал, а теперь мастер другой, и чтобы проверить, опять 6 часов ждать
<tagezi> короче, как мастер кинуть в ветку, так чтобы мой коммит остался по верх? :)
<mikekaganski> так, погодь
<mikekaganski> у тебя коммит же в геррите?
<tagezi> да
<mikekaganski> ты сейчас в мастере, так?
<tagezi> ну да
<mikekaganski> убей свою ветку, создай новую из мастера, и на неё накати из геррита
<mikekaganski> только в свою не переходи
<mikekaganski> в свою нынешнюю
<tagezi> а если уже переходил?
<mikekaganski> тогда ... можно попробовать сбросить всем изменившимся файлам даты, если знаешь утилиту
<tagezi> ох
<mikekaganski> для винды такие есть, а для lin не знаю
<mikekaganski> тут ведь дело в дате изменения
<mikekaganski> если всем исходникам дать дату вчера-позавчера, рекомпиляции не будет
<mikekaganski> touch умеет
<mikekaganski> заставить её делать это для всех cxx/hxx
<tagezi> ладно, я уже всё испортил
<mikekaganski> а почему ты говоришь, что в том куске надо бить на части?
<tagezi> так, ответь мне про пятое место, имеет смысл его включать?
<mikekaganski> я про него и говорю
<tagezi> потому что в пятом нет ифа одного
<tagezi> и тогда будет 2 функции, первая будет регулировать лево право, а вторая верх низ
<tagezi> в пятом куске нет if ( bWrapFields )
<mikekaganski> ага. Смотри: этот bWrapFields вообще сюда не относится и может быть проделан в вызывающих функциях : bool bClip = AreaParamClipRect(aAreaParam) | bWrapFields;
<mikekaganski> Другое дело, что тебе нужно в этом пятом куске вернуть не один bClip , а пару bHClip + bVClip
<tagezi> bHClip не участвует в расчетах и его можно вынести под функцию
<tagezi> aAreaParam.mbLeftClip || aAreaParam.mbRightClip; не поменяется к этому времени
<mikekaganski> С другой стороны, зачем вообще bHClip, если он получается из aAreaParam
<mikekaganski> да
<mikekaganski> так что можно из AreaParamClipRect возвращать только bVClip
<mikekaganski> а всё остальное получать в вызывающих функциях
<tagezi> да
<tagezi> так, объясни вот это bool bClip = AreaParamClipRect(aAreaParam) | bWrapFields;
<mikekaganski> bool bClip = AreaParamClipRect(aAreaParam) || aAreaParam.mbLeftClip || aAreaParam.mbRightClip || bWrapFields
<mikekaganski> я ошибся, там ||
<tagezi> аааа.. я догдал, если bWrapFields тру, то и bClip тру, тоесть можно вообще убрать иф
<tagezi> охренеть..
<tagezi> у меня мозг как-то на такие бешеные сокращения ещё не работает
<tagezi> но есть одно но, в пятом куске bVClip инициализируется как фалсе, а не как aAreaParam.mbLeftClip || aAreaParam.mbRightClip
<mikekaganski> bool bVClip = AreaParamClipRect(aAreaParam); bool vHClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
<mikekaganski> а в куске вообще убрать строки 2757-2758, а 2755 заменить на bool bVClip = false;
<tagezi> да, я понял
<tagezi> а присваивать булевый результат bVClip
<mikekaganski> нет уж, на bVClip, чтобы было понятно
<tagezi> спасибо :)
<tagezi> толькоо на bClip
<mikekaganski> :)
<tagezi> результат функции
<tagezi> да, красиво
<mikekaganski> и перед функцией дай коммент // Returns true if the rect is clipped vertically
<mikekaganski> для пущей ясности
<tagezi> да, но я вляпался в пересборку
<mikekaganski> ты сделай патч и выложи в геррит, пусть дженкинс проверяет
<mikekaganski> а у тебя пусть пока собирается
<mikekaganski> Обязательно в тех четырёх случаях оставь комментарий со строки 2757
<tagezi> и куда его поместить?
<tagezi> он же относится только к bWrapFields
<tagezi> он был в нутри блока, я его вынес на верх, просто чтобы убрать лишние строки
<tagezi> чел который писал этот код, любил размашистый стиль
<mikekaganski> Сделай примерно так: // Also take fields in a cell with automatic breaks into account: clip to cell width
<tagezi> хорошо
<tagezi> а чего Бьёрн хотел?
<mikekaganski> не знаю, а он чего-то хотел?
<tagezi> ну, он под Путле ботом поставил ноль
<tagezi> как я понял
<mikekaganski> какой ноль? не вижу
<mikekaganski> путлбот его добавил автоматом, а от него я не вижу реакции
<tagezi> аааа
<tagezi> а путл бот чего хотел? :)
<mikekaganski> а я не знаю, может, Бьёрн указал, какие файлы отслеживать, чтобы его информировать
<tagezi> вроде в них нет языковых функций
<mikekaganski> ?
<tagezi> ну путл, это система перевода, в которой Сергей переводит
<mikekaganski> а, это. Ну, не знаю, как они там его юзают. И ведь, чсх, никто не доплачивает бедному путлоботу за непрофильную переработку!
UNIm95 has joined #libreoffice-ru
JohnDoe_71Rus has joined #libreoffice-ru
kompi has joined #libreoffice-ru
<tagezi> mikekaganski: тут?
<mikekaganski> тут
<tagezi> объясни мне почему bool bVClip = false;
<tagezi> а не bool bClip = false;
<tagezi> функция вызывается из 4 мест
<mikekaganski> Мы же договорились, что горизонтальный клип мы будет в этих местах получать из aAreaParam.mbLeftClip || aAreaParam.mbRightClip
<kompi> mikekaganski: за менторство не доплачивают в Коллабора?
<mikekaganski> нет
<kompi> зря
<kompi> точно тебе говорю
<mikekaganski> функция вызывается из 5 мест :)
<tagezi> bp 4
<tagezi> из 4
<tagezi> так, я не понимаю тебя
<mikekaganski> ты же добавляешь ещё место?
<mikekaganski> в строку 1849?
<mikekaganski> Ну всё верно, но только bVClip
<mikekaganski> и сделай пустую строку над его объявлением, а не под
<tagezi> хорошо, впринципе тут побарабану, по любому понятно из контекста :)
* kompi понял только минус один
<kompi> =)
<mikekaganski> нет. Если имя переменной не отражает сути, потом возникает вопрос: а не ошибся ли автор
<tagezi> а равно?
<tagezi> эта переменная везде используется как bClip, кроме одного места :)
<mikekaganski> Нет, там теперь не эта переменная будет использоваться, а она плюс ещё другие
<tagezi> и, по тому что эти 4 куска скопипасчены, почти полностью, то я думаю автор не понимал что делает вообще :)
<mikekaganski> так что там будет примерно так: bClip = bVClip || bHClip || bWrap
<JohnDoe_71Rus> если бы автор не понимал что пишет, код бы не работал или работал не верно
<tagezi> JohnDoe_71Rus: да ладно, у меняже работает :)
<mikekaganski> где bVClip - это результат функции, bHClip - это aAreaParam.mbLeftClip || aAreaParam.mbRightClip
<JohnDoe_71Rus> мартышки еще не настучали и одного тома войны и мир
* mikekaganski размышляет, не поговорить ли на тему теории эволюции :)
<mikekaganski> а тут что? не понял
<tagezi> так ладно.. я понял тебя, хотя не понимаю почему это более понятно
<JohnDoe_71Rus> сократ?
<mikekaganski> тут как раз и будет bool bHClip = AdjustAreaParamClipRect(aAreaParam); bool bVClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
<mikekaganski> только наоборот
<mikekaganski> сократ что?
<tagezi> да bClip = тру как в вертикали || как в горизонтали || как в разрыве кадра
<tagezi> ладно, мне и так и так понятно, наверное, как ты говоришь понятнее, так как ты дольше работаешь в проекте и представляешь как должно быть
<JohnDoe_71Rus> mikekaganski: я знаю что ничего не знаю
<mikekaganski> сделал -1, чтобы никто не запостил
<JohnDoe_71Rus> у вас когда кто то берет править файл, он помечается "в работе user_name"? а то прилетят одновременно 2 комента от разных людей на один код
<mikekaganski> прилетают, бывает
<mikekaganski> но когда работают через геррит, это видно
<mikekaganski> tagezi: нене
<tagezi> что нене?
<mikekaganski> строка 1850 -> 1851
<mikekaganski> ты же только в AdjustAreaParamClipRect устанавливаешь правильные значения aAreaParam.mbLeftClip и aAreaParam.mbRightClip
<tagezi> аааа, Иван Иваныч
<mikekaganski> Можно даже там коммент оставить: // Take adjusted values of aAreaParam.mbLeftClip and aAreaParam.mbRightClip
* tagezi чуть не сломал всё
<mikekaganski> погодь, там ещё
<tagezi> mikekaganski: остальное нормально?
<mikekaganski> 4220
<mikekaganski> не поправил
<mikekaganski> аналогично 3901
<tagezi> да, не поправил
<mikekaganski> я же говорю: 5 :)
<JohnDoe_71Rus> то есть ты в реальном времени видишь что тагезя фиксит?
<mikekaganski> не совсем :) только то, что он выложил
<tagezi> да, 5 :)
<tagezi> так, всё?
<mikekaganski> блин твой фикс убирает 100 строк кода. Красота.
<mikekaganski> Вроде всё
<JohnDoe_71Rus> выложил это еще не пушнул?
<tagezi> это потому что без зборки, если бы сборку делал, онобы меня носот тыкнулобы
<mikekaganski> это понятно, но что ж тут сделать
<mikekaganski> у тебя наверное ещё полдня будет собирать
<tagezi> mikekaganski: второй и третий можно убить
<tagezi> ну не пол дня
<mikekaganski> попрошу
<tagezi> почти 100 строк в минус...
<tagezi> яже говорю, удаляю ЛО :)
<mikekaganski> и правильно, так его!
<tagezi> с этим файлом ещё работать и работать
<tagezi> там полно таких мест, которые на отдельные функции тянут
<mikekaganski> ну, ты и поиграйся с ним. Главное, чтобы каждая правка была законченной
<tagezi> и этот самый анализатор копипаста, кстати, их не зачек, я глазами нашёл
<tagezi> ну, я так и хочу.. просто если сразу всё сделать, я это могу и не закончить.. а так хоть часть успею сделать
<mikekaganski> просто когда ты вчера спросил, я не знал, что конкретно ты имел ввиду. Делать нужно именно так, по частям, чтобы если что, регрессию легко было найти
<mikekaganski> JohnDoe_71Rus: он выкладывает в геррит, и там я просматриваю
<tagezi> :)
<tagezi> kompi: зато он может это вписать в резюме
<tagezi> а это плюс, если он пойдет когданибудь дальше, и за это уже будут доплачивать
<tagezi> mikekaganski: вот смотри, у меня есть мастер и моя ветка
<mikekaganski> ага
<tagezi> если я хочу править сейчас файл дальше, но не хочу ждать пока его примут в мастер, то мне новую ветку откуда делать?
<mikekaganski> лучше начни с ветки
<mikekaganski> потом при пулле сделаешь ребейс первой ветки на мастер, а второй - на первую
<mikekaganski> так ты сам себе не будешь мешать
<mikekaganski> а когда первую запостят, ты вторую ребейснешь на мастера
<tagezi> ясно
<kompi> кручу верчу обмануть хочу
<tagezi> mikekaganski: :
<tagezi> хотя
<mikekaganski> ?
<tagezi> ну, кланг умер прям сразу
<mikekaganski> не умирал он
<mikekaganski> там стоит pending
<JohnDoe_71Rus> приблизительное время 41минута. можно выпить чаю
<tagezi> mikekaganski: тоесть он ещё может запуститься?
<mikekaganski> да, и обязательно этим займётся
<tagezi> JohnDoe_71Rus: часа полтора собирает, иногра 2,5
<kompi> tagezi: твой код выглядит более полезным, чем код Юсуфа
<kompi> но результат его кода виден невооруженным глазом, а твой нет...
<tagezi> это смотря как смотреть :)
<mikekaganski> :) хехе...
<JohnDoe_71Rus> сланг завелся
<tagezi> о, линух собрался уже
<tagezi> чото быстро как-то
<JohnDoe_71Rus> это ж линух
<mikekaganski> значит, синтаксис ок
<tagezi> эм.. синтаксис тут причем?
<JohnDoe_71Rus> не спотыкается )
<mikekaganski> мож я проглядел чаво :)
<tagezi> я вчера глянул с++17 и охренел, от того как можно значения возвращать при вызове функции
<mikekaganski> ты про && или про [a, b] ?
<mikekaganski> мы тут все возможности языка, поддерживаемые текущими компиляторами, юзаем
<mikekaganski> так что скоро и это появится
<tagezi> про [a, b]
<mikekaganski> да, это тоже оч приятно
<tagezi> я думаю если возвращать в уже определённую структуру, то и лишних манипуляций ненужно будет
<tagezi> думаю, TDF нужно разоряться на сервера дополнительные для сборки
<tagezi> хотя сегодня по свободнее... чего вчера такой ажиотаж был то?
<tagezi> mikekaganski: почему при переходе с ветки на ветку, он начинает полную пересборку?
<mikekaganski> потому что у тебя ветки с файлами разных версий
<JohnDoe_71Rus> сланг с дебугом уже дольше гцц собирает
<JohnDoe_71Rus> гцц минут за 8-9 собрал
<mikekaganski> он мало что собирает, он ещё и гоняет тесты дополнительные
<JohnDoe_71Rus> синтаксический анализ?
<mikekaganski> там loplugin'ов кучу написали
<tagezi> mikekaganski: слушай, а как правильно сделать, вот например, мне функция возвращает параметр, но он мне нафиг не сдался
<tagezi> и куда мне его девать?
<mikekaganski> ну и не присваивай её результат ничему
<tagezi> а память освободиться после выхода из функции?
<mikekaganski> а что она возвращает? не указатель, который потом надо освободить?
<tagezi> нет, объект
<mikekaganski> тогда всё норм
<tagezi> просто, вот по ссылкам выше, aLogicClip в двух случаях используется и дальше, а в двух нет
<tagezi> то есть, если функция возвращает, то ретёрн должен быть, но я не обязан принимать из него значение
<tagezi> так?
<mikekaganski> да
<tagezi> как-то странно... это...
<tagezi> ладно, тогда в этом куске всё довольно просто
<mikekaganski> странно было бы по-другому. Вот тебе как раз это понадобилось; и что: не нужна такая возможность?
<tagezi> ну, малоли.. я вот потихоньку джаву и питон учу, и там есть такиииие странные вещи
<tagezi> что просто диву даешься, кто вообще это мог придумать
<tagezi> кстати, на EDx есть курс т MIT по Jave, там на первом уроке сравнение идет не большое
<tagezi> mikekaganski: как назвать эту функцию? LogicalClipRegion понятно?
<mikekaganski> я ещё не смотрел
<mikekaganski> ты если имеешь заготовку, кинь в pastebin
<tagezi> mikekaganski: https://paste.ubuntu.com/26018800/
<tagezi> а этот готов :)
<tagezi> вот что мне не нравиться, он возвращает не инициализированную переменную
<tagezi> и название функции мне не нравиться :)
<tagezi> оно скорее AdjustClipRegion() или IntersectOrSetClipRegion()
<tagezi> а остальное я не вижу
<mikekaganski> Зачем там rParam? Оттуда нужен только булевый флаг - так и передавай его как bool bPixelToLogic
<mikekaganski> кстати, rParam должен был передаваться как константная ссылка
<mikekaganski> иначе предполагается, что ты объект меняешь в функции
<mikekaganski> То же самое по aAreaParam
<mikekaganski> и лучше передавать только её maClipRect
<tagezi> а почему тогда в предыдущем патче ты не сказал про aAreaParam?
<mikekaganski> потому что там не только прямоугольник был
<mikekaganski> там ещё были булевые значения емнип
<tagezi> а тут я его не меняю, и поэтому нужно сделать константу?
<mikekaganski> да
<mikekaganski> но лучше даже не его, а только rect
<tagezi> а рект какой класс использует?
<mikekaganski> tagezi: поищи :)
<mikekaganski> Насчёт неинициализированного возврата: наверняка у tools::Rectangle есть конструктор - он отрабатывает в первой строке, так что это не неинициализированный объект
<tagezi> tools::Rectangle
<mikekaganski> ну вот, напрашивается tools::Rectangle LogicClipRegion(const tools::Rectangle& rParam, bool bPixelToLogic, bool bClip, bool bSimClip)
<tagezi> да
<mikekaganski> bMetaFile - это что?
<tagezi> член
<mikekaganski> ок
<tagezi> mpDev и mpRefDevice тоже
<mikekaganski> там-то понятно, они с m начинаются
<mikekaganski> только я назвал его rParam опять - это просто копипаста, сделай что-то поумнее
<tagezi> а название функции?
<mikekaganski> я ещё читаю,
<mikekaganski> // Clip marks are already handled in GetOutputArea
<mikekaganski> вот это нужно убрать из функции, и добавить перед её вызовом в местах использования
<mikekaganski> а перед самой функцией написать // Doesn't handle clip marks - should be handled in advance using GetOutputArea
<mikekaganski> строка 106 твоего патча - а там точно не нужно присваивать результат??
<mikekaganski> хотя да
<mikekaganski> IntersectOrSetClipRegion
<tagezi> не, там точно не нужно, там она больше не используется
<mikekaganski> bClip -> bApplyClip
<mikekaganski> имя не то
<mikekaganski> ClipRegion - вот это лучше
<tagezi> для переменной?
<mikekaganski> для функции
<mikekaganski> Intersect или Set - это уже детали реализации
<tagezi> там не совсем так.. там в другом месте тоже делается это
<mikekaganski> там, кроме всего, вообще может не применяться этот регион, только считаться
<mikekaganski> и что?
<mikekaganski> и?
<tagezi> вот, если bClip проваливается, то идёт сюда, и тут рисует регион
<tagezi> это тоже нужно будет выносить, помоему, этот кусок тоже копипаст
<mikekaganski> ага, это ближе к raii
<tagezi> он только в двух местах, но есть, и по уму бы его тоже вынести
<tagezi> что такое raii?
<tagezi> а ты уверен что у нас в конструкторе это реализовано? :)
<tagezi> этоже только концепуция :)
<mikekaganski> это нормально используемый механизм
<mikekaganski> но только нужно понять, применим ли он здесь
<tagezi> концептуально, я суперпупер кутой программист, а по факту, ты меня уже второй день носом в какашки тыкаешь :)
<tagezi> так, нужно найти конструктор Rectangle в пространстве имен tools. Так?
<mikekaganski> погодь
<tagezi> и посмотреть есть ли унего деструктор
<tagezi> годю :)
<mikekaganski> нет, если нам это делать, то нужно вместо функции сделать новый класс с конструктором и деструктором, и на местах создавать его экземпляры
<mikekaganski> но вот меня напрягает ScOutputData::Clip - она не очищает образку
* tagezi стол kompi, ничего не понял, кроме минуса :)
<tagezi> чем он тебя напрягает?
<tagezi> функция член класса, все созданые объекты будут уничтожены в деструкторе.
<mikekaganski> :) смотри: у нас везде создаётся и применяется обрезающий прямоугольник, а потом он очищается (mpDev->Pop() либо mpDev->SetClipRegion())
<tagezi> а
<mikekaganski> Это происходит двумя способами: 1. Тот, который ты, собственно, обработал в патче: сначала все эти танцы, затем что-то они там делают, потом в конце функции очистка
<mikekaganski> 2. Сначала вызывается ScOutputData::Clip (а внутри него, в т.ч., делается обрезка), а потом в конце очистка
<mikekaganski> Фактически мы можем возвращать из твоей функции объект, уничтожение которого будет очищать обрезку
<mikekaganski> наверное, это самый правильный способ
<tagezi> хорошо, но какой объект?
<tagezi> mpDev - это член класса, он будет разрушен только при срабатывании деструктора класса
<mikekaganski> скайп/хангаутс?
<tagezi> остальные объекты не нужны в родительской функции
<tagezi> хангфнтс, скайп долго ставить
<mikekaganski> tagezi: ок, звони
<mikekaganski> ты ж мой gmail знаешь
<tagezi> нет, не нахожу
<mikekaganski> mikekaganski@gmail.com
<JohnDoe_71Rus> скайп умирает. wire
<tagezi> mikekaganski: а вотсап у тебя есть?
<mikekaganski> есть
<tagezi> давай по нему, что-то у меня нифига не стоит на компе
<mikekaganski> tagezi: из браузера ж можно вроде в хангаутс... ладно, как там по ватсапу?
<tagezi> телефон нужен
<tagezi> я тебе свой скинул, ты что не пользуешься?
<JohnDoe_71Rus> онлайн курсы "программирование ЛО" в скайпе :)
kompi has quit [Quit: Page closed]
JohnDoe_71Rus has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org]
<tagezi> в вотсапе :)
<tagezi> да, примерно так и есть...
<tagezi> оказывается я программировать вобще не умею :)
JohnDoe_71Rus has joined #libreoffice-ru
kompi has joined #libreoffice-ru
UNIm95 has quit [Ping timeout: 250 seconds]
UNIm95 has joined #libreoffice-ru
UNIm95 has quit [Ping timeout: 240 seconds]
kompi has quit [Quit: Page closed]
<tagezi> mikekaganski: https://paste.ubuntu.com/26021036/
<tagezi> ой, забыл про коменты
<mikekaganski> : mpDev(nullptr), mbMetaFile(bMetaFile) - второй и последующий инициализаторы через зпт
<mikekaganski> у тебя ещё не собралось?
<tagezi> ещё нет
<tagezi> но вроде заканчивает
<tagezi> ох, сколько ошибок :)
<tagezi> самое страшное это опечатки :)
kompi has joined #libreoffice-ru
<tagezi> mikekaganski: https://paste.ubuntu.com/26021475/
<kompi> mikekaganski: надо придумать специальный статус для багов "Fixed own bug"
<tagezi> не прокатывает оно
<tagezi> проблема в видимости переменной
<tagezi> лог
<tagezi> проблема с том что Point aURLStart = aLogicStart; стоит внутри {}
<tagezi> ааа.. блин, чо я туплю
<tagezi> ща поправлю :)
<mikekaganski> У меня просьба - выкладывай на геррит, только для ревью - https://wiki.documentfoundation.org/Development/gerrit#Submitting_patches_for_review
<mikekaganski> и меня туда добавляй ревьюером
<mikekaganski> тогда никто не будет это видеть, в т.ч. дженкинс
<mikekaganski> ой, сорри - не для ревью
<mikekaganski> ./logerrit submit-draft master
<mikekaganski> как драфт
<tagezi> так, сделал.. вынес их за скобки
<mikekaganski> Ты про fixed own bug не переживай. Вон Тор пофиксил недавно свой баг 2014 года, который всем маководам из США печатать не давал три года :))
<mikekaganski> копипаст-error
<kompi> 'nj z gjvy.
<kompi> это я помню
<kompi> mikekaganski: однако раз уж какой-то скрипт там вас считает, то несправедливо, что ты правишь свой баг, а тебе ставят плюс 1
<mikekaganski> плюс 1 чего?
<tagezi> git push origin sc_2:refs/drafts/branch
<tagezi> так получается?
<kompi> mikekaganski: +1 в карму наверное
<kompi> mikekaganski: Arkadiy Illarionov - это кто такой? CiB?
<tagezi> здесь карму считают? :)
<kompi> tagezi: в багзилле
<mikekaganski> tagezi: наверное так, я давно ползуюсь logerrit, забыл уже
<mikekaganski> kompi: первый раз слышу
<mikekaganski> refs/drafts/master
<kompi> Allow assigning styles to ui elements - что он сделал? До меня не очень доходит
<mikekaganski> kompi: ссылку
<tagezi> а логерит как получается?
<tagezi> прямо так? ./logerrit submit-draft master
<mikekaganski> tagezi: да
<JohnDoe_71Rus> будем массово генерить баги, а потом героически их преодолевать
<mikekaganski> Привязка стилей к кнопкам? не пойму
<kompi> mikekaganski: вот!
<kompi> описание огонь
<kompi> mikekaganski: может назначение шоткатов на стили?
<kompi> там была какая-то возня, что Кара часть функционала снес при реализации "новшеств" в диалоге Настройка
<kompi> да вроде это есть
<kompi> tagezi: https://i.imgur.com/ny4oGKT.png я горжусь тобой
<tagezi> kompi: я не понимаю
<tagezi> mikekaganski: сделал
<mikekaganski> const tools::Rectangle& aRect -> const tools::Rectangle& rRect (да, я помню, aRect - моё название, каюсь)
<tagezi> префиксы а и r что значат?
<mikekaganski> a - это вроде "просто объект" - как "a man"
<mikekaganski> а r - это ссылка (reference)
<tagezi> ясно
<mikekaganski> Перед mpDev = pDev; добавь пустую строку - чтобы было визуально видно, что оно не относится к предыдущей строке (иначе кто-то может подумать, что оно должно быть в else)
<mikekaganski> Я придираюсь, но такова моя сучность :)
<mikekaganski> Вот, теперь давай посмотрим, что не так в ScOutputData::Clip
<mikekaganski> Здесь раньше происходило что: просто применялась обрезающая маска, и всё. Очистка маски происходила в вызывающих функциях.
<tagezi> да
<mikekaganski> А теперь маска применяется, и тут же очищается. А потом ещё раз очищается в вызывающем процессе
<kompi> tagezi: какой ты непонятливый =)
<mikekaganski> Здесь у нас новая задача: создать объект, но не удалять его сразу.
<mikekaganski> Стоит воспользоваться std::unique_ptr<ClearableClipRegion>
<mikekaganski> и возвращать его из ScOutputData::Clip вместо bool
<mikekaganski> То есть в ScOutputData::Clip последнzz строкf будtт типа return std::unique_ptr<ClearableClipRegion>(new ClearableClipRegion(...))
<mikekaganski> не смотрю на результат :) надеюсь, моя мешанина всё же понятна
<mikekaganski> ух ьты
<mikekaganski> а в вызывающих функциях можно написать auto ClipRegion = Clip(...);
<mikekaganski> и тогда оттуда убрать очистку маски\
<tagezi> mikekaganski: этого я не понимаю std::unique_ptr<ClearableClipRegion>(new ClearableClipRegion(...))
<tagezi> контейнер с новым объектом?
<mikekaganski> да :)
<mikekaganski> этот контейнер позволит тебе передать объект из функции без разрушения объекта, а потом в функции уничтожение контейнера уничтожит объект
<mikekaganski> и вот здесь тебе придётся менять объявление ScOutputData::Clip (её возвращаемого значения) на std::unique_ptr<ClearableClipRegion>, и поэтому имя ClearableClipRegion прозвучит в заголовке
<tagezi> так, но мне нужна булева функция же
<mikekaganski> зачем?
<tagezi> так, признавайся, ты решил моими руками переписать весь ЛО? :)
<mikekaganski> :)
<tagezi> потому что там она участвует дальше в расчетах
<tagezi> всмысле переменная
<mikekaganski> А точнее?
<mikekaganski> Ещё одно имя, которое я плохо придумал: ClearableClipRegion
<mikekaganski> Хотя нет
<mikekaganski> пусть будет
<tagezi> так , вроде я понял твою идею
<tagezi> слип возращает объейт, который в конце функции разрушается
<mikekaganski> точно
<tagezi> это вообще потом кто-нибудь прочтет?
<mikekaganski> А комментарии на что?
<kompi> mikekaganski: сказал Хейко про проблему копирования в таблицах со стилями
<tagezi> auto ClipRegion =
<tagezi> почему ауто?
<kompi> mikekaganski: он мне сказал "Конечно! Это то, что ты ожидаешь!"
<kompi> mikekaganski: и привел в пример "Ты же пишешь большими красными буквами заголовок таблиц? Как ты хочешь чтобы он выглядел в новой таблице, если ты его копируешь?"
<kompi> то есть он априори считает, что их стили говно и я форматирование загловка буду правит руками
<tagezi> mikekaganski: так, и клас нужно переносить в hxx
<kompi> mikekaganski: а был же вроде экпсорт в FB2 из Либры? А где он?
<tagezi> в расширении
<kompi> это разве не встроенная функция?
<tagezi> нет
<tagezi> это же бублегум (с)
<kompi> хм
<kompi> в сборке от могги нету расширений что ли?
<tagezi> его не включали в сборку, вроде
kompi has quit [Ping timeout: 260 seconds]
<mikekaganski> tagezi: не надо класс переносить в заголовок. Там его нужно только упомянуть, вот так: class ClearableClipRegion;
<mikekaganski> и всё. Этого достаточно
<tagezi> спасибо
<mikekaganski> а насчёт auto - это просто чтобы не писать std::unique_ptr<ClearableClipRegion> ClipRegion = ...
<tagezi> mikekaganski: а куда его поставить?
<mikekaganski> перед классом ScOutputData
<tagezi> mikekaganski: что дальше переписываем? :))
JohnDoe_71Rus has quit [Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
<mikekaganski> Ну вот, ещё -50
<tagezi> что всё?
<tagezi> ты уверен?
<mikekaganski> давай, публикуй, посмотрим, будет ли ругаться
<tagezi> кто?
<tagezi> :)
<mikekaganski> мне кажется, дженкинс
<tagezi> я вот думаю, бедный тот кто будет править регрессии :)
<mikekaganski> насчёт каких-нибудь стилей форматирования. На днях Миклош внедрил там систему проверки стиля... мне не нравится, но ...
<tagezi> 600+ строк измены
<mikekaganski> ничего подобного
<mikekaganski> ты очень аккуратный патч сделал
<mikekaganski> там если отключить показ разницы в пустых строках, должно быть очень компактно
<tagezi> mikekaganski: эм.. а как это теперь отправить в мастер?
<mikekaganski> там у тебя должна быть кнопка publish наверху
<mikekaganski> над ревьюерами
<tagezi> ага, понял, спасибо
<tagezi> mikekaganski: Эрик проснулся :)
<tagezi> mikekaganski: чеготы пне раньше не сказал про префиксы? :)
<tagezi> и почему так важно знать что это ссылка?
jrj__ has joined #libreoffice-ru
jrj has quit [Ping timeout: 248 seconds]