LINUX.ORG.RU

Сообщения vvviperrr

 

Отрисовать изображение с альфа каналом

Форум — Development

Добрый день. В работе с графикой опыта нет (теоретических знаний минимум), подскажите по сабжу. имеется код

painter.fillRect(rect(), Qt::black);
...
const QImage &image = model().backgroudImage();
painter.drawImage(rect().center() - image.rect().center(), image);

как заставить его правильно отрисоваться с использованием альфа канала? спасибо.

 ,

vvviperrr
()

Qt, клонирование QObject

Форум — Development

Добрый день. Вопрос к специалистам Qt. Делаю своеобразный редактор. Создаю иерархию классов. Базовый класс в ней (назовем RBase) наследуется от QWidget. Хочу, чтоб любой визуальный объект в редакторе можно было скопировать (выделили объект - копировать). Для этого в RBase добавил

virtual RBase *clone() const = 0;
чтобы в конкретных классах ее переопределять. каждый новосозданный объект создает некоторые соединения сигнал-слот.

Вопрос. как правильно скопировать QWidget, если конструктор копирования у него закрыт? открывать не предлагать. В итоге нужно создать идентичный объект (с такими же QWidget свойствами, такими же соединениями сигнал-слот).

Сейчас свойства копирую через мета информацию объекта (property(), setProperty()). Как скопировать инфу о соединениях не знаю. Заново вызывать для нового объекта connect не хотелось бы. Все коннекшены создаются в MainWindow, и лезть туда не хочется. Хочется извлечь эту инфу из копируемого объекта.

Заранее спасибо.

vvviperrr
()

бинарное отношение, дискретка

Форум — Talks

Небольшой вопрос.

задано бинарное отношение R = a - b > 3 на множестве натуральных чисел. Необходимо выяснить, является ли оно антисимметричным.
из определения антисимметричности имеем:
aRb ^ bRa ==> a = b. но a - a = 0, 0 !> 3, получается, что отношение не антисимметрично.

но теорема об антисимметричности гласит, что если пересечение R и R^(-1) является подмножеством диагонали множества натуральных чисел, то отношение антисимметрично. в моем случае как раз пустое множество является подмножеством любого множества, в том числе и диагонали.

как в данном случае нужно правильно доказать антисимметричность? спасибо.

vvviperrr
()

[C] странный варнинг

Форум — Development

не пойму, что приводит к варнингу в этом коде

#include <stdio.h>

static int arr[][2][2] = {
    {
        { 0, 0 },
        { 1, 1 }
    },
    {
        { 1, 1 },
        { 2, 2 }
    },
    {
        { 2, 2 },
        { 3, 3 }
    },
};

void foo(const int (*m)[2])
{
}

int main()
{
    foo(arr[0]);
    return 0;
}

main.c:42: warning: passing argument 1 of ‘foo’ from incompatible pointer type

main.c:36: note: expected ‘const int (*)[2]’ but argument is of type ‘int (*)[2]’

 

vvviperrr
()

слетает разрешение монитора

Форум — General

такая проблема. имеется какой то 17 дюймовый асер. 1280х1024 жестко прописал в хорге, какое то время работает нормально, но в какой то момент может загрузиться с разрешением 1024х780. xrandr говорит, что моник не поддерживает разрешения выше. но если в меню монитора сделать reset, то после перезапуска хорга все опять норм, но временно. сам монитор в порядке (имеется около 30 таких моников, проблема иногда всплывает на разных). в самой системе ничего не запущено, кроме браузера. с чем может быть связано и куда копать? (пс. сменить монитор не советовать, у человека «на винде все работало нормально»)

спасибо

vvviperrr
()

g++ + pimpl + auto_ptr

Форум — Development

добрый день. имеется код

a.h

class A_impl;

class A {
public:
	A();

private:
	std::auto_ptr<A_impl> m_p;
};

a.cpp

#include "header.h"

using namespace std;

class A_impl {
public:
	A_impl()
	{
		cout << "created" << endl;
	}

	~A_impl()
	{
		cout << "destroyed" << endl;
	}
};

A::A() : m_p(new A_impl)
{

}

main.cpp

#include "a.h"

int main()
{
	A a;
	return 0;
}

в нем есть ошибка (auto_ptr не может удалить объект неполного типа, если деструктор класса А не описать в месте определения типа, в данном случае в a.cpp). VS срет праведными варнингами, g++ (4.4.4, 4.5.2) почему то молчит. собирать пытался так:

g++ -Wall -Wextra --pedantic a.cpp main.cpp
ни единого разры[ESC]bcwварнинга. можно ли заставить? спасибо.

пс. воинам интернета. мне просто интересно, почему g++ молчит. auto_ptr в пимплах я не использую

vvviperrr
()

Шифрование раздела

Форум — General

Добрый день. Имеется следующая задача.
Есть Linux, есть раздел на хдд. Цель - запретить монтироваться этому разделу на системе, отличной от начальной (на которой настроили шифрование). Т.е например заменили мать - не монтироваться, соответственно запретить возможность чтения этого раздела любыми способами. Если же система родная, монтирование должно происходить без всяких паролей. Я так понимаю паролем должна служать какая то контрольная сумма/хеш id железа, подозреваю, что автоввод пароля можно настроить через fstab.

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

Цель - не дать наклонировать юзерам хард с ПО, даже если они обратятся к крутым хацкерам (опять же, вопрос в том, насколько легко/сложно это взламывается). Я с этим никогда не сталкивался, надеюсь у кого нить есть подобный опыт.

Всем спасибо за ответы

vvviperrr
()

постоянно падает fs

Форум — General

добрый день. есть комп с линуксом (гента), fs ext3 (3 раздела, boot, swap, root). на компе крутится музыкальная прога, люди суют денюжку, заказывают песню. последнее время некоторые компы перестали загружаться с ошибкой Unexpected inconsistency, run fsck manually. (автоматическая проверка харда производится после 30-и монтирований, чтоль). ну не проблема, запущу вручную (обычно делал это под live cd на немонтированном устройстве, все по феншую). немного поработает, и опять та же проблема. последнее время даж fsck перестал помогать, и при загрузке уже kernel panic - not syncing: VFS: unable to mount root fs on unknown.

что меня удивляет из всей этой истории, за 3 года юзания генты на домашнем компе и ноуте НИ РАЗУ не было подобной хрени (обрушение фс). С железом сразу скажу, все ок, харды новые (знаю я вас, любителей на железо пинять :) )

кстате, раньше стояла убунта, началась эта хрень, но я погрешил на ось (довольно древняя версия была) и поставил генту, с которой у меня отродясь проблем не было. но и она не выдержала :(

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

вопросы следующие: - может ли из за этого рушиться фс? здравый смысл подсказывает, что да

- чем чревато отключение запланированной проверки по кол-ву монтирований? вроде через tunefs это можно сделать

- может есть какие нить специальные правила/настройки для стабильной работы компа (в моем случае с фс) без вмешательства админа?

всем спасибо за ответы

vvviperrr
()

плеер для музыкального автомата

Форум — Development

добрый день. появилась необходимость написать программу музыкального автомата под эти ваши линуксы. какой плеер более подойдет под основу? желательно удобное внешнее управление, например через dbus, поддержка плейлистов не нужна, т.к в проге свой плейлист, поэтому всякие монстры типа amarok не нужны. поигрался с audacious, вроде подходит. + поддерживает различные плагины (ladspa в том числе), ибо заказчикам не нравится чистый вывод альсы. звуковые заменили вместо встроенных интелов, проблема с качеством вроде отпала, но мало ли чего им взбредет еще. есть ли смысл вокруг mpd это реализовывать? в принципе, это обычный фронтенд. либо кто нить посоветует что нить более подходящее? всем спасибо за ответы

vvviperrr
()

audigy se щелчки

Форум — Linux-hardware

добрый день. имеется звуковая карта audigy se. завелась нормально, звук есть. но при переключении треков в плейлисте происходит непрятный щелчок. вывожу через alsa. на просторах интернетов пишут об этом эффекте, но как излечить - не известно. для intel hd audio рекомендуют поставить опцию модуля power_save в 0, но у модуля этой карточки (snd_ca0106) такой опции нет. аналогичная проблема тут http://www.linux.org.ru/forum/linux-hardware/3572149 без решения. кто нить докопался? может можно как нить заставить ее работать постоянно? пока придумал только пускать параллельно пустой трек, чтобы карта работало постоянно, но от такого костыля аж плакать хочется. заранее спасибо

vvviperrr
()

sqlite + cp1251

Форум — Development

есть gui либа, написанная на opengl. все писалось под винды. я ее портировал на linux. все нормально заработало, за исключением понимания уникодовых строк. она сильно завязана на cp1251 (текст рендерится вручную, с помощью freetype, глифы грузятся в списки отображения и выводятся как текстуры). времени на допил под utf-8 просто нет. прога, использующая эту либу, должна юзать sqlite. собственно в чем вопрос. как тут правильно поступить? ставиль локаль в cp1251? либо в базе хранить в utf-8, при выдергивании конвертить в cp1251(не хотелось бы этого). либо есть еще какие то варианты? всем спасибо за ответы

vvviperrr
()

qt виджет в динамической библиотеке

Форум — Development

добрый день. возникла следующая проблема. хочу поместить в динамическую библиотеку qt виджет, чтобы через интерфейс отображать его на основном приложении

описываю интерфейс:

class ShapeInterface {
public:
        virtual ~ShapeInterface() {}

   virtual void up() = 0;
   virtual void down() = 0;
   virtual void left() = 0;
   virtual void right() = 0;
};

реализую интерфейс в динамической библиотеке, и экспортирую функции создания/удаления виджета.

class RectangleShape : public QWidget, public ShapeInterface {
public:
   RectangleShape(QWidget *parent = 0) : QWidget(parent) {}
   ~RectangleShape() {}

public:
   void up() {}
   void down() {}
   void left() {}
   void right() {};
};


extern "C" ShapeInterface *create_object(QWidget *parent)
{
   return new RectangleShape(parent);
}


extern "C" void destroy_object(ShapeInterface *pObj)
{
   delete pObj;
}

код реализации функций интерфейса значения не имеет. вобщем, пытаюсь работать как с классическим плагином на с++. вызываю из хостового приложения так:

   QLibrary myLib(objPath);
   typedef ShapeInterface *(*create_object)(QWidget *);
   create_object myNew =
        (create_object) myLib.resolve("create_object");

   if (myNew) {
      ShapeInterface *shapeInterface = myNew(this);
   }

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

в идеале, мне нужно поместить в библиотеку виджет, чтобы динамически подгружать и отображать его на главном окне приложения (на любом parent вобщем). смотрел классическую систему плагинов qt, но там как я понял, вообще виджеты нельзя запихнуть, только надстройку наж ними. Да и не хочется использовать qt-шные плагины, а остаться на стандартной архитектуре (с экспортом своих ctors/dtors).

спасибо за внимание

vvviperrr
()

qtdbus

Форум — Development

добрый день. срочно потребовалось использовать межпроцесное взаимодействие в проекте, решил использовать dbus. раньше с ним не работал. тестовый пример брал из этого мануала http://symmetrica.net/qt4/lesson6.htm

все нормально собирается, ни сервер, ни клиент ошибок не выдают, но при попытке отправки сообщеия не происходит вызова удаленного метода. dbus-monitor говорит следующее

[quote] method call sender=:1.61 -> dest=DBus.Manager.QClipboard serial=7 path=/QClipboard; interface=DBus.Manager.QClipboard; member=setContent string «test_str» error sender=:1.60 -> dest=:1.61 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=7 string «No such method 'setContent' in interface 'DBus.Manager.QClipboard' at object path '/QClipboard' (signature 's')» [/quote]

почему то не видит удаленного метода setContent. уже копаю пару часов - ничего. примеры, идущие со статьей ведут себя точно так же. статья 2008 года, может что изменилось?

подскажите пожалуйста, кто может

vvviperrr
()

html style

Форум — Web-development

добрый вечер. пытаюсь найти какое-нибудь средство авторефакторинга html кода (что-нить типа astyle, но можно и vim-овский скрипт). Не обязательно с поддержкой различных стилей, хотя бы для привидения кода в удобочитаемый вид. Никто не встречал ничего подобного?

vvviperrr
()

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