Mailing List Archive

GtkWidget* handler from QWidget
Question to my fellow developers:
I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.
The thing is in orderto do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?
Thanks in advance,
Naikel Aparicio
Scorpius @ tmo
Re: GtkWidget* handler from QWidget [ In reply to ]
The maemo5 module has the notification stuff. Check if it does what you need

http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html

Timo


Naikel Aparicio kirjoitti 8.6.2012 3:27:

Question to my fellow developers:

I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.

The thing is in order
to do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?

Thanks in advance,

Naikel Aparicio
Scorpius @ tmo
Re: GtkWidget* handler from QWidget [ In reply to ]
Not really.

Those are the banners and notes, as you can see in screenshots in http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-informationbox.html

What I want is the notification bubble. Sadly anyway I just found libhildon-plugins-notify-sv.so didn’t implement correctly the org.freedesktop.Notifications notifications. Maemo will only attach the notifications depending on the hint category to a predefined program, that is Modest for email, Conversations for IM/chat, etc. It’s not customizable. If you don’t set a category hint in your notification the daemon simply ignores everything and shows a notification that is totally useless with no sound, no LED alert, no vibration, no attachment to another widget and most importantly: it never updates itself.

That means if you write your own email client, you can’t create notifications that are attached to it; if you set the category “email-message” it will always be attached to modest. When I say “attach” is that the notification belongs to the same widget and it doesn’t appear as a new window, it appears as if it were the same window than the application that generated it.

Naikel

From: timop.harkonen@gmail.com
Sent: Friday, June 08, 2012 12:24 AM
To: maemo-developers@maemo.org ; Naikel Aparicio
Subject: Re: GtkWidget* handler from QWidget

The maemo5 module has the notification stuff. Check if it does what you need



http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html



Timo


Naikel Aparicio kirjoitti 8.6.2012 3:27:


Question to my fellow developers:
I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.
The thing is in orderto do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?
Thanks in advance,
Naikel Aparicio
Scorpius @ tmo
Re: GtkWidget* handler from QWidget [ In reply to ]
Hi,

The predefined config file can be edited (thanks to thp for his "example" - he did it in gpodder)

Anyway, you need to add something like this to your debian/postinst

# Add Sociality to the notification bubble settings
NOTIFICATIONS_CONF="/etc/hildon-desktop/notification-groups.conf"
NOTIFICATIONS_KEY="sociality-new-notifications"


if ! grep -q "$NOTIFICATIONS_KEY" "$NOTIFICATIONS_CONF"; then
echo -n "Updating $NOTIFICATIONS_CONF..."
cat >>$NOTIFICATIONS_CONF << EOF

### BEGIN Added by sociality postinst ###

[sociality-new-notifications]
Destination=Sociality
Icon=general_facebook
LED-Pattern=PatternCommonNotification

### END Added by sociality postinst ###

EOF
echo "done."
fi

Change all values to whatever you need, then use the key you defined in your app's code.
The user might need to restart parts of hildon or just reboot, but it works :)

--
Regards,
Mohammad Abu-Garbeyyeh

On Jun 8, 2012, at 8:34 AM, "Naikel Aparicio" <naikel@gmail.com> wrote:

> Not really.
>
> Those are the banners and notes, as you can see in screenshots in http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-informationbox.html
>
> What I want is the notification bubble. Sadly anyway I just found libhildon-plugins-notify-sv.so didn’t implement correctly the org.freedesktop.Notifications notifications. Maemo will only attach the notifications depending on the hint category to a predefined program, that is Modest for email, Conversations for IM/chat, etc. It’s not customizable. If you don’t set a category hint in your notification the daemon simply ignores everything and shows a notification that is totally useless with no sound, no LED alert, no vibration, no attachment to another widget and most importantly: it never updates itself.
>
> That means if you write your own email client, you can’t create notifications that are attached to it; if you set the category “email-message” it will always be attached to modest. When I say “attach” is that the notification belongs to the same widget and it doesn’t appear as a new window, it appears as if it were the same window than the application that generated it.
>
> Naikel
>
> From: timop.harkonen@gmail.com
> Sent: Friday, June 08, 2012 12:24 AM
> To: maemo-developers@maemo.org ; Naikel Aparicio
> Subject: Re: GtkWidget* handler from QWidget
>
> The maemo5 module has the notification stuff. Check if it does what you need
>
> http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html
>
> Timo
>
> Naikel Aparicio kirjoitti 8.6.2012 3:27:
>
> Question to my fellow developers:
>
> I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.
>
> The thing is in order to do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?
>
> Thanks in advance,
>
> Naikel Aparicio
> Scorpius @ tmo
>
> _______________________________________________
> maemo-developers mailing list
> maemo-developers@maemo.org
> https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: GtkWidget* handler from QWidget [ In reply to ]
Hello Naikel,

There are two things that come to my mind:
- I implemented a Qt-based api for that stuff a long time ago
- It's not possible to attach them to your window, but it's possible to add an entry to a config file, and then it will attach the notification to your window
- Led/vibration notifications are possible by setting a notification hint, regardless of whether or not it's attached to your window.

If you wish, I can point you to the right direction. :)

Timur
Sent from my Nokia N950



On 2012.06.08. 7:34 Naikel Aparicio wrote:

Not really.

Those are the banners and notes, as you can see in screenshots in http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-informationbox.html

What I want is the notification bubble. Sadly anyway I just found libhildon-plugins-notify-sv.so didn’t implement correctly the org.freedesktop.Notifications notifications. Maemo will only attach the notifications depending on the hint category to a predefined program, that is Modest for email, Conversations for IM/chat, etc. It’s not customizable. If you don’t set a category hint in your notification the daemon simply ignores everything and shows a notification that is totally useless with no sound, no LED alert, no vibration, no attachment to another widget and most importantly: it never updates itself.

That means if you write your own email client, you can’t create notifications that are attached to it; if you set the category “email-message” it will always be attached to modest. When I say “attach” is that the notification belongs to the same widget and it doesn’t appear as a new window, it appears as if it were the same window than the application that generated it.

Naikel

From: timop.harkonen@gmail.com
Sent: Friday, June 08, 2012 12:24 AM
To: maemo-developers@maemo.org ; Naikel Aparicio
Subject: Re: GtkWidget* handler from QWidget

The maemo5 module has the notification stuff. Check if it does what you need

http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html

Timo

Naikel Aparicio kirjoitti 8.6.2012 3:27:

Question to my fellow developers:

I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.

The thing is in order
to do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?

Thanks in advance,

Naikel Aparicio
Scorpius @ tmo
Re: GtkWidget* handler from QWidget [ In reply to ]
You guys are so awesome!!

Using the conf file I could make the notifications stack together (using Group) with custom icon and they also attach to a window!

But it attaches to the main window of my application. It seems you can set a hint (defined by Split-In-Threads) to assign different destinations (different windows) but I wonder how can you set the different child windows with those values...

... or maybe I understood it all wrong (I’m reading hildon-home source).

Naikel

From: Mohammad Abu-Garbeyyeh
Sent: Friday, June 08, 2012 1:28 AM
To: Naikel Aparicio
Cc: mailto:maemo-developers@maemo.org
Subject: Re: GtkWidget* handler from QWidget

Hi,

The predefined config file can be edited (thanks to thp for his "example" - he did it in gpodder)

Anyway, you need to add something like this to your debian/postinst

# Add Sociality to the notification bubble settings
NOTIFICATIONS_CONF="/etc/hildon-desktop/notification-groups.conf"
NOTIFICATIONS_KEY="sociality-new-notifications"


if ! grep -q "$NOTIFICATIONS_KEY" "$NOTIFICATIONS_CONF"; then
echo -n "Updating $NOTIFICATIONS_CONF..."
cat >>$NOTIFICATIONS_CONF << EOF

### BEGIN Added by sociality postinst ###

[sociality-new-notifications]
Destination=Sociality
Icon=general_facebook
LED-Pattern=PatternCommonNotification

### END Added by sociality postinst ###

EOF
echo "done."
fi

Change all values to whatever you need, then use the key you defined in your app's code.
The user might need to restart parts of hildon or just reboot, but it works :)

--
Regards,
Mohammad Abu-Garbeyyeh

On Jun 8, 2012, at 8:34 AM, "Naikel Aparicio" <naikel@gmail.com> wrote:


Not really.

Those are the banners and notes, as you can see in screenshots in http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-informationbox.html

What I want is the notification bubble. Sadly anyway I just found libhildon-plugins-notify-sv.so didn’t implement correctly the org.freedesktop.Notifications notifications. Maemo will only attach the notifications depending on the hint category to a predefined program, that is Modest for email, Conversations for IM/chat, etc. It’s not customizable. If you don’t set a category hint in your notification the daemon simply ignores everything and shows a notification that is totally useless with no sound, no LED alert, no vibration, no attachment to another widget and most importantly: it never updates itself.

That means if you write your own email client, you can’t create notifications that are attached to it; if you set the category “email-message” it will always be attached to modest. When I say “attach” is that the notification belongs to the same widget and it doesn’t appear as a new window, it appears as if it were the same window than the application that generated it.

Naikel

From: timop.harkonen@gmail.com
Sent: Friday, June 08, 2012 12:24 AM
To: maemo-developers@maemo.org ; Naikel Aparicio
Subject: Re: GtkWidget* handler from QWidget

The maemo5 module has the notification stuff. Check if it does what you need



http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html



Timo


Naikel Aparicio kirjoitti 8.6.2012 3:27:


Question to my fellow developers:
I want to attach a Maemo native notification (those orange bubbles) to a QWidget. Using GLIB, it’s easy; you call notify_notification_attach_to_widget or add a hint with “attach-widget”.
The thing is in orderto do that you need the GtkWidget* handler of the window, and all I got is a QWidget. Is there a way do it?
Thanks in advance,
Naikel Aparicio
Scorpius @ tmo

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: GtkWidget* handler from QWidget [ In reply to ]
Hello Naikel,

The code I talked about is here:
http://vcs.maemo.org/svn/q-extras/q-extras/

Here is an example on how you can use the notification:
http://vcs.maemo.org/svn/q-extras/q-extras/examples/notification/

And you can find how to attach it to your window in Mohammad's mail.

Cheers,
Timur

---

From: Naikel Aparicio
Sent: Friday, June 08, 2012 9:34 AM
To: maemo-developers@maemo.org
Subject: Re: GtkWidget* handler from QWidget

You guys are so awesome!!

Using the conf file I could make the notifications stack together (using
Group) with custom icon and they also attach to a window!

But it attaches to the main window of my application. It seems you can set
a hint (defined by Split-In-Threads) to assign different destinations
(different windows) but I wonder how can you set the different child windows
with those values...

... or maybe I understood it all wrong (I’m reading hildon-home source).

Naikel

From: Mohammad Abu-Garbeyyeh
Sent: Friday, June 08, 2012 1:28 AM
To: Naikel Aparicio
Cc: mailto:maemo-developers@maemo.org
Subject: Re: GtkWidget* handler from QWidget

Hi,

The predefined config file can be edited (thanks to thp for his "example" -
he did it in gpodder)

Anyway, you need to add something like this to your debian/postinst


# Add Sociality to the notification bubble settings
NOTIFICATIONS_CONF="/etc/hildon-desktop/notification-groups.conf"
NOTIFICATIONS_KEY="sociality-new-notifications"


if ! grep -q "$NOTIFICATIONS_KEY" "$NOTIFICATIONS_CONF"; then
echo -n "Updating $NOTIFICATIONS_CONF..."
cat >>$NOTIFICATIONS_CONF << EOF

### BEGIN Added by sociality postinst ###

[sociality-new-notifications]
Destination=Sociality
Icon=general_facebook
LED-Pattern=PatternCommonNotification

### END Added by sociality postinst ###

EOF
echo "done."
fi


Change all values to whatever you need, then use the key you defined in your
app's code.
The user might need to restart parts of hildon or just reboot, but it works
:)

--
Regards,
Mohammad Abu-Garbeyyeh

On Jun 8, 2012, at 8:34 AM, "Naikel Aparicio" <naikel@gmail.com> wrote:



Not really.

Those are the banners and notes, as you can see in screenshots in
http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-informationbox.html

What I want is the notification bubble. Sadly anyway I just found
libhildon-plugins-notify-sv.so didn’t implement correctly the
org.freedesktop.Notifications notifications. Maemo will only attach the
notifications depending on the hint category to a predefined program, that
is Modest for email, Conversations for IM/chat, etc. It’s not customizable.
If you don’t set a category hint in your notification the daemon simply
ignores everything and shows a notification that is totally useless with no
sound, no LED alert, no vibration, no attachment to another widget and most
importantly: it never updates itself.

That means if you write your own email client, you can’t create
notifications that are attached to it; if you set the category
“email-message” it will always be attached to modest. When I say “attach”
is that the notification belongs to the same widget and it doesn’t appear as
a new window, it appears as if it were the same window than the application
that generated it.

Naikel

From: timop.harkonen@gmail.com
Sent: Friday, June 08, 2012 12:24 AM
To: maemo-developers@maemo.org ; Naikel Aparicio
Subject: Re: GtkWidget* handler from QWidget


The maemo5 module has the notification stuff. Check if it does what you need



http://doc.qt.nokia.com/qt-maemo/qtmaemo5.html



Timo



Naikel Aparicio kirjoitti 8.6.2012 3:27:


Question to my fellow developers:

I want to attach a Maemo native notification (those orange bubbles) to a
QWidget. Using GLIB, it’s easy; you call
notify_notification_attach_to_widget or add a hint with “attach-widget”.

The thing is in order
to do that you need the GtkWidget* handler of the window, and all I got is a
QWidget. Is there a way do it?

Thanks in advance,

Naikel Aparicio
Scorpius @ tmo


_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers


_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: GtkWidget* handler from QWidget [ In reply to ]
I don’t know if you all received this email about attaching the notification
to a child window of the application and not the main one. Again thank you
very much!

---cut-here---

I found a way. In the source of the task-navigator (hd-task-navigator.c in
hildon-desktop) says:

/*
* -- @nodest: What notifications this thumbnails is destination
for.
* Taken from the _HILDON_NOTIFICATION_THREAD
property
* of the thumbnail's client or its WM_CLASS hint.

So well that’s what I did in Qt:

#include <X11/Xlib.h>
#include <X11/Xatom.h>

(...)

QString test = “thread example”;

// Set the thread name
Atom atom = XInternAtom(QX11Info::display(),
"_HILDON_NOTIFICATION_THREAD", False);
if (atom)
{
XChangeProperty (QX11Info::display(),
winId(),
atom,
XA_STRING,
8,
PropModeReplace,
(unsigned char *)test.toUtf8().constData(),
test.toUtf8().length()
);
}

I verified the settings using xprop:

[sbox-FREMANTLE_X86: ~] > xprop -id 18874418 | grep THREAD
_HILDON_NOTIFICATION_THREAD(STRING) = “thread example”

... and now the notification attaches to the correct window if it has a hint
“message-thread” as “thread example”.

Thank you so much for your help!! It was very hard to do, and I had to read
a lot of the source code.

Naikel

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers