Re: Application.activate not emitted when opening files.

2016-06-16 Thread Victor Aurélio Santos
Thank you so much Stefan! cleared out questions.

> It is a bit hidden

Yeah! most of glib/gtk documentation can be much better.

2016-06-16 18:14 GMT-03:00 Florian Müllner :
>
>
> On Thu, Jun 16, 2016 at 9:11 PM Stefan Salewski  wrote:
>>
>> So your observed behaviour seems to be intended. When application is
>> started with arguments, example_app_open() is called, which includes
>> the code of example_app_activate(). This indicates that
>> example_app_activate() is not executed when application is started with
>> arguments, so we can assume that "activate" signal is not emitted for
>> that case. (That was not clear for me from the docs)
>
>
> It is a bit hidden in the documentation for g_application_run()[0]:
> "If there are no files listed, the application is activated via the
> "activate" signal. If there are one or more files, and
> G_APPLICATION_HANDLES_OPEN was specified then the files are opened via the
> "open" signal."
>
> [0]
> https://developer.gnome.org/gio/stable/GApplication.html#g-application-run



-- 
Victor Aurélio Santos
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Application.activate not emitted when opening files.

2016-06-16 Thread Florian Müllner
On Thu, Jun 16, 2016 at 9:11 PM Stefan Salewski  wrote:

> So your observed behaviour seems to be intended. When application is
> started with arguments, example_app_open() is called, which includes
> the code of example_app_activate(). This indicates that
> example_app_activate() is not executed when application is started with
> arguments, so we can assume that "activate" signal is not emitted for
> that case. (That was not clear for me from the docs)


It is a bit hidden in the documentation for g_application_run()[0]:
"If there are no files listed, the application is activated via the
"activate" signal. If there are one or more files, and
G_APPLICATION_HANDLES_OPEN was specified then the files are opened via the
"open" signal."

[0]
https://developer.gnome.org/gio/stable/GApplication.html#g-application-run
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Application.activate not emitted when opening files.

2016-06-16 Thread Stefan Salewski
On Thu, 2016-06-16 at 20:12 +0200, Stefan Salewski wrote:
> I will see if I can find some C code for testing...

Well, looking at the C code of example10 is already enough:

gtk+-3.20.1/examples/application10

exampleapp.c

static void
example_app_activate (GApplication *app)
{
  ExampleAppWindow *win;

  win = example_app_window_new (EXAMPLE_APP (app));
  gtk_window_present (GTK_WINDOW (win));
}

static void
example_app_open (GApplication  *app,
  GFile**files,
  gint   n_files,
  const gchar   *hint)
{
  GList *windows;
  ExampleAppWindow *win;
  int i;

  windows = gtk_application_get_windows (GTK_APPLICATION (app));
  if (windows)
win = EXAMPLE_APP_WINDOW (windows->data);
  else
win = example_app_window_new (EXAMPLE_APP (app));

  for (i = 0; i < n_files; i++)
example_app_window_open (win, files[i]);

  gtk_window_present (GTK_WINDOW (win));
}

static void
example_app_class_init (ExampleAppClass *class)
{
  G_APPLICATION_CLASS (class)->startup = example_app_startup;
  G_APPLICATION_CLASS (class)->activate = example_app_activate;
  G_APPLICATION_CLASS (class)->open = example_app_open;
}

So your observed behaviour seems to be intended. When application is
started with arguments, example_app_open() is called, which includes
the code of example_app_activate(). This indicates that
example_app_activate() is not executed when application is started with
arguments, so we can assume that "activate" signal is not emitted for
that case. (That was not clear for me from the docs)

For testing, you may download gtk+ tar file, which includes
application10. Building only this one works with these commands

cd application10
glib-compile-schemas .
glib-compile-resources exampleapp.gresource.xml --target=resources.c 
--generate-source
gcc -o main main.c resources.c exampleapp.c exampleappwin.c exampleappprefs.c 
`pkg-config --libs --cflags gtk+-3.0`

A Nim version is also available, see
https://github.com/ngtk3/nim-app
http://forum.nim-lang.org/t/2198#13675

Unfortunately there seems to exist no Vala version yet.

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Application.activate not emitted when opening files.

2016-06-16 Thread Stefan Salewski
On Thu, 2016-06-16 at 14:44 -0300, Victor Aurélio Santos wrote:
> > You may follow the example https://developer.gnome.org/gtk3/stable/
> ch01s04.html#id-1.2.3.12.5
> Look at application code, I think it's very like the example you give
> me.
> 
> > This way you are not concerned with signals that match.
> I can't understand what you mean.


Sorry, should be "that much" of course. For example, in

https://developer.gnome.org/gtk3/stable/ch01s04.html

they have

static void
example_app_class_init (ExampleAppClass *class)
{
  G_APPLICATION_CLASS (class)->activate = example_app_activate;
  G_APPLICATION_CLASS (class)->open = example_app_open;
}


So example_app_open() is called when the application is started with
arguments and example_app_activate() when started without. There is no
direct reference to any signals.

Unfortunately your example is in Vala, so we can not be sure that the
problem is not vala specific.


I will see if I can find some C code for testing...

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Application.activate not emitted when opening files.

2016-06-16 Thread Victor Aurélio Santos
> Look at application code, I think it's very like the example you give me.

Sorry, forgot the link:
https://github.com/hotvic/QSubber-gtk/blob/master/src/qsubber-application.vala

2016-06-16 14:44 GMT-03:00 Victor Aurélio Santos :
>> You may follow the example 
>> https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5
> Look at application code, I think it's very like the example you give me.
>
>> This way you are not concerned with signals that match.
> I can't understand what you mean.
>
>> I would assume that that signal is emitted ALWAYS on the primary
> instance when an activation occurs.
> What is exactly a *activation* ?
>
> You can build the application on the repository, if you run it without
> args it starts normally and _activate_ gets emitted; ie:
> ./build/src/qsubber
>
> but if you launch with args (files) _activate_ isn't emitted. i.e.
> ./build/src/qsubber /home/someone/somemovie.avi
>
> Thanks, hope you understand. my english isn't so good.
>
> 2016-06-16 10:55 GMT-03:00 Stefan Salewski :
>> On Wed, 2016-06-15 at 12:42 -0300, Victor Aurélio Santos wrote:
>>> where should i do application's
>>> basic things like creating windows, setting-up basic things etc...
>>
>> You may follow the example
>>
>> https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5
>>
>> This way you are not concerned with signals that match.
>>
>> From
>>
>> https://developer.gnome.org/gio/unstable/GApplication.html#GApplication
>> -activate
>>
>> I would assume that that signal is emitted ALWAYS on the primary
>> instance when an activation occurs.
>
>
>
> --
> Victor Aurélio Santos



-- 
Victor Aurélio Santos
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Application.activate not emitted when opening files.

2016-06-16 Thread Victor Aurélio Santos
> You may follow the example 
> https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5
Look at application code, I think it's very like the example you give me.

> This way you are not concerned with signals that match.
I can't understand what you mean.

> I would assume that that signal is emitted ALWAYS on the primary
instance when an activation occurs.
What is exactly a *activation* ?

You can build the application on the repository, if you run it without
args it starts normally and _activate_ gets emitted; ie:
./build/src/qsubber

but if you launch with args (files) _activate_ isn't emitted. i.e.
./build/src/qsubber /home/someone/somemovie.avi

Thanks, hope you understand. my english isn't so good.

2016-06-16 10:55 GMT-03:00 Stefan Salewski :
> On Wed, 2016-06-15 at 12:42 -0300, Victor Aurélio Santos wrote:
>> where should i do application's
>> basic things like creating windows, setting-up basic things etc...
>
> You may follow the example
>
> https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5
>
> This way you are not concerned with signals that match.
>
> From
>
> https://developer.gnome.org/gio/unstable/GApplication.html#GApplication
> -activate
>
> I would assume that that signal is emitted ALWAYS on the primary
> instance when an activation occurs.



-- 
Victor Aurélio Santos
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Application.activate not emitted when opening files.

2016-06-16 Thread Stefan Salewski
On Wed, 2016-06-15 at 12:42 -0300, Victor Aurélio Santos wrote:
> where should i do application's
> basic things like creating windows, setting-up basic things etc...

You may follow the example

https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12.5

This way you are not concerned with signals that match.

From

https://developer.gnome.org/gio/unstable/GApplication.html#GApplication
-activate

I would assume that that signal is emitted ALWAYS on the primary
instance when an activation occurs.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Application.activate not emitted when opening files.

2016-06-15 Thread Victor Aurélio Santos
A Application with flags = GLib.ApplicationFlags.HANDLES_OPEN when
launched without any files it does the normal start, and `activate`
signal is emitted, but when opening files the `activate` signal didn't
gets emitted ? even when it's the first instance of application.

Is this the default behavior ? or am i doing something wrong?
If it's the default behavior, how and where should i do application's
basic things like creating windows, setting-up basic things etc...

-- 
Victor Aurélio Santos
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list