manabu-desktop 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|