<tagezi_>
то есть, есть метод, который проверяет был ли изменение и вызывает StateChanged (установка изменений
<mikekaganski>
Если уж заменять слова в моей цитате, то только так: "чтобы либра продолжала работать как сейчас, на его исходники нельзя даже дышать"
<tagezi_>
mikekaganski: а диструктор наследуется?
<tagezi_>
о_О
<mikekaganski>
виртуальный - да
<tagezi_>
конструктор точно нет, насколько я помню
<mikekaganski>
на то он и виртуальный деструктор
<tagezi_>
LibBoxControlне имеет диструктора
<mikekaganski>
если класс не имеет явного деструктора, компилятор создаёт для него деструктор. При этом компилятор, конечно, может сгенерировать корректный код только для простых случаев
<mikekaganski>
если у предка класса деструктор виртуальный, то и у этого класса деструктор будет виртуальным
<tagezi_>
почти как в кути :)
<tagezi_>
ясно
<tagezi_>
@Kompilainenn, по поводу твой хрени. Попробуй разделить все свои изменения на маленькие контролируемые куски. Чтобы изменений было по минимум
<tagezi_>
будет проще смотреть где накосячил
<tagezi_>
если изменение удасное, добавляй его в коммит... следующее удасное,добавляй его в этот же коммит..
<tagezi_>
так ты по тихоньку собирешь свой коммит
<tagezi_>
когда пол файла переписано, очень сложно найти косяк... майк может выдовать ошибки не там где они на самом деле, просто ему кажеться, что это самое явное
<tagezi_>
mikekaganski: глупый вопрос, а приватные переменные могут быть изменены классом родителем?
<mikekaganski>
напрямую нет, только вызовом виртуальной функции, переопределённой у дочернего класса, который имеет к ним доступ
<tagezi_>
ага
<tagezi_>
понятно.. примерно как я и представлял :)
<tagezi_>
и все равно не понятно, зачем разделять создание элемента и сам элемент
<tagezi_>
mikekaganski: спасибо
tagezi_ is now known as tagezi
<libreofficeru-tg>
<Kompilainenn> Нууу
<libreofficeru-tg>
<Kompilainenn> Армин про твою мудрость не знает
<libreofficeru-tg>
<Kompilainenn> И потому не просто дышит на код, а вообще магию творит
<tagezi>
что значит магию творит?
<libreofficeru-tg>
<Kompilainenn> Ну посмотри на его недавний мегапатч
<libreofficeru-tg>
<Kompilainenn> И у меня не хрень, у меня патч, ровно такой же, какой легко пишешь ты или майк или кто угодно
<libreofficeru-tg>
<Kompilainenn> То, что диалог так сильно меняется, не я виноват
<libreofficeru-tg>
<Kompilainenn> А мержить отдельные патчина каждое перемещение отдельного контрола - просто ересь
<mikekaganski>
@Kompilainenn: речь не о том, чтобы твой патч разбить на кучу патчей, а чтобы разбить его на кучу частей
<mikekaganski>
взять маленькое изменение (заменить контейнер) и проверить, что всё продолжает работать
<mikekaganski>
теперь поменять его положение и проверить, что всё работает
<tagezi>
git commit --amend
<mikekaganski>
потом добавить панель и посмотреть, что всё работает ...
<mikekaganski>
а уже тогда получится скомбинированный патч
<tagezi>
просто меняя потихоньку ты видишь что меняешь, и заодно учишься...
<tagezi>
я делаю точно также, если я не уверен, я думаю правильно про код, я делаю патч того в чем уверен, потом делаю другие изменения, и если всё хорошо, то добавляю их в свой патч
<tagezi>
а потом делаю уже конечную шлифорку (стараюсь по крайне мере :)) и тоже добавляю её в патч
<tagezi>
таким образом, мне не нужно переделывать всё с нуля, я могу очень просто откатиться обратно
<tagezi>
там же приходит значение из перечисления, а не всё еречисление
<tagezi>
какой смысл указывать что это значение из перечисления?
<mikekaganski>
это не комплексный объект (чтобы использовать префикс a) и не число (с которым можно делать вычисления) для префикса n
<tagezi>
логично
<tagezi>
буду знать
<tagezi>
mikekaganski: вот, мнение твоё, если я заменю LibBox на LibComboBox и LibBoxControl на LibComboBoxControl нормально будет?
<tagezi>
чтобы было понятно, что это выпадающие списки, а не просто области
<mikekaganski>
не вижу смысла на самом деле... ведь там есть тип, и в любом случае, человек, работающий с этим кодом, обязан хотя бы взглянуть на диалог вживую
<mikekaganski>
на мой взгляд, нет. Во-первых, родительский конструктор вызывается *всегда*, даже если не указан явно (вопрос только какой конструктор из перегруженных)
<mikekaganski>
иерархия там есть
<tagezi>
понятно
<tagezi>
тоесть мне имеет смысл указать только параметры
<mikekaganski>
да
<tagezi>
хорошо...
<tagezi>
а можешь мне объяснить, как быстро понять что это за параметры?
<mikekaganski>
я могу тебе небыстро попытаться объяснить, что это за параметры, но вот объяснить, как быстро понять - это увольте ;-)
<mikekaganski>
дело в том, что я и сам не вполне понимаю
<mikekaganski>
слот - это сущность (номер) внутренней операции ЛО
<mikekaganski>
Ид - уникальный номер этого элемента в диалоге
<mikekaganski>
что такое тулбокс - без понятия
<mikekaganski>
может быть, объект, который им владеет?
<mikekaganski>
тулбокс и его тулбокс контролы
<tagezi>
панель инструментов
<mikekaganski>
ну вот, а на ней - либбоксконтрол
<tagezi>
скажем так, я понял слова
<tagezi>
:)
<tagezi>
откуда берутся эти слоты и ид?
<mikekaganski>
а, насчёт слота. Например, через слоты становится понятно, какие элементы надо заблокировать, если, скажем, мы не в таблице, или там зашли в облясть ReadOnly
<mikekaganski>
Ид - просто номер по порядку (я думаю, оно его генерит автоматом)
<tagezi>
ну, а если я знаю лучше всех, то там точно нифига никто не понимает :))
<tagezi>
я так понимаю, все эти параметры передаются макросом в конструктор
<mikekaganski>
насчёт слотов надо поискать в вики опенофиса
<libreofficeru-tg>
<Kompilainenn> Мало того, что каждые пять лет начинают в багзилле дублировать древние баги, так и с кодом то же самое? Каждые пять лет кто то заново пытается понять магию внутренностей либры
<mikekaganski>
ничего подобного
<mikekaganski>
то есть ничего общего с правдой
<tagezi>
никто даже не пытается :)
<mikekaganski>
какие пять??? каждый месяц-другой!!!
<tagezi>
ЛО работает так, у колана есть магический шар и армия гномиков-рабов. Гномики бегают и крутят шестерёнки ЛО, а колон сидит и смотрит в шар
<tagezi>
а все остальные пишут буковки и молятся, чтобы колоновские гномики не заблудились :)
* mikekaganski
смотрит на говорящую очепятку "колоновские" и вспоминает анатомию
<tagezi>
Колон – арендатор чужой земли, юридически независимый от арендодателя, которому он платил деньгами или частью урожая.
<mikekaganski>
эти два макроса просто упрощают написание постоянно повторяющихся и однообразных функций. Они не регистрируют и не создают, они только объявляют и определяют функции
<tagezi>
так не понял
<mikekaganski>
первый макрос появляется в теле описания класса
<tagezi>
угу
<mikekaganski>
он там просто создаёт две строчки: "static SfxToolBoxControl* CreateImpl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox &rTbx );" и "static void RegisterControl(sal_uInt16 nSlotId = 0, SfxModule *pMod=nullptr)"
<mikekaganski>
то есть он там объявил две функции класса
<mikekaganski>
второй макрос - в cxx файле - просто создаёт стандартные тела этим функциям
<tagezi>
а зачем так?
<tagezi>
почему не сделать обычные функции?
<mikekaganski>
чтобы не писать каждый раз заново, а заодно облегчить внесение изменений
<mikekaganski>
если потом внести изменение в макрос - везде, где он используется, будут изменения
<tagezi>
то есть, это просто вынесенный кусок кода получается
<mikekaganski>
Это первый параметр? н здесь вообще игнорируется
<tagezi>
блин, нет...
<tagezi>
не навижу авторов ЛО :)
<tagezi>
это тотже nSlotId
<tagezi>
почему нельзя соблюдать один способ наименования хотябы в приделах одного класса? :)
<mikekaganski>
эмм... ну, так веселее?
<tagezi>
и он не используется
<libreofficeru-tg>
<Kompilainenn> веселее лол
<libreofficeru-tg>
<Kompilainenn> давайте напишем ржачный код офиса
<mikekaganski>
о, видишь, тебе уже весело :-)
<libreofficeru-tg>
<Kompilainenn> Миша, у меня дома ТИШИНА
<libreofficeru-tg>
<Kompilainenn> дети СПЯТ
<libreofficeru-tg>
<Kompilainenn> это такое БЛАЖЕНСТВО
<mikekaganski>
это замесательное время :-)
<mikekaganski>
хм
<libreofficeru-tg>
<Kompilainenn> заесим
<libreofficeru-tg>
<Kompilainenn> :D
<mikekaganski>
:-)
<libreofficeru-tg>
<Kompilainenn> время опечаток
<mikekaganski>
устали все (наконец-то можно мои кривые руки списать на усталость!)
<libreofficeru-tg>
<Kompilainenn> tagezi: ты не в курсе, UNO команда работает только для панелей инструментов? На простую обычную кнопку можно UNO назначить?
<tagezi>
да
<tagezi>
уно команде всёравно
<libreofficeru-tg>
<Kompilainenn> чо ж мне бубли голову клепала
<libreofficeru-tg>
<Kompilainenn> и я вымахивался с тулбаром посреди диалога
<tagezi>
уно - это метод, ему все равно как ты его вызываешь, лишь бы он имел возможноть быть вызваным
<libreofficeru-tg>
<Kompilainenn> а вот это правильный вопрос
<tagezi>
ну, uno:Save ты назначаешь на горячие клавишь, кнопки на тулбаре, в пункте меню
<tagezi>
но тебе нужно создать слот для него
<tagezi>
ты создаешь слот не для уно, а для элемента который делаешь
<libreofficeru-tg>
<Kompilainenn> ты не углубляйся в терминологию, что такое слот у тебя?
<libreofficeru-tg>
<Kompilainenn> бубли сказала, что мне проще всего будет запилить панель инструментов с кнопками и к кнопкам привязать существующие UNO
<tagezi>
ну, наверное. я не знаю что ты делаешь
<libreofficeru-tg>
<Kompilainenn> просто, ну я видел пример на NB (риббоне) юзаются UNO для форматирования текста
<libreofficeru-tg>
<Kompilainenn> ты наешь, потому что ты это ругал уже
<libreofficeru-tg>
<Kompilainenn> вчера по-моему
<libreofficeru-tg>
<Kompilainenn> эм
<libreofficeru-tg>
<Kompilainenn> так вот
<tagezi>
ну, так ты там перестраиваешь же, а не добавляешь
<libreofficeru-tg>
<Kompilainenn> в NB юзаются UNO. И есть уно для выбора шрифта. По внешнему виду - это выпадающий список, однако UNO назначено на КНОПКУ, а выглядит в итоге, как выпадающий список
<libreofficeru-tg>
<Kompilainenn> вот это мне вообще непонятно
<libreofficeru-tg>
<Kompilainenn> что, UNO не важно, на какой контрол оно повешено, оно все равно будет так выглядеть, как прописано в UNO?