annotate libgui/graphics/annotation-dialog.cc @ 23220:092078913d54

maint: Merge stable to default.
author John W. Eaton <jwe@octave.org>
date Wed, 22 Feb 2017 12:58:07 -0500
parents ef4d915df748 3ac9f9ecfae5
children c9fab0bc983e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
1 /*
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
2
23219
3ac9f9ecfae5 maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents: 23083
diff changeset
3 Copyright (C) 2016-2017 John Donoghue
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
4
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
5 This file is part of Octave.
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
6
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
8 under the terms of the GNU General Public License as published by
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
9 the Free Software Foundation; either version 3 of the License, or
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
10 (at your option) any later version.
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
11
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
12 Octave is distributed in the hope that it will be useful, but
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
13 WITHOUT ANY WARRANTY; without even the implied warranty of
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22411
diff changeset
15 GNU General Public License for more details.
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
16
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, see
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
19 <http://www.gnu.org/licenses/>.
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
20
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
21 */
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
22
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21568
diff changeset
23 #if defined (HAVE_CONFIG_H)
21301
40de9f8f23a6 Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents: 21203
diff changeset
24 # include "config.h"
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
25 #endif
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
26
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
27 #include "annotation-dialog.h"
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
28 #include "ui-annotation-dialog.h"
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
29
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
30 #include "QtHandlesUtils.h"
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
31
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
32 #include "resource-manager.h"
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
33
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
34 #include <QColorDialog>
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
35 #include <QPushButton>
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
36 #include <QPalette>
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
37
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
38 using namespace QtHandles;
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
39
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
40 annotation_dialog::annotation_dialog (QWidget *p, const octave_value_list &pr):
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
41 QDialog (p), ui (new Ui::annotation_dialog)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
42 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
43 props = pr;
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
44
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
45 init ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
46 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
47
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
48 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
49 annotation_dialog::init ()
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
50 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
51 ui->setupUi (this);
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
52
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
53 QSettings *settings = resource_manager::get_settings ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
54
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
55 // restore last geometry
20246
6fe746def1aa Also load settings and translations in --no-gui mode (bugs #44222 and #45199)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 20181
diff changeset
56 if (settings)
23070
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
57 restoreGeometry (settings->value ("annotation/geometry").toByteArray ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
58
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
59 // connect signals
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
60 connect (ui->button_box, SIGNAL (clicked (QAbstractButton *)),
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
61 this, SLOT (button_clicked (QAbstractButton *)));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
62
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
63 connect (ui->edit_string, SIGNAL (textChanged (const QString&)),
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
64 this, SLOT (edit_string_changed (const QString&)));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
65
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
66 connect (ui->btn_color, SIGNAL (clicked ()),
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
67 this, SLOT (prompt_for_color ()));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
68
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
69 connect (ui->btn_background_color, SIGNAL (clicked ()),
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
70 this, SLOT (prompt_for_color ()));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
71
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
72 connect (ui->btn_edge_color, SIGNAL (clicked ()),
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
73 this, SLOT (prompt_for_color ()));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
74
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
75 // set gui element to default values
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
76 ui->cb_fit_box_to_text->setChecked (true);
23070
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
77 ui->cb_horz_align->setCurrentIndex (ui->cb_horz_align->findText ("left"));
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
78 ui->cb_vert_align->setCurrentIndex (ui->cb_vert_align->findText ("middle"));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
79
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
80 // set gui elements to any values from input properties
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
81 set_gui_props ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
82 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
83
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
84 annotation_dialog::~annotation_dialog ()
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
85 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
86 delete ui;
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
87 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
88
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
89 // internal slots
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
90
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
91 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
92 annotation_dialog::button_clicked (QAbstractButton *button)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
93 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
94 QDialogButtonBox::ButtonRole button_role
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
95 = ui->button_box->buttonRole (button);
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
96
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
97 QSettings *settings = resource_manager::get_settings ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
98
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
99 // save position
20246
6fe746def1aa Also load settings and translations in --no-gui mode (bugs #44222 and #45199)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 20181
diff changeset
100 if (settings)
6fe746def1aa Also load settings and translations in --no-gui mode (bugs #44222 and #45199)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 20181
diff changeset
101 settings->setValue ("annotation/geometry",saveGeometry ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
102
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
103 if (button_role == QDialogButtonBox::ApplyRole
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
104 || button_role == QDialogButtonBox::AcceptRole)
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
105 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
106 get_gui_props ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
107 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
108
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
109 if (button_role == QDialogButtonBox::RejectRole
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
110 || button_role == QDialogButtonBox::AcceptRole)
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
111 close ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
112 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
113
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
114 octave_value_list
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
115 annotation_dialog::get_properties () const
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
116 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
117 return props;
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
118 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
119
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
120 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
121 annotation_dialog::get_gui_props ()
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
122 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
123 // set props to the values of the gui
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
124 props = octave_value_list ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
125
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
126 Matrix position(1,4);
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
127 position(0) = ui->sb_x->value ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
128 position(1) = ui->sb_y->value ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
129 position(2) = ui->sb_width->value ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
130 position(3) = ui->sb_height->value ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
131 props.append (ovl ("textbox", position));
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
132
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
133 props.append (ovl ("string", ui->edit_string->text ().toStdString ()));
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
134 props.append (ovl ("fitboxtotext",
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
135 ui->cb_fit_box_to_text->isChecked () ? "on" : "off"));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
136
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
137 // FIXME: only "normalized" units is selectable, change the code below
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
138 // once more units are added in the UI.
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
139 std::string tmpstr;
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
140 props.append (ovl ("units", "normalized"));
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
141
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
142 tmpstr = (ui->cb_horz_align->currentIndex () == 0 ? "left" :
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
143 (ui->cb_horz_align->currentIndex () == 1 ? "center" : "right"));
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
144 props.append (ovl ("horizontalalignment", tmpstr));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
145
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
146 tmpstr = (ui->cb_vert_align->currentIndex () == 0 ? "top" :
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
147 (ui->cb_horz_align->currentIndex () == 1 ? "middle" : "bottom"));
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
148 props.append (ovl ("verticalalignment", tmpstr));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
149
23070
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
150 tmpstr = ui->cb_font_name->currentText ().toStdString ();
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
151 props.append (ovl ("fontname", tmpstr));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
152
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
153 props.append (ovl ("fontsize", ui->sb_font_size->value ()));
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
154 props.append (ovl ("fontweight",
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
155 ui->cb_font_bold->isChecked () ? "bold" : "normal"));
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
156 props.append (ovl ("fontangle",
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
157 ui->cb_font_italic->isChecked () ? "italic" : "normal"));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
158 props.append (ovl ("color", Utils::toRgb (ui->btn_color->palette ().
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
159 color (QPalette::Button))));
22399
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
160
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
161 // FIXME: only "none" linestyle is selectable, change the code bellow
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
162 // once more linestyles are added in the UI.
f0836b5ec628 Allow translation of all the annotation dialog strings (bug #48940)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22323
diff changeset
163 props.append (ovl ("linestyle", "none"));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
164 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
165
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
166 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
167 annotation_dialog::set_gui_props ()
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
168 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
169 // set the gui to the values from the props
21568
3d60ed163b70 maint: Eliminate bad spacing around '='.
Rik <rik@octave.org>
parents: 21301
diff changeset
170 octave_idx_type len = props.length ();
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
171
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
172 for (int i=0; i<len/2; i++)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
173 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
174 std::string name = props(i*2).string_value ();
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
175
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
176 if (name == "textbox")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
177 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
178 Matrix position = props(2*i +1).matrix_value ();
23070
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
179 int nels = position.numel ();
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
180 if (nels >= 2)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
181 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
182 ui->sb_x->setValue (position(0));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
183 ui->sb_y->setValue (position(1));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
184 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
185 else
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
186 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
187 ui->sb_x->setValue (0);
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
188 ui->sb_y->setValue (0);
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
189 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
190 if (nels >= 4)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
191 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
192 ui->sb_width->setValue (position(2));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
193 ui->sb_height->setValue (position(3));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
194 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
195 else
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
196 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
197 ui->sb_width->setValue (position(2));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
198 ui->sb_height->setValue (position(3));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
199 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
200 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
201 else if (name == "string")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
202 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
203 // FIXME: handle if is array of strings ?
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
204 ui->edit_string->setText (props(2*i +1).string_value ().c_str ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
205 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
206 else if (name == "fitboxtotext")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
207 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
208 ui->cb_fit_box_to_text->setChecked (props(1*i +1).string_value () == "on");
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
209 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
210 else if (name == "units")
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
211 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
212 ui->cb_units->setCurrentIndex (ui->cb_units->findText (props(
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
213 1*i +1).string_value ().c_str ()));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
214 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
215 else if (name == "horizontalalignment")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
216 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
217 ui->cb_horz_align->setCurrentIndex (ui->cb_horz_align->findText (props(
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
218 1*i +1).string_value ().c_str ()));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
219 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
220 else if (name == "verticalalignment")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
221 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
222 ui->cb_vert_align->setCurrentIndex (ui->cb_vert_align->findText (props(
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
223 1*i +1).string_value ().c_str ()));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
224 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
225 else if (name == "fontname")
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
226 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
227 ui->cb_vert_align->setCurrentIndex (ui->cb_font_name->findText (props(
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
228 1*i +1).string_value ().c_str ()));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
229 }
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
230 else if (name == "fontsize")
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
231 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
232 ui->sb_font_size->setValue (props(1*i +1).float_value ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
233 }
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
234 else if (name == "fontweight")
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
235 {
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
236 ui->cb_font_bold->setChecked (props(1*i +1).string_value () == "bold");
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
237 }
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
238 else if (name == "fontangle")
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
239 {
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
240 ui->cb_font_italic->setChecked (props(1*i +1).string_value () == "italic");
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
241 }
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
242 else if (name == "color")
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
243 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
244 QColor color;
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
245 if (props(1*i +1).is_matrix_type ())
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
246 color = Utils::fromRgb (props(2*i +1).matrix_value ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
247 else
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
248 color.setNamedColor (props(2*i +1).string_value ().c_str ());
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
249
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
250 if (color.isValid ())
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
251 ui->btn_color->setPalette (QPalette (color));
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
252 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
253
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
254 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
255
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
256 edit_string_changed (ui->edit_string->text ());
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
257 }
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
258
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
259 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
260 annotation_dialog::edit_string_changed (const QString &str)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
261 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
262 ui->button_box->button (QDialogButtonBox::Ok)->setEnabled (str.length () > 0);
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
263 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
264
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
265 void
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
266 annotation_dialog::prompt_for_color ()
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
267 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
268 QWidget *widg = dynamic_cast<QWidget*> (sender ());
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
269 if (widg)
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
270 {
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
271 QColor color = widg->palette ().color (QPalette::Button);
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
272
23070
bef714f45999 maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents: 22755
diff changeset
273 color = QColorDialog::getColor (color, this);
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
274
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
275 if (color.isValid ())
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
276 {
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
277 widg->setPalette (QPalette (color));
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
278
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
279 QString css = QString ("background-color: %1; border: 1px solid %2;")
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
280 .arg (color.name ())
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
281 .arg ("#000000");
20181
aa36fb998a4d maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents: 20109
diff changeset
282
22411
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
283 widg->setStyleSheet (css);
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
284 widg->update ();
c69805d1fa64 maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents: 22399
diff changeset
285 }
20095
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
286 }
c164cfc24bdd QtHandles: add annotations dialog
John Donoghue <john.donoghue@ieee.org>
parents:
diff changeset
287 }