Russian Qt Forum

Qt => Общие вопросы => Тема начата: NicK от Апрель 19, 2011, 15:22



Название: Своя картинка в DBus notification [solved]
Отправлено: NicK от Апрель 19, 2011, 15:22
Хочу выводить сообщения через DBus уведомления. Вот код:

    
Код
C++ (Qt)
QDBusInterface dbusNotification("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", QDBusConnection::sessionBus());
        QString title = "messageTitle";
        QString msg = "MessageText";
        QVariantList args;
        args << QString("ProgramName");
        args << QVariant(QVariant::UInt);
        /*args << QVariant("/home/username/icon.png");*/ //Так работает. Но так не надо.
        args << QVariant(":/newPrefix/icon.png");              //Так не работает. Как сюда засунуть свою картинку?
        args << QString(title);
        args << QString(msg);
        args << QStringList();
        args << QVariantMap();
        args << 1000;
        dbusNotification.callWithArgumentList(QDBus::AutoDetect, "Notify", args);

В результате в уведомлении отображается заголовок и текст, но сообщение выводится без картинки.((
Для картинки, находящейся в файловой системе, все отображается нормально.
Каким образом засунуть картинку из ресурсов в уведомление?


Название: Re: Своя картинка в DBus notification
Отправлено: Командор от Апрель 19, 2011, 17:16
По ходу никак, ведь сообщение выводится сторонней службой, а обращение к ресурсам через ":/" понимает только сама программа.


Название: Re: Своя картинка в DBus notification
Отправлено: NicK от Апрель 19, 2011, 23:14
up


Название: Re: Своя картинка в DBus notification
Отправлено: mutineer от Апрель 19, 2011, 23:25
up
Тебе уже ответили. Ресурсы находятся внутри твоего приложения, а по DBus ты отправляешь сообщение другому приложению, у которого к этим ресурсам доступа нет. юзай внешний файл


Название: Re: Своя картинка в DBus notification
Отправлено: Alex Custov от Апрель 20, 2011, 03:08
Desktop Notifications Specification (http://developer.gnome.org/notification-spec)


Название: Re: Своя картинка в DBus notification
Отправлено: NicK от Апрель 20, 2011, 08:16
up
Тебе уже ответили. Ресурсы находятся внутри твоего приложения, а по DBus ты отправляешь сообщение другому приложению, у которого к этим ресурсам доступа нет. юзай внешний файл

Ничего глупее и представить себе не могу. Вы вообще представляете что значит для каждого уведомления сохранять файл на диск дергать оттуда иконку и удалять ее после показа сообщения? А если у меня 100500 разных сообщений и  к каждому нужна своя иконка? Вы действительно думаете, что все KDE и Qt приложения, использующие уведомления через DBus, отображают иконки из внешних файлов?

Всем спасибо. Зачем писать такой бред? Если я не разбираюсь в каком-либо вопросе - лучше промолчу, чего и вам желаю.
Просьба в будущем воздерживаться от подобных "советов".

Видимо, все-таки придется лезть, например, на qt-apps и копать исходники тех, кто знает как это делается.)


Название: Re: Своя картинка в DBus notification
Отправлено: SeverusSnape от Апрель 20, 2011, 08:47
По ссылке выше мог бы и прочитать, прежде чем оскорблять людей.

Раздел Images

Цитировать
Images
Images may be placed in the notification, but this should be done with caution. The image should never exceed 200x100, but this should be thought of as a maximum size. Images should always have alternative text provided through the alt="..." attribute.

Image data cannot be embedded in the message itself. Images referenced must always be local files.

Implementations are not required to support images.


Название: Re: Своя картинка в DBus notification
Отправлено: mutineer от Апрель 20, 2011, 11:18
2 Nick
Так читай спеки, раз людей слушать не хочешь.

Цитировать
для каждого уведомления сохранять файл на диск дергать оттуда иконку и удалять ее после показа сообщения
Зачем так? При установке или первом старте проги положи куда-нить иконку и дергай ее оттуда. Удалять ее каждый раз не надо. Если покопаешься в системных файлах, то как раз и найдешь там иконки для уведомлений разных приложений

Цитировать
Если я не разбираюсь в каком-либо вопросе - лучше промолчу, чего и вам желаю.
По твоему сообщению не похоже, что ты следуешь этому правилу...


Название: Re: Своя картинка в DBus notification
Отправлено: NicK от Апрель 20, 2011, 14:48
По ссылке выше мог бы и прочитать, прежде чем оскорблять людей.

Раздел Images

Цитировать
Images
Images may be placed in the notification, but this should be done with caution. The image should never exceed 200x100, but this should be thought of as a maximum size. Images should always have alternative text provided through the alt="..." attribute.

Image data cannot be embedded in the message itself. Images referenced must always be local files.

Implementations are not required to support images.


Спасибо SeverusSnape за единственный ценный пост :)
Пример решения задачи нашел здесь http://code.google.com/p/snorenotify/source/browse/trunk/src/notify.h?r=72 (http://code.google.com/p/snorenotify/source/browse/trunk/src/notify.h?r=72)

Тема закрыта.