manabu-desktop 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/layouts/img/gaku-logo-32.png +0 -0
- data/layouts/login.glade +40 -1
- data/layouts/server_listbox.glade +19 -4
- data/layouts/server_menu_item.glade +51 -0
- data/lib/screens/components/server_list_item.rb +61 -2
- data/lib/screens/login.rb +12 -2
- data/lib/screens/main_menu.rb +20 -10
- data/lib/sessions.rb +1 -0
- data/manabu-desktop.gemspec +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d91d62eee4add455b651a4caa9a294a7855d33d0537aa001b41bad1d12496280
|
4
|
+
data.tar.gz: 929b93531147e3d3e2fe5b4697ce133462089483f5a58d0a081c574c515ed02a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e4c7cd9a9c13f46e52c535f920edad1cb46c9468e5a8f291d2e722cbfb31b9b592e5b6a71651dc8919eb0e39bc7b253b38c657e703909bada9168e5838eefbc
|
7
|
+
data.tar.gz: 4124a70195874a8c629d58e642639d86900fc847df7d093c68fc4466377de480e41767eaf70822dd5da848e0377f833d80e0b00fa8555bab5eefcb4c62566876
|
Binary file
|
data/layouts/login.glade
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!-- Generated with glade 3.
|
2
|
+
<!-- Generated with glade 3.22.1 -->
|
3
3
|
<interface>
|
4
4
|
<requires lib="gtk+" version="3.20"/>
|
5
5
|
<object class="GtkImage" id="engage.Image">
|
@@ -9,6 +9,9 @@
|
|
9
9
|
</object>
|
10
10
|
<object class="GtkWindow" id="login.Window">
|
11
11
|
<property name="can_focus">False</property>
|
12
|
+
<child>
|
13
|
+
<placeholder/>
|
14
|
+
</child>
|
12
15
|
<child>
|
13
16
|
<object class="GtkBox" id="login.Box">
|
14
17
|
<property name="visible">True</property>
|
@@ -197,6 +200,42 @@
|
|
197
200
|
<property name="position">5</property>
|
198
201
|
</packing>
|
199
202
|
</child>
|
203
|
+
<child>
|
204
|
+
<object class="GtkBox" id="toolbox.Box">
|
205
|
+
<property name="visible">True</property>
|
206
|
+
<property name="can_focus">False</property>
|
207
|
+
<property name="homogeneous">True</property>
|
208
|
+
<child>
|
209
|
+
<object class="GtkLabel" id="toolbox.Label">
|
210
|
+
<property name="visible">True</property>
|
211
|
+
<property name="can_focus">False</property>
|
212
|
+
<property name="label" translatable="yes">toolbox</property>
|
213
|
+
</object>
|
214
|
+
<packing>
|
215
|
+
<property name="expand">False</property>
|
216
|
+
<property name="fill">True</property>
|
217
|
+
<property name="position">0</property>
|
218
|
+
</packing>
|
219
|
+
</child>
|
220
|
+
<child>
|
221
|
+
<object class="GtkSwitch" id="toolbox.Switch">
|
222
|
+
<property name="visible">True</property>
|
223
|
+
<property name="can_focus">True</property>
|
224
|
+
<property name="active">True</property>
|
225
|
+
</object>
|
226
|
+
<packing>
|
227
|
+
<property name="expand">False</property>
|
228
|
+
<property name="fill">True</property>
|
229
|
+
<property name="position">1</property>
|
230
|
+
</packing>
|
231
|
+
</child>
|
232
|
+
</object>
|
233
|
+
<packing>
|
234
|
+
<property name="expand">False</property>
|
235
|
+
<property name="fill">True</property>
|
236
|
+
<property name="position">6</property>
|
237
|
+
</packing>
|
238
|
+
</child>
|
200
239
|
</object>
|
201
240
|
</child>
|
202
241
|
</object>
|
@@ -2,6 +2,11 @@
|
|
2
2
|
<!-- Generated with glade 3.22.1 -->
|
3
3
|
<interface>
|
4
4
|
<requires lib="gtk+" version="3.20"/>
|
5
|
+
<object class="GtkImage" id="server_menu.Image">
|
6
|
+
<property name="visible">True</property>
|
7
|
+
<property name="can_focus">False</property>
|
8
|
+
<property name="pixbuf">img/gaku-logo-32.png</property>
|
9
|
+
</object>
|
5
10
|
<object class="GtkListBoxRow" id="server_instance.ListBoxRow">
|
6
11
|
<property name="visible">True</property>
|
7
12
|
<property name="can_focus">True</property>
|
@@ -10,13 +15,11 @@
|
|
10
15
|
<property name="visible">True</property>
|
11
16
|
<property name="can_focus">False</property>
|
12
17
|
<child>
|
13
|
-
<object class="
|
18
|
+
<object class="GtkButton" id="server_menu.Button">
|
14
19
|
<property name="visible">True</property>
|
15
20
|
<property name="can_focus">True</property>
|
16
21
|
<property name="receives_default">True</property>
|
17
|
-
<
|
18
|
-
<placeholder/>
|
19
|
-
</child>
|
22
|
+
<property name="image">server_menu.Image</property>
|
20
23
|
</object>
|
21
24
|
<packing>
|
22
25
|
<property name="expand">False</property>
|
@@ -52,4 +55,16 @@
|
|
52
55
|
</object>
|
53
56
|
</child>
|
54
57
|
</object>
|
58
|
+
<object class="GtkPopover" id="server_menu.Popover">
|
59
|
+
<property name="can_focus">False</property>
|
60
|
+
<property name="relative_to">server_menu.Button</property>
|
61
|
+
<property name="position">left</property>
|
62
|
+
<property name="constrain_to">none</property>
|
63
|
+
<child>
|
64
|
+
<object class="GtkListBox" id="server_menu.ListBox">
|
65
|
+
<property name="visible">True</property>
|
66
|
+
<property name="can_focus">False</property>
|
67
|
+
</object>
|
68
|
+
</child>
|
69
|
+
</object>
|
55
70
|
</interface>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.22.1 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.20"/>
|
5
|
+
<object class="GtkListBoxRow" id="server_menu_item.ListBoxRow">
|
6
|
+
<property name="visible">True</property>
|
7
|
+
<property name="can_focus">True</property>
|
8
|
+
<child>
|
9
|
+
<object class="GtkBox">
|
10
|
+
<property name="visible">True</property>
|
11
|
+
<property name="can_focus">False</property>
|
12
|
+
<child>
|
13
|
+
<object class="GtkImage" id="server_menu_item.Image">
|
14
|
+
<property name="visible">True</property>
|
15
|
+
<property name="can_focus">False</property>
|
16
|
+
<property name="stock">gtk-missing-image</property>
|
17
|
+
</object>
|
18
|
+
<packing>
|
19
|
+
<property name="expand">False</property>
|
20
|
+
<property name="fill">True</property>
|
21
|
+
<property name="position">0</property>
|
22
|
+
</packing>
|
23
|
+
</child>
|
24
|
+
<child>
|
25
|
+
<object class="GtkSeparator">
|
26
|
+
<property name="visible">True</property>
|
27
|
+
<property name="can_focus">False</property>
|
28
|
+
<property name="margin_right">2</property>
|
29
|
+
</object>
|
30
|
+
<packing>
|
31
|
+
<property name="expand">False</property>
|
32
|
+
<property name="fill">True</property>
|
33
|
+
<property name="position">1</property>
|
34
|
+
</packing>
|
35
|
+
</child>
|
36
|
+
<child>
|
37
|
+
<object class="GtkLabel" id="server_menu_item.Label">
|
38
|
+
<property name="visible">True</property>
|
39
|
+
<property name="can_focus">False</property>
|
40
|
+
<property name="label" translatable="yes">label</property>
|
41
|
+
</object>
|
42
|
+
<packing>
|
43
|
+
<property name="expand">False</property>
|
44
|
+
<property name="fill">True</property>
|
45
|
+
<property name="position">2</property>
|
46
|
+
</packing>
|
47
|
+
</child>
|
48
|
+
</object>
|
49
|
+
</child>
|
50
|
+
</object>
|
51
|
+
</interface>
|
@@ -4,9 +4,10 @@ module ManabuDesktop
|
|
4
4
|
module Screens
|
5
5
|
module Components
|
6
6
|
class ServerListItem
|
7
|
-
attr_reader :user, :server, :port, :list_box_row, :label
|
7
|
+
attr_reader :client, :user, :server, :port, :list_box_row, :label
|
8
8
|
|
9
|
-
def initialize(user, server, port = 80)
|
9
|
+
def initialize(client, user, server, port = 80)
|
10
|
+
@client = client
|
10
11
|
@user = user
|
11
12
|
@server = server
|
12
13
|
@port = port
|
@@ -20,8 +21,66 @@ module ManabuDesktop
|
|
20
21
|
@list_box_row = sib_builder.get_object('server_instance.ListBoxRow')
|
21
22
|
@label = sib_builder.get_object('server_id.Label')
|
22
23
|
@label.set_label("#{@user}@#{@server}:#{@port}")
|
24
|
+
@menu_button = sib_builder.get_object('server_menu.Button')
|
25
|
+
@menu_popover = sib_builder.get_object('server_menu.Popover')
|
26
|
+
_populate_menu(sib_builder)
|
23
27
|
@list_box_row.show_all()
|
24
28
|
end
|
29
|
+
|
30
|
+
def _populate_menu(builder)
|
31
|
+
list_box = builder.get_object('server_menu.ListBox')
|
32
|
+
list_box.add(_build_ability_menu_lbr(:Toolbox))
|
33
|
+
list_box.add(_build_ability_menu_lbr(:Roster))
|
34
|
+
list_box.add(_build_ability_menu_lbr(:Courses))
|
35
|
+
list_box.add(_build_ability_menu_lbr(:Exams))
|
36
|
+
list_box.add(_build_ability_menu_lbr(:Administration))
|
37
|
+
list_box.show_all()
|
38
|
+
|
39
|
+
@menu_button.signal_connect 'clicked' do |button|
|
40
|
+
ManabuDesktop::Screens.Toolbox.new(@client)
|
41
|
+
@menu_popover.visible = true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def _build_ability_menu_lbr(ability)
|
46
|
+
builder = Gtk::Builder.new()
|
47
|
+
builder.add_from_file("#{__dir__}/../../../layouts/server_menu_item.glade")
|
48
|
+
menu_item = builder.get_object('server_menu_item.ListBoxRow')
|
49
|
+
# TODO find the *actual* way to git children by ID
|
50
|
+
box = menu_item.children[0]
|
51
|
+
box.children[0].set_pixbuf(_get_ability_icon(ability))
|
52
|
+
box.children[2].label = I18n.t("g.#{ability.to_s}")
|
53
|
+
#menu_item.ability = ability
|
54
|
+
#menu_item.signal_connect 'set-focus-child' do |item|
|
55
|
+
# ManabuDesktop::Screens.const_get(ability).new(@client)
|
56
|
+
#end
|
57
|
+
menu_item
|
58
|
+
end
|
59
|
+
|
60
|
+
def _get_ability_icon(ability)
|
61
|
+
case ability
|
62
|
+
when :Toolbox
|
63
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
64
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:hammer_wrench].paths[:png][:px16])
|
65
|
+
when :Roster
|
66
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
67
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:student].paths[:png][:px16])
|
68
|
+
when :Courses
|
69
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
70
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:notebook].paths[:png][:px16])
|
71
|
+
when :Exams
|
72
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
73
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:white_check_mark].paths[:png][:px16])
|
74
|
+
when :Administration
|
75
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
76
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:wrench].paths[:png][:px16])
|
77
|
+
else
|
78
|
+
pixbuf = GdkPixbuf::Pixbuf.new(
|
79
|
+
file: ManabuDesktop::Tools.emojidex.emoji[:question].paths[:png][:px16])
|
80
|
+
end
|
81
|
+
|
82
|
+
pixbuf
|
83
|
+
end
|
25
84
|
end
|
26
85
|
end
|
27
86
|
end
|
data/lib/screens/login.rb
CHANGED
@@ -19,9 +19,11 @@ module ManabuDesktop
|
|
19
19
|
@window.resizable = false
|
20
20
|
|
21
21
|
@builder.get_object('server.Label').set_label(I18n.t('login.server'))
|
22
|
-
@builder.get_object('secure.Label').set_label(I18n.t('login.secure'))
|
23
22
|
@server_comboBoxText = @builder.get_object('server.ComboBoxText')
|
23
|
+
|
24
|
+
@builder.get_object('secure.Label').set_label(I18n.t('login.secure'))
|
24
25
|
@server_secure_switch = @builder.get_object('secure.Switch')
|
26
|
+
|
25
27
|
@cache_info[:servers].each{ |server| @server_comboBoxText.append_text(server[:addr])}
|
26
28
|
if (@cache_info[:servers].length > 0)
|
27
29
|
@server_comboBoxText.set_active(0)
|
@@ -36,6 +38,9 @@ module ManabuDesktop
|
|
36
38
|
@builder.get_object('password.Label').set_label(I18n.t('login.password'))
|
37
39
|
@password_entry = @builder.get_object('password.Entry')
|
38
40
|
|
41
|
+
@builder.get_object('toolbox.Label').set_label(I18n.t('login.toolbox'))
|
42
|
+
@open_toolbox_switch = @builder.get_object('toolbox.Switch')
|
43
|
+
|
39
44
|
engage_button = @builder.get_object('engage.Button')
|
40
45
|
engage_button.set_label(I18n.t('login.engage'))
|
41
46
|
engage_button.signal_connect('clicked') {
|
@@ -60,6 +65,7 @@ module ManabuDesktop
|
|
60
65
|
|
61
66
|
end
|
62
67
|
|
68
|
+
# Attempt to engage a connection with the given prarameters
|
63
69
|
def _engage(server, secure, user, password)
|
64
70
|
addr = /^[^:|^\/]*[^:|^\/]/.match(server) # server part
|
65
71
|
port = /[^:]\d[^\D]*/.match(server).to_s.to_i # port part
|
@@ -71,7 +77,11 @@ module ManabuDesktop
|
|
71
77
|
force_secure_connection: secure)
|
72
78
|
if @client.status == :connected
|
73
79
|
ManabuDesktop::Sessions.add_session(@client)
|
74
|
-
|
80
|
+
if @open_toolbox_switch.active?
|
81
|
+
_open_toolbox(@client)
|
82
|
+
else
|
83
|
+
@window.destroy
|
84
|
+
end
|
75
85
|
end
|
76
86
|
end
|
77
87
|
|
data/lib/screens/main_menu.rb
CHANGED
@@ -9,15 +9,27 @@ STATUS_ICON_SIZE = 16
|
|
9
9
|
module ManabuDesktop
|
10
10
|
module Screens
|
11
11
|
class MainMenu < ManabuDesktop::Screens::Base
|
12
|
+
attr_accessor :connection_entries
|
13
|
+
|
14
|
+
def add_connection_entry(session_handle)
|
15
|
+
sli = _generate_server_list_item(session_handle,
|
16
|
+
session_handle.auth.username,
|
17
|
+
session_handle.auth.host,
|
18
|
+
session_handle.auth.port)
|
19
|
+
@connections_list.add(sli)
|
20
|
+
@connections_list.show_all()
|
21
|
+
end
|
12
22
|
|
13
|
-
def _generate_server_list_item(user, server, port = 80)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
23
|
+
def _generate_server_list_item(client, user, server, port = 80)
|
24
|
+
sli = ManabuDesktop::Screens::Components::ServerListItem.new(client, user, server, port)
|
25
|
+
@connections_list.add(sli.list_box_row)
|
26
|
+
#sib_builder = Gtk::Builder.new()
|
27
|
+
#sib_builder.add_from_file("#{__dir__}/../../layouts/server_listbox.glade")
|
28
|
+
#lbr = sib_builder.get_object('server_instance.ListBoxRow')
|
29
|
+
#label = sib_builder.get_object('server_id.Label')
|
30
|
+
#label.set_label("#{user}@#{server}:#{port}")
|
31
|
+
#lbr.show_all()
|
32
|
+
#lbr
|
21
33
|
end
|
22
34
|
|
23
35
|
def initialize()
|
@@ -52,8 +64,6 @@ module ManabuDesktop
|
|
52
64
|
# Connection list
|
53
65
|
@connections_list = @builder.get_object('connections.ListBox')
|
54
66
|
# TODO: delete lines here after implementation [reference]
|
55
|
-
#sli = ManabuDesktop::Screens::Components::ServerListItem.new("a", "b")
|
56
|
-
#@connections_list.add(sli.list_box_row)
|
57
67
|
#sli = ManabuDesktop::Screens::Components::ServerListItem.new("c", "d")
|
58
68
|
#@connections_list.add(sli.list_box_row)
|
59
69
|
#@connections_list.add(ServerInstanceBox.new("c", "d"))
|
data/lib/sessions.rb
CHANGED
@@ -16,6 +16,7 @@ module ManabuDesktop
|
|
16
16
|
@@active_sessions << session_handle
|
17
17
|
main_menu = ManabuDesktop::Windows.get_main_menu()
|
18
18
|
main_menu.set_connections_status(session_count) unless main_menu == nil
|
19
|
+
main_menu.add_connection_entry(session_handle)
|
19
20
|
end
|
20
21
|
|
21
22
|
def self.remove_session(session_identifier)
|
data/manabu-desktop.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manabu-desktop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rei Kagetsuki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: manabu
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- layouts/img/black_heart.png
|
93
93
|
- layouts/img/blue_circle.png
|
94
94
|
- layouts/img/gaku-logo-128.png
|
95
|
+
- layouts/img/gaku-logo-32.png
|
95
96
|
- layouts/img/gaku-logo.png
|
96
97
|
- layouts/img/heart.png
|
97
98
|
- layouts/img/manabu-kun-128.png
|
@@ -108,6 +109,7 @@ files:
|
|
108
109
|
- layouts/main_menu.glade
|
109
110
|
- layouts/roster.glade
|
110
111
|
- layouts/server_listbox.glade
|
112
|
+
- layouts/server_menu_item.glade
|
111
113
|
- layouts/student_registration.glade
|
112
114
|
- layouts/toolbox.glade
|
113
115
|
- lib/screens/base.rb
|
@@ -144,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
146
|
version: '0'
|
145
147
|
requirements: []
|
146
148
|
rubyforge_project:
|
147
|
-
rubygems_version: 2.7.
|
149
|
+
rubygems_version: 2.7.7
|
148
150
|
signing_key:
|
149
151
|
specification_version: 4
|
150
152
|
summary: GTK based GUI client for Manabu/GAKU Engine
|