<mikekaganski>
Ну, смотри: там, где он появляется, не сразу начинается метод, который ты пишешь ниже, а сначала вставляется скрытый метод. Например, если написано IMPL_LINK( ScCondFormatDlg, RangeGetFocusHdl, Control&, rControl, void ) {
<mikekaganski>
в этом месте сначала вставится void ScCondFormatDlg::LinkStubEdRangeModifyHdl(void * instance, ArgType data) { return static_cast<ScCondFormatDlg *>(instance)->EdRangeModifyHdl(data); }
<mikekaganski>
а потом void ScCondFormatDlg::EdRangeModifyHdl(Edit& rEdit) {
<mikekaganski>
после чего начнётся твой код
<tagezi>
а где он определён?
<mikekaganski>
Таким образом, сначала определяется статический метод LinkStubEdRangeModifyHdl, который принимает указатель на непонятно что (void*), и приводит его к твоему классу, чтобы вызвать его метод.
<mikekaganski>
Определён он как раз здесь. Вопрос - где объявлен
<tagezi>
да, объявлен
<tagezi>
опять не могу найти :)
<mikekaganski>
Для этого в объявлении класса используется парный макрос DECL_LINK
<mikekaganski>
просто вызывающий код (на уровне обработки событий) работает только с нетипизированными указателями
* tagezi
только начинает думать, что он хоть что-то понимает, и тут ему нааааа... по шарам
<mikekaganski>
ну всё же правильно
<tagezi>
то что я правлю баги (умею использовать метод копипаста и тыка) не значит что я понимаю :)
<tagezi>
Оливье что-то там химичит
kompi has joined #libreoffice-ru
<kompi>
tagezi: ты расстраиваешь Майка
<tagezi>
эм
<tagezi>
mikekaganski: где у тебя болтик настройки? :)
<kompi>
tagezi: он его положил
<mikekaganski>
? сорри, я что-то пропустил? где мне нужно расстроиться?
<kompi>
ты в последнее время много пропускаешь
<mikekaganski>
ну, ...
<tagezi>
он работает, правит код
<kompi>
пишет код
<mikekaganski>
интересно наблюдать в убунте за подсветкой ошибки... как будто подсветка всё-таки под всем полем ввода, но немного смещена книзу, и "просвечивает" только через область с введённым текстом (как если у текста прозрачный вон, а у остальног
<kompi>
поиск по нику дает забавные результаты на первой странице
<kompi>
хм
<kompi>
mikekaganski: а где вообще винда этим управляет?
<mikekaganski>
открой пуск и напиши "шрифт"
<mikekaganski>
когда откроешь панель управления со шрифтами, пкм по шрифту - скрыть/показать (почему-то не для всех шрифтов есть)
<mikekaganski>
нет, для всех вроде, только у некоторых почему-то вверху, а у других внизу
<kompi>
что вверху или внизу?
<kompi>
mikekaganski: ворд 2010 тоже плюет на эту настройку
<kompi>
с чего ты взял, что это скрывает шрифты от софта?
<mikekaganski>
хм... а зачем тогда она...
<kompi>
откуда я знаю
<kompi>
либра САМА должна скрывать шрифты внутри себя
<kompi>
по отдельной настройке
<mikekaganski>
я ненавижу отдельные настройки, которые дублируют то, что есть в системе. Поэтому *если* настройка видимости шрифтов есть в системе - ЛО *обязана* ей подчиняться, но при это нафиг свои настройки. Похоже, эта настройка - не то
<kompi>
слушай, я могу хотеть в либре одни шрифты видеть, а в пенсиле другие, а в гимпе третьи, а в инкскейпе четвертые
<kompi>
тут я с тобой не соглашусь
<mikekaganski>
Ну, *видимо*, МС с тобой согласны, и поэтому "эта настройка - не то"
<mikekaganski>
раз ты говоришь, что все на неё плюют, видимо, её задача другая, а не для программ
<tagezi>
МС с ним не согласны, просто они забили :)
<kompi>
mikekaganski: тем более в Линукс скорее всего система никакие шрифты не скрывает
<mikekaganski>
kompi: я поэтому и выясняю
<kompi>
mikekaganski: хочешь реализовать эту фичу? Или сказать tagezi что это изихак и он сможет?
<mikekaganski>
ну, он сможет, кстати
<kompi>
:DDDDD
<mikekaganski>
я не думал насчёт её реализации, я просто случайно обнаружил скрытые шрифты на одной из систем, и вспомнил про что-то из этой оперы
<kompi>
chfpe pfly.. dhe,bk
<tagezi>
я всё могу, даже ядро переписать
<kompi>
блин
<tagezi>
главное, чтобы было откуда копипастить :)
<kompi>
tagezi: ты пили красный цвет и отключение редактирование в таблице
<tagezi>
красный на проверке...
<tagezi>
kompi: там фон будет, а дальше к дизайнерам, чтобы они это сделали в одном виде, а то в одних окнах одни цвета, в других другие
<tagezi>
kompi: кстати, напиши багу им, в начале поставь UI:
<kompi>
вот не надо дизайнеров пускать в огород
<kompi>
о чем?!
<tagezi>
о том что цвета, которые показывают неправильно введёный диапазон в разных местах разные
<tagezi>
например, в диалоге условного ыорматирования и создания диаграммы
<kompi>
я бы предпочел ворнинг, а не просто цвет
<kompi>
причем ворнинг в виде тултипа
<tagezi>
какого типа? о_О
<tagezi>
да, нужно как МС сделала, чтобы при ошибки каждый раз появлялось окно в пол экрана с большими жирными буквами "Мы дебилы, и не понимаем, что ты ещё не дописал то что хотел, так что жми ок"
<kompi>
tooltip
<tagezi>
а ворнинг что такое?
<kompi>
warning
<tagezi>
как ты себе это представляешь?
<tagezi>
не, я понимаю, текстовое поле "Внимание! Диапазон введён не правильно! Окно будет уничтожено через 10 секунд!"
<tagezi>
там происходит валидация, и если она сделана по уму, то она тупо проверяет присутсивие недопустимых символов, а не занимается синтаксическим разбором введеного
<mikekaganski>
и когда tagezi говорит о чём-то, что можно починить сегодня, и в ответ получает pushback в виде "да ну, лучше не так"... - это не очень бодрит
<kompi>
пусть оно хоть вот так, но будет
<kompi>
mikekaganski: это к чему?
<tagezi>
kompi: не, нужно окно
<kompi>
tagezi: где ты увидел окно?
<tagezi>
прикинь, человек видит в строке красный, вдруг видит, кнопка не нажимается.. и он думает, что это программа глючит, он не станет наводить мышку на поле
<mikekaganski>
это к тому, что tagezi тебе предложил сделать баг на конкретную тему : унификацию цветовой индикации ошибки, которую он мог бы сделать потом; ты ответил - "я бы предпочел ворнинг, а не просто цвет"
<kompi>
mikekaganski: и?
<mikekaganski>
ну и где баг?
<mikekaganski>
вместо этого рассуждения на тему тултипа
<tagezi>
kompi: так сделано в МСО, когда скрипты пишешь, просто жесть
<mikekaganski>
Вообще это называется "интрузивный интерфейс", и он реально бесит... пока тебя не заточат под него
<tagezi>
не знаю как это называется.. но я ядом плювался месяц, пока писал расширение
<mikekaganski>
интерфейс, который лезет тебе под ногти
<tagezi>
а тултипы, люди которые не видят что цвет поменялся, и не могут подумать с какого фига, никогда не помсотрят
<mikekaganski>
tagezi: при том, что мне так же не нравится такая фича, это было бы ОК, при условии отключабельности
<tagezi>
нужно делать поле под полем, и выводить туда конкретную ошибку: "лишний пробел", "не верный символ"б не правильно указаный диапазон" и тд
<mikekaganski>
tagezi: ну, это ты можешь
<tagezi>
это нужно парсить эту байду
<tagezi>
и я уже говорил, я всё могу :)
<tagezi>
даже ядро переписать :)
<tagezi>
а для того чтобы это распарсить, нужно продумать все возможные правильные варианты использования
<tagezi>
например, можно ли использовать относительные ссылки? можно ссылаться на листы? или диапазоны листов? если можно, то может быть любой символ юникода, и тогда нужно смотреть порядок
<mikekaganski>
не надо там ничего парсить. Сделай кравное поле со статическим текстом "синтаксическая ошибка в поле диапазона", и показывай/скрывай.
<tagezi>
и зачем это?
<mikekaganski>
чтоб було :)))
<tagezi>
смысл, если человек не знает синтаксиса, как это говорит kompi, то ему эта полсказка ниочем
<tagezi>
угу, и окно с одной кнопкой, после нажатия которой ЛО закрывается без сахронения :)
<mikekaganski>
там ещё нужно учесть, что в зависимости от локали, может использоваться или запятая, или точка с запятой... так что гемор ещё тот
<tagezi>
так я про то и говору, там реально гемор, но в простом виде, оно нафиг не сдалось
<tagezi>
оно только интерфейс будет перегружать
<tagezi>
кстати, в диаграммах валидация сделана через Ж
<mikekaganski>
мб
<tagezi>
она кучу ошибок не показывает
<tagezi>
mikekaganski: ну вот ты просто подумай: вдруг кнопка становиться не доступна, поле стало красным
<mikekaganski>
tagezi: ты меня уговариваешь??? Ж))))
<tagezi>
просто надпись не поможет
<mikekaganski>
kompi прав в том, что как бы ты ни старался сделать понятно, всё равно найдётся умник, который не поймёт
<tagezi>
так оно и так уже сделано понятно
<mikekaganski>
tagezi: насчёт парсинга - ну, на самом деле всё подъёмно
<mikekaganski>
там же парсинг идёт, просто его результат спрятан за единственной булевой величиной
<mikekaganski>
можно было бы сохранять ошибку, и по желанию выдавать более подробную инфу
<mikekaganski>
всё зависит от твоего желания
<tagezi>
ты уверен что там идёт парсинг?
<mikekaganski>
однозначно
<tagezi>
может они просто проверяют строку на недопустимые символы
<mikekaganski>
не верю! (с)
<tagezi>
ну, проще проверить на присутствие пробела и других символов, чем разбирать строку
<tagezi>
я пытался, когда расширение писал для калька.. это велело
<mikekaganski>
просто когда у тебя уже есть парсер, а он есть, проще заюзатть его
<tagezi>
и ты в это веришь? :)
<tagezi>
в 100500 способов сделать одно и тоже реализовано :)
<mikekaganski>
да брось ты.Я в этом полностью уверен; и смысл рассуждать, когда можно посмотреть код
<mikekaganski>
как же лостал этот тормозной билд на макоси! ещё и дропнуться может по таймауту...
<kompi>
mikekaganski: я не вижу вообще где в диаграммах это поле с красным светом
<kompi>
ткни
<mikekaganski>
kompi: создай имя любому диапазону (например, стоя на A1, введи в поле диапазона "пппп")
<kompi>
погоди
<kompi>
это какой диалог
<mikekaganski>
теперь создавай диаграмму, и в ней в поле исходных данных, введи эту пппп
<kompi>
создания диаграмм?
<mikekaganski>
первое - не диалог
<kompi>
стой
<mikekaganski>
главное окно
<kompi>
давай по шагам
<mikekaganski>
кальк
<kompi>
угу
<mikekaganski>
A1
<kompi>
угу
<mikekaganski>
верхний левый угол слева от поля формулы
<mikekaganski>
там сейчас A1
<kompi>
да
<mikekaganski>
курсор туда, йцукен, ввод
<kompi>
есть
<kompi>
все понял
<mikekaganski>
как забавно смотреть на интерфейс, когда язык англ, а локаль арабская
<mikekaganski>
да, и когда ты добавляешь н в конце, должно краснеть
<tagezi>
kompi: есть такая штука как имена диапазонов
<tagezi>
mikekaganski: не уверен что его можно использовать для этой цели
<tagezi>
а можно как-нибудь пнуть того негра, который крутит педали макоси?
<tagezi>
4 часа сборки.. они что на телефоне 95 года его собирают?
<tagezi>
всё, спасибо
<tagezi>
:)
<mikekaganski>
:))
<kompi>
а почему только когда полностью имя?
<kompi>
сразу что непонятно, что это неправильный ввод?
<kompi>
а если я ввожу йцукепоар то не краснеет
<kompi>
какой-то бред имхо
<mikekaganski>
ну, так там сделано :) в данном конкретном случае tagezi говорил не о правильности индикации, а о унификации её внешнего вида, а потом он прошёлся и по корректности
<kompi>
сама логика не правильная
<tagezi>
ну, там три парсера
<tagezi>
сейчас, пока
<tagezi>
может просто немного не то сделали, не доконца проанализировали
<tagezi>
например, если создать диаграмму, и на вкладке диапазона, просто вставить кирилическую букву, то он нормально к ней откоситься
<tagezi>
хотя и ежу понятно, что такой диапазан некоректен
<tagezi>
о, оно работает с данныи на одной ячейке, когда диапазон, тогда сробатывает :)
<tagezi>
поидее не нужно это улучшение, и подсказка
<mikekaganski>
мне тоже так кажется. Критичная часть уже там
<kompi>
где улучшение? когда это бага
<mikekaganski>
ну, мелкая бага
<kompi>
ладно, сделали и то хорошо
<tagezi>
темболе не нужно :)
<tagezi>
а кнопка была бага?
<kompi>
я писал про пропажу форматирования, а не про кнопку!
<kompi>
это майк решил полумерами обойтись
<mikekaganski>
кнопка была бага однозначно: возможная потеря
<kompi>
100% потеря, почему "возможная"?
<mikekaganski>
в смысле - полумерами? тебе не дадут теперь потерять
<tagezi>
ну, значит я в релизнотес опять не вхожу
<kompi>
но почему пропадает?
<tagezi>
потому что не правильно
<kompi>
tagezi: ты уже в лог 6.0.0.1 попал
<tagezi>
эм.. это когда?
<kompi>
сегодня
<mikekaganski>
потому что там код, который проверяет, валидный ли формат, и если нет - то удаляет
<kompi>
хм
<kompi>
жесть
<tagezi>
а что с ним делать?
<kompi>
если формат не валидный, то его не надо сохранять, а вовсе не сносить форматирование, которое настроено РАНЕЕ
<tagezi>
нейронную сеть клепать? и чего это хотел пользователь
<mikekaganski>
ну, вариантов масса, например, откатить назад... но это тоже вызовет вопросы "я наделал кучу исправлений, а оно не сохранило их! потеря формата!!!"
<tagezi>
с пробелами можно было обойтись по другому, удалять их
<mikekaganski>
так что мои "полумеры" - это единственный вариант, спасающий от потери
<mikekaganski>
ну с пробелами да
<mikekaganski>
но это частный случай
<tagezi>
kompi: это нормально решение для ЛО, сказать пользователю "Стой, подумай!"
<kompi>
я неверно написал формат, но эксель САМ его исправил
<mikekaganski>
просто ты сам пойми: если "не сохранять" - это тоже потеря работы, "несохранение"
<tagezi>
kompi: погоди, а если ты туда русскую букву вставишь?
<mikekaganski>
kompi: сам? ну tagezi про пробелы и говорил
<tagezi>
пробелы я могу обработать, исключить ошибку, и при сохранении сохранять без них
<mikekaganski>
ты каждый раз проблемы сводишь к частному случаю, когда *сначала* нужно её решить в общем виде, а потом заниматься шлифовкой красивостей
<tagezi>
но если человек не тот разделитель использует? или не те символы для обозначения?
<mikekaganski>
вот я в экселе ввёл диапазон через запятую вместо точки с запятой, и он мне это просто сбросил. А почему не предупредил???!!! я полчаса мучался, набивал 100500 ячеек!!!
<tagezi>
потому что Миша им не расказал, что можно просто тупо заблокировать кновку :)
<tagezi>
кнопку*
<mikekaganski>
и красным подсветить, кстати.
<mikekaganski>
А! ПОЧЕМУ ОНИ ТУЛТИП НЕ ПОКАЗЫВАЮТ!!!!!
<tagezi>
угу, и ещё парсер из ЛО использовать, для вывода сообщения :)))
<mikekaganski>
Ёксель, нафиг, 2016!
<tagezi>
kompi: короче, ты думаешь как обычный пользователь "У меня есть проблема, решите её за меня". Заканчивай с этим
<tagezi>
Эксель обрабатывает одну конкретную ошибку
<tagezi>
видимо она очень частая
<tagezi>
а на остальное он посто болт положил
<tagezi>
kompi: если можешь определить частые ошибки для этого поля, то можно подумать как их обработать, и не заставлять пользователя думать над ними
<tagezi>
но, лично по мне, так программа не должна решать за пользователя чего он хочет, она олжна ему подстказывать и мешать отпилить себе ногу
<kompi>
где юзер должен узнать, какой синтаксис в данном конкретном поле ввода?
<kompi>
и это, почему я не должен думать, как юзер?!
<kompi>
я для вас целевая аудитория
<kompi>
вы софт пишете для того, чтобы юзер им ползовался
<tagezi>
ну, конкретно для меня, ты член сообщества :)
<tagezi>
я просто себе портволио делаю :)
<kompi>
mikekaganski: сегодня увидел, что исправили задумчивость автофильтра на больших объемах в Кальк, а я грешил на свою рабочую табличку, что она стала сложнее
<tagezi>
ну, и мне нравиться учиться у Миши :)
<kompi>
я может и член сообщества (а что мемберов всего 185 человек????)
<kompi>
но это не означает, что я должен начать думать, как прогер
<kompi>
когда юзаю софт
<tagezi>
ну... никто не должен додумывать за тебя
<kompi>
да, эксель отбрасывает некорректный ввод, оставляет предыдущее значение
<tagezi>
и потом, садится за машину и начинать на ней ездить не пройдя обучения, это самоубийство, но почему-то про программы так никто не думает
<kompi>
tagezi: но стремиться к тому, чтобы сделать софт лучше мы можем же
<kompi>
tagezi: потому что программы не приводят к ДТП со смертельным исходом
<tagezi>
да.. поэтму млжно запросто стрелять себе в ногу, пусть другие думают об этом
<tagezi>
по поводу пробела, я подумаю, это видимореально частая ошибка, и можно её обработать
<kompi>
зачем? кнопку же отключили и зажгли красный свет
<tagezi>
но вообще в справке есть примеры ввода диапазонов
<kompi>
ввода куда?
<kompi>
оно везде с одинаковым синтаксисом?
<tagezi>
хорошо, не буду думать :)
<kompi>
вообще поставить пробел после знака препинания у меня рефлекс
<tagezi>
A1: A10; B1: B100500.
<tagezi>
да, нужно ещё смотреть точку в конце :)
<tagezi>
и восклицательный знак, вдруг кто решит, что так сработает :)
<mikekaganski>
насчёт пробелов - нужно определить, какие пробелы не нужно удалять. Нпаример, в имени листа или файла (если ссылки туда)
<kompi>
вы отвлеклись от главного, от дисаблинга кнопок в панели управления, если выделить таблицу Writer определнным образом
kompi has quit [Quit: Page closed]
VitaliyAndersonI has joined #libreoffice-ru
VitaliyAnderson has quit [Ping timeout: 248 seconds]
bormant__ has joined #libreoffice-ru
bormant__ has quit [Ping timeout: 252 seconds]
<tagezi>
mikekaganski: в форматировании не нужен лист, там всё привязано намертво к одному листу
<tagezi>
и если ты будишь вводить названия листа, то тебе будет ошибка
<tagezi>
так что.. все пробелы
<tagezi>
не, это я глючу.. да, нужно нумать что удалять
<tagezi>
но название листа можно игнорировать при пробелах, оно удаляется.. и кроме того, оно бесмысленно, так как всеравно правило применяется к текущему листу
<tagezi>
а вот причем тут таблица в райтере, я вообще не понимаю
<tagezi>
но я не нахожу как связана таблица и всё окружение
<tagezi>
поидее при выделении должен быть какой-то переключатель
<mikekaganski>
tagezi: тебе нужно не оттуда плясать. Тебе нужен метод, который решает, является ли выделение "только для чтения"
<tagezi>
ну, его нужно найти
<mikekaganski>
поищи
<tagezi>
я и ищу
<mikekaganski>
тут какой момент: выделение в Райтере называется PaM
<mikekaganski>
Point and Mark
<mikekaganski>
я как-то фиксил баг, в котором выставлялось "только чтение" при определённом выделении
<kompi>
mikekaganski: я не пытаюсь, я уже :D
<tagezi>
kompi: да не, если я ещё 15 минут покопаюсь и не продвинусь, сам будешь учить с++ и править :)
<tagezi>
kompi: кстати, Миша признался, что это его регрессия :)
<kompi>
где это он признался?
<tagezi>
kompi: ^ я как-то фиксил баг, в котором выставлялось "только чтение" при определённом выделении
<tagezi>
вот таблица теперь только и читается :)
<kompi>
на мой взгляд никак не связанные вещи=(
<tagezi>
на твой взгляд есть только одна вещь - удовлетворение твоей хотелки, всё что не говорт "Я её удовлетворю" прямым текстом, для тебя не связанные вещи :)
<kompi>
чем плоха моя хотелка?
kompi has quit [Quit: Page closed]
bormant__ is now known as bormant_
<tagezi>
этот баг ещё с ООо тянется
<tagezi>
не, достало.. когда-нибудь в следующей жизни