Mercurial > octave
annotate libgui/src/qt-application.cc @ 31613:c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
* qt-application.h, qt-application.cc (qt_application::qt_application):
New constructor that accepts organization and application names and
version string. Set values in QtCoreApplication object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 08:57:06 -0500 |
parents | 796f54d4ddbf |
children | 59c9da7c43d6 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29503
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
13501 | 25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21482
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
27 # include "config.h" |
15155
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
15139
diff
changeset
|
28 #endif |
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
15139
diff
changeset
|
29 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
30 #include "main-window.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
31 #include "octave-qobject.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
32 #include "qt-application.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27405
diff
changeset
|
33 |
15368
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15209
diff
changeset
|
34 #include "lo-utils.h" |
15597
9046ee786fe1
Use octave_env instead of setenv.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15425
diff
changeset
|
35 #include "oct-env.h" |
17569
9d0992c6df30
arrange to pass signals to the GUI subprocess
John W. Eaton <jwe@octave.org>
parents:
17568
diff
changeset
|
36 #include "oct-syscalls.h" |
25275
4adeabc1bbfe
improve Ctrl-C interrupt handling in the GUI (bug #53635)
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
37 #include "signal-wrappers.h" |
15155
9e62d5a3a45e
partial cleanup of include files in gui sources
John W. Eaton <jwe@octave.org>
parents:
15139
diff
changeset
|
38 |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
39 #include "display.h" |
22088
c3823cb0ea02
eliminate unused class definition
John W. Eaton <jwe@octave.org>
parents:
21979
diff
changeset
|
40 #include "octave.h" |
22165
20e684ec108e
move system dependent code to sysdep.cc
John W. Eaton <jwe@octave.org>
parents:
22157
diff
changeset
|
41 #include "sysdep.h" |
17778
b5d58667d32d
new main program wrapper to handle giving up controlling tty
John W. Eaton <jwe@octave.org>
parents:
17748
diff
changeset
|
42 |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
43 namespace octave |
13501 | 44 { |
31613
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
45 qt_application::qt_application (const std::string& organization_name, |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
46 const std::string& application_name, |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
47 const std::string& application_version, |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
48 int argc, char **argv) |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
49 : application (argc, argv) |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
50 { |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
51 if (! organization_name.empty ()) |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
52 QCoreApplication::setOrganizationName |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
53 (QString::fromStdString (organization_name)); |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
54 |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
55 if (! application_name.empty ()) |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
56 QCoreApplication::setApplicationName |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
57 (QString::fromStdString (application_name)); |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
58 |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
59 if (! application_version.empty ()) |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
60 QCoreApplication::setApplicationVersion |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
61 (QString::fromStdString (application_version)); |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
62 |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
63 // This should probably happen early. |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
64 sysdep_init (); |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
65 } |
c6683fcc5c33
allow qt_application ctor to set Qt organization, application, and version
John W. Eaton <jwe@octave.org>
parents:
30564
diff
changeset
|
66 |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
67 qt_application::qt_application (int argc, char **argv) |
25944
ceb508ea92ee
refactor GUI main_window class
John W. Eaton <jwe@octave.org>
parents:
25938
diff
changeset
|
68 : application (argc, argv) |
23460
b605146ed2ed
do sysdep init and init global vars in app, not interpreter (bug #50880)
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
69 { |
b605146ed2ed
do sysdep init and init global vars in app, not interpreter (bug #50880)
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
70 // This should probably happen early. |
b605146ed2ed
do sysdep init and init global vars in app, not interpreter (bug #50880)
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
71 sysdep_init (); |
b605146ed2ed
do sysdep init and init global vars in app, not interpreter (bug #50880)
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
72 } |
b605146ed2ed
do sysdep init and init global vars in app, not interpreter (bug #50880)
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
73 |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
74 bool qt_application::start_gui_p (void) const |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
75 { |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
76 // Note: this function is not needed if using the experimental |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
77 // terminal widget, so return a dummy value of false in that case. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
78 |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
79 return experimental_terminal_widget () ? false : m_options.gui (); |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
80 } |
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
81 |
27197
b8c0d5ad024f
refactor and rename some qt application objects
John W. Eaton <jwe@octave.org>
parents:
27194
diff
changeset
|
82 int qt_application::execute (void) |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
83 { |
25275
4adeabc1bbfe
improve Ctrl-C interrupt handling in the GUI (bug #53635)
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
84 octave_block_interrupt_signal (); |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
85 |
22165
20e684ec108e
move system dependent code to sysdep.cc
John W. Eaton <jwe@octave.org>
parents:
22157
diff
changeset
|
86 set_application_id (); |
22153
bbaeaed0c584
set AppUserModelId for application in Windows (bug #47527)
John Donoghue
parents:
22089
diff
changeset
|
87 |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
88 // Create and show main window. |
20671
d29614aed16f
Force left-to-right alignment for the whole GUI (bug #46204)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20259
diff
changeset
|
89 |
29503
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
90 // Note: the second argument is ignored if using the new terminal |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
91 // widget. |
3bfec185c9e2
experimental command window widget with server loop
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
92 |
29153
02ee34a30351
eliminate separate cli_qobject and gui_qobject classes
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
93 base_qobject qt_interface (*this, start_gui_p ()); |
02ee34a30351
eliminate separate cli_qobject and gui_qobject classes
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
94 |
02ee34a30351
eliminate separate cli_qobject and gui_qobject classes
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
95 return qt_interface.exec (); |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22088
diff
changeset
|
96 } |
13501 | 97 } |