LINUX.ORG.RU

Сообщения KblCb

 

О talks'ах и перемещении из general.

Уважаемая администрация, на кой хрен я подписан на rss без talks'ов если публика с маленьким шкворцем давно считает общеупотребимой практикой написать пост в general с расчётом на то чтобы модераторы перенесли его в talks? Пожалуйста, не переносите такие посты никуда, а удаляйте их нафиг.

KblCb
()

Пообщаться с пользовательской шиной dbus из под root'а

Не могу при помощи qdbus из под root'а пощупать пользовательскую шину. Вместо списка сервисов получаю сообщение о том что нельзя прицепиться к dbus-демону.

~# dbus-launch qdbus --address unix:abstract=/tmp/dbus-o8EgpIA7Dp,guid=ef9b8daf930689ef633ea90c52a60387
No protocol specified
Could not connect to D-Bus server:
org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Каких кому прав не хватает? Что я делаю не так? Дистрибутив Slackware.

 

KblCb
()

megafon 3g модем для ubuntu

А посоветуйте мне megafon'овский 3g модем который может завести на ubuntu 13.04 по мануалу блондинка без моего присутствия?

 

KblCb
()

QString и неявный шаринг данных

Задался совершенно детским вопросом. Как правильно быстро передавать QString в функцию, которая этот QString изменять не будет: по константной ссылке или по значению? Строго говоря, сам объект QString это прокси для неявно пошаренных данных, содержащий исключительно указатель на эти данные. То есть размер у прокси-объекта абсолютно аналогичен размеру ссылки. Недостатком ссылки является необходимость разыменовывать два указателя вместо одного (и не исключено что многократно). Недостатком объекта — отработка конструктора и деструктора с передёргиванием счётчика ссылок туда-сюда. При этом сам Qt поголовно использует для этих целей константные ссылки. Есть ещё какие-то аргументы? Или это исключительно читабельности ради?

 ,

KblCb
()

QChildEvent и способы обмануть плюсовый рантайм

Написал обработчик QChildEvent'а. Столкнулся с тем что не могу dynamic_cast'ом скастовать указатель на child'а от QObject*'а к конкретному типу. Полез в документацию. Много думал.

В связи с этим два вопроса. Первый: как они защитили указатель dynamic_cast'а? Как можно вернуть указатель на объект базового класса так чтобы его нельзя скастовать к указатель на производный класс (при условии что по указанному адресу лежит объект именно этого производного класса)? Vtbl у класса есть.

Второй: как и зачем QChildEvent может оказаться в петле событий до того как child будет сконструирован?

 ,

KblCb
()

Tab-навигация в QWidget'е

Есть сложный виджет состоящий из TableView и пары спинбоксов. Хочется изобразить соответствующую tab-навигацию (чтобы фокус пройдя по всей таблицы проходил бы по спинбоксам и кнопкам). Но я пока никак не придумаю как это как следует сделать. Можно перехватывать Tab'ы в KeyEvent'ах и управлять навигацией так, но это какой-то хардкод. Есть более акуратные решения?

 

KblCb
()

По какому пути разместить плагины для приложения?

Есть приложение снабжённое плагинами. Плагины работают, всё хорошо. Однако встал вопрос эксплуатации всего этого безобразия. Приложение на состоит из исполняемого файла с функцией main, библиотеки содержащей интерфейс для плагинов и собственно самих плагинов подгружаемых в рантайме. Мне кажется, что разумнее всего размещать плагины в специальной дирекории лежащей в той же директории, что и библиотека-интерфейс. Собственно вопрос в том как узнать где находится эта библиотека, если её положение зависит от операционной системы и вообще целиком на совести у линкера?

 ,

KblCb
()

Qt Pimpl

Пришлось тут вспомнить что такое Qt Pimpl. В документации об этом начколько мне известно ничего нет. Поэтому в очередной раз достал вот этот хабро-пост. Всё хорошо, но никак не соображу зачем нужны макросы Q_Q и Q_D, когда сами объекты содержат указатели на публичный интерфейс и на приватную реализацию? Кроме того я так и не понял для чего нужен защищённый конструтор. Можно как-нибудь разъяснить этот момент?

 ,

KblCb
()

Qt биндинг для libusb

Прежде чем велосипедить свой велосипед. Существуют ли в природе привязки одного к другому? С классами и qt-шной асинхронностью?

 ,

KblCb
()

QtCurve для Qt5

Какое-то время назад на ЛОРе проскакивал скрин с QtCurve адаптированной к Qt5. Может быть кто-то помнит автора скрина, а у автора сохранились исходники?

 

KblCb
()

Кастомизация QDoubleSpinBox для QItemDelegate

Есть таблица по совместительству являющаяся QTableModel которая должна быть наполнена double'ами с массой условий. Ячейки таблицы могут принимать специальное значение (либо -1, либо NaN), которое таблица отдаёт представлениям как пустую ячейку. Эта часть работает.

Таблица представляется через QTableView. Для редактирования ячейки используются QDoubleSpinBox (посаженный туда через ItemDelegate'ы). Собственно нужно сделать так, чтобы помимо диапазона ввода валидных значений, можно было бы ввести скажем пустую строку, которая бы возвращала в таблицу специальное значение. При этом ввод самого пустого значения должен по хорошему быть невалиден. В связи с эти возникает ряд вопросов:

  • Почему SpinBox'ы не умеют QValidator? Вместе установки своего валидатора мне предлагают унаследовать виджет и переопределить в точности те же методы что и валидатора. Это странное поведение вообще хоть чем-нибудь обусловлено или это какая-то традиция?
  • После обработки строки методом fixup она снова подвергается валидации, что всё равно требует внесения специального значения в диапазон валидных. Но даже в таком случае, метод fixup вызывается только после нажатия enter в той или иной ячейки. В случае нажатия tab для перехода к следующей ячейке он не вызывается. В этом есть какой-то смысл и можно ли как-то изменить это поведение?
  • Что ещё можно изменить в QDoubleSpinBox'е чтобы достигнуть поставленной задачи?

 

KblCb
()

QAbstractTableModel и dataChanged

Есть наследник QAbstractTableModel для которого перегружены insertRows и removeRows. Что-то никак в толк не возьму, нужно ли из них кидать dataChanged (а ведь data то и в самом деле changed) и если да, то какой диапазон указывать. В документации по этому поводу ничего не нашёл. Как с этим лучше поступить?

 

KblCb
()

swap для tmpfs

Хочется писать /tmp в tmpfs. 4G памяти для моих ежидневных нужд откровенно много. Однако есть один нюанс: время от времени я собираю ghc, llvm, qt и ещё чёрт знает что, причём не исключено что одновременно. Место под нужды этого процесса (для распаковки тарболов, для записи объектных файлов, для формирования пакета) берётся именно в /tmp из-за чего tmpfs заполняется и процесс трагически обрывается на самом интересном месте. В принципе проблема решается при помощи swap, но есть несколько нюансов. Во-первых мне бы хотелось чтобы во всех случаях свопился tmpfs, а не паямть приложений. Во-вторых у меня уже есть один swap для хибернейта и мне хотелось бы хибернейт оставить рабочим. Что можно сделать в такой ситуации?

KblCb
()

Функциональные кнопки ноутбука для вызова произвольной программы

Есть ноутбук с функциональными клавишами, которые конечно же не (все) работают. Как бы мне повесить вызов кастомной программы (например скрипта для изменения яркости подсветки клавиатуры) на эти клавиши, если у меня есть для них скан коды?

KblCb
()

Изменить поведение тачпада

Купил ноутбук. Всем замечательный, только у тачпада одна кнопка. Левая. А нужна правая. Вместо левого клика я давно привык делать тап. Вместо клика средней кнопкой — тап двумя пальцами. Хочется чтобы клик по тачпаду был именно правым кликом. Как бы такое сделать?

KblCb
()

Slackware vs UEFI

Впервые за много лет не могу поставить слаку. Купил ноутбук с UEFI. Нашёл в интернете руководство и следуя ему выделил в начале диска 100mb под UEFI (gdisk его видит как UEFI раздел, размечен в FAT32). Поместил туда бинарник elilo, ядро и elilo.conf. На следующем разделе живёт корень. В elilo.conf в качестве корня для ядра указан именно он. Эффекта все эти действия не оказали. Что я делаю не так?

 ,

KblCb
()

VTK и динамическое изменение данных

Ищу инструмент для отображения трёхмерных графиков с возможностью их всяческого верчения и прочего 3d. Присматриваюсь к VTK. Меня смущает в общем-то две вещи: во-первых для моих задач это вроде как из пушки по воробьям, во-вторых все примеры которые я видел в составе VTK выглядят как создание поверхность и операции над её отображением. Мне же в реалтайме надо поверхность изменять (по меньшей мере дорисовывать). Можно ли решить эту задачу при помощи данного инструмента и если да, то насколько при этом просядет производительность?

 ,

KblCb
()

Комутативное шифрование

Нужен метод симметричного шифрования для которого было бы справедливо что данные последовательно зашифрованные несколькими ключами, можно было бы расшифровать теми же ключами в произвольном порядке, то есть что-то вроде:

val == encrypt key1 val >>= encrypt key2 >>= encrypt key3 >>= uncrypt key1 >>= uncrypt key3 >>= uncrypt key2
При условии что encrypt — функция шифрующая открытый текст по ключу, а uncrypt — функция расшифровывающая зашифрованное значение по ключу. Существуют ли какие-то рабочие решения или хотя бы интересные статьи по этой теме?

KblCb
()

QFileDialog захватывает фокус виджета

Имеется хитрый кастомный диалог. Левая его половина представляет собой QListView, а правая — стековый лэйаут QDialog'ов, которые прокручиваются в соответствии с QListView. Одним из диалогов в этом стеке является QFileDialog. Когда стек прокручивается до него, он перехватывает фокус с QListView на себя, чем несказанно бесит. Как можно победить подобное поведение?

 

KblCb
()

Библиотека для работы с tar-архивами.

Хочется писать и читать tar из программы на C++. Вызывать внешний tar или использовать исходники GNU tar не хочется. Запускать программу хочется как минимум на linux-x86, linux-x86_64, linux-arm и windows. Проблема в том, что единственная найденная мной библиотека для работы с tar'ом написана на haskell и для haskell. В принципе сложного там ничего быть не должно и можно реализовать tar самому, но не хотелось бы. Есть какие-нибудь варианты?

 

KblCb
()

RSS подписка на новые темы