Splitted sidebar's list into two and separate CVars window.
Splitted sidebar's list into two separate lists - one for general server's info (hostname, players, etc.) and one for players list. Also, moved CVars list to separate window which can be shown by clicking approriate button under player's list.
This commit is contained in:
parent
280c65f116
commit
bd04870aa3
@ -150,6 +150,9 @@ ln -s ../../../Framework .
|
|||||||
cd ../../../MacOS
|
cd ../../../MacOS
|
||||||
GDK_PIXBUF_MODULE_FILE="../lib/gdk-pixbuf-2.0/loaders.cache" GDK_PIXBUF_MODULEDIR="../lib/gdk-pixbuf-2.0/2.10.0/loaders/" GTK_EXE_PREFIX="../lib" GTK_PATH="../Framework" ./gdk-pixbuf-query-loaders > ../lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
GDK_PIXBUF_MODULE_FILE="../lib/gdk-pixbuf-2.0/loaders.cache" GDK_PIXBUF_MODULEDIR="../lib/gdk-pixbuf-2.0/2.10.0/loaders/" GTK_EXE_PREFIX="../lib" GTK_PATH="../Framework" ./gdk-pixbuf-query-loaders > ../lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
||||||
|
|
||||||
|
echo "Copying icon theme..."
|
||||||
|
|
||||||
|
|
||||||
echo "Finishing..."
|
echo "Finishing..."
|
||||||
|
|
||||||
echo "URTrator is ready! Copy URTrator.app bundle to Applications and launch it!"
|
echo "URTrator is ready! Copy URTrator.app bundle to Applications and launch it!"
|
||||||
|
@ -68,8 +68,10 @@ type MainWindow struct {
|
|||||||
fav_servers_hide_private *gtk.CheckButton
|
fav_servers_hide_private *gtk.CheckButton
|
||||||
// Game launch button.
|
// Game launch button.
|
||||||
launch_button *gtk.Button
|
launch_button *gtk.Button
|
||||||
// Server's information.
|
// Server's main information.
|
||||||
server_info *gtk.TreeView
|
server_info *gtk.TreeView
|
||||||
|
// Players information.
|
||||||
|
players_info *gtk.TreeView
|
||||||
// Quick connect: server address
|
// Quick connect: server address
|
||||||
qc_server_address *gtk.Entry
|
qc_server_address *gtk.Entry
|
||||||
// Quick connect: password
|
// Quick connect: password
|
||||||
@ -92,9 +94,12 @@ type MainWindow struct {
|
|||||||
fav_servers_store *gtk.ListStore
|
fav_servers_store *gtk.ListStore
|
||||||
// Server's information store.
|
// Server's information store.
|
||||||
server_info_store *gtk.ListStore
|
server_info_store *gtk.ListStore
|
||||||
|
// Players information store.
|
||||||
|
players_info_store *gtk.ListStore
|
||||||
|
|
||||||
// Dialogs.
|
// Dialogs.
|
||||||
options_dialog *OptionsDialog
|
options_dialog *OptionsDialog
|
||||||
|
server_cvars_dialog *ServerCVarsDialog
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
// Old profiles count.
|
// Old profiles count.
|
||||||
@ -568,9 +573,25 @@ func (m *MainWindow) showHide() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *MainWindow) showServerCVars() {
|
||||||
|
current_tab := m.tab_widget.GetTabLabelText(m.tab_widget.GetNthPage(m.tab_widget.GetCurrentPage()))
|
||||||
|
if m.use_other_servers_tab {
|
||||||
|
if strings.Contains(current_tab, "Servers") {
|
||||||
|
current_tab = "Favorites"
|
||||||
|
} else if strings.Contains(current_tab, "Favorites") {
|
||||||
|
current_tab = "Servers"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
srv_address := m.getIpFromServersList(current_tab)
|
||||||
|
if len(srv_address) > 0 {
|
||||||
|
m.server_cvars_dialog.Initialize(m.window, srv_address)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (m *MainWindow) showShortServerInformation() {
|
func (m *MainWindow) showShortServerInformation() {
|
||||||
fmt.Println("Server selection changed, updating server's information widget...")
|
fmt.Println("Server selection changed, updating server's information widget...")
|
||||||
m.server_info_store.Clear()
|
m.server_info_store.Clear()
|
||||||
|
m.players_info_store.Clear()
|
||||||
current_tab := m.tab_widget.GetTabLabelText(m.tab_widget.GetNthPage(m.tab_widget.GetCurrentPage()))
|
current_tab := m.tab_widget.GetTabLabelText(m.tab_widget.GetNthPage(m.tab_widget.GetCurrentPage()))
|
||||||
if m.use_other_servers_tab {
|
if m.use_other_servers_tab {
|
||||||
if strings.Contains(current_tab, "Servers") {
|
if strings.Contains(current_tab, "Servers") {
|
||||||
@ -642,15 +663,6 @@ func (m *MainWindow) showShortServerInformation() {
|
|||||||
}
|
}
|
||||||
m.server_info_store.SetValue(iter, 1, passworded_status)
|
m.server_info_store.SetValue(iter, 1, passworded_status)
|
||||||
|
|
||||||
// Just a separator.
|
|
||||||
iter = new(gtk.TreeIter)
|
|
||||||
m.server_info_store.Append(iter)
|
|
||||||
|
|
||||||
// Players information
|
|
||||||
iter = new(gtk.TreeIter)
|
|
||||||
m.server_info_store.Append(iter)
|
|
||||||
m.server_info_store.SetValue(iter, 0, "<markup><span font_weight=\"bold\">PLAYERS</span></markup>")
|
|
||||||
|
|
||||||
// Sorting keys of map.
|
// Sorting keys of map.
|
||||||
players_map_keys := make([]string, 0, len(parsed_players_info))
|
players_map_keys := make([]string, 0, len(parsed_players_info))
|
||||||
for k := range parsed_players_info {
|
for k := range parsed_players_info {
|
||||||
@ -664,11 +676,13 @@ func (m *MainWindow) showShortServerInformation() {
|
|||||||
for k := range players_map_keys {
|
for k := range players_map_keys {
|
||||||
iter = new(gtk.TreeIter)
|
iter = new(gtk.TreeIter)
|
||||||
nick := ctx.Colorizer.Fix(parsed_players_info[players_map_keys[k]]["nick"])
|
nick := ctx.Colorizer.Fix(parsed_players_info[players_map_keys[k]]["nick"])
|
||||||
m.server_info_store.Append(iter)
|
m.players_info_store.Append(iter)
|
||||||
m.server_info_store.SetValue(iter, 0, nick)
|
m.players_info_store.SetValue(iter, 0, nick)
|
||||||
m.server_info_store.SetValue(iter, 1, "(frags: " + parsed_players_info[players_map_keys[k]]["frags"] + " | ping: " + parsed_players_info[players_map_keys[k]]["ping"] + ")")
|
m.players_info_store.SetValue(iter, 1, parsed_players_info[players_map_keys[k]]["frags"])
|
||||||
|
m.players_info_store.SetValue(iter, 2, parsed_players_info[players_map_keys[k]]["ping"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// Just a separator.
|
// Just a separator.
|
||||||
iter = new(gtk.TreeIter)
|
iter = new(gtk.TreeIter)
|
||||||
m.server_info_store.Append(iter)
|
m.server_info_store.Append(iter)
|
||||||
@ -692,6 +706,7 @@ func (m *MainWindow) showShortServerInformation() {
|
|||||||
m.server_info_store.SetValue(iter, 0, general_data_keys[k])
|
m.server_info_store.SetValue(iter, 0, general_data_keys[k])
|
||||||
m.server_info_store.SetValue(iter, 1, parsed_general_data[general_data_keys[k]])
|
m.server_info_store.SetValue(iter, 1, parsed_general_data[general_data_keys[k]])
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,6 +84,7 @@ func (m *MainWindow) Initialize() {
|
|||||||
|
|
||||||
// Dialogs initialization.
|
// Dialogs initialization.
|
||||||
m.options_dialog = &OptionsDialog{}
|
m.options_dialog = &OptionsDialog{}
|
||||||
|
m.server_cvars_dialog = &ServerCVarsDialog{}
|
||||||
|
|
||||||
// Main menu.
|
// Main menu.
|
||||||
if runtime.GOOS == "darwin" {
|
if runtime.GOOS == "darwin" {
|
||||||
@ -239,6 +240,7 @@ func (m *MainWindow) initializeSidebar() {
|
|||||||
|
|
||||||
// Scrolled thing.
|
// Scrolled thing.
|
||||||
si_scroll := gtk.NewScrolledWindow(nil, nil)
|
si_scroll := gtk.NewScrolledWindow(nil, nil)
|
||||||
|
si_scroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||||
si_vbox.PackStart(si_scroll, true, true, 5)
|
si_vbox.PackStart(si_scroll, true, true, 5)
|
||||||
|
|
||||||
// Server's information.
|
// Server's information.
|
||||||
@ -253,6 +255,33 @@ func (m *MainWindow) initializeSidebar() {
|
|||||||
|
|
||||||
si_scroll.Add(m.server_info)
|
si_scroll.Add(m.server_info)
|
||||||
|
|
||||||
|
// Players information.
|
||||||
|
players_info_frame := gtk.NewFrame("Players")
|
||||||
|
sidebar_vbox.PackStart(players_info_frame, true, true, 5)
|
||||||
|
|
||||||
|
pi_scroll := gtk.NewScrolledWindow(nil, nil)
|
||||||
|
pi_scroll.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||||
|
players_info_frame.Add(pi_scroll)
|
||||||
|
|
||||||
|
m.players_info = gtk.NewTreeView()
|
||||||
|
m.players_info.SetModel(m.players_info_store)
|
||||||
|
pi_scroll.Add(m.players_info)
|
||||||
|
|
||||||
|
name_column := gtk.NewTreeViewColumnWithAttributes("Player name", gtk.NewCellRendererText(), "markup", 0)
|
||||||
|
m.players_info.AppendColumn(name_column)
|
||||||
|
|
||||||
|
frags_column := gtk.NewTreeViewColumnWithAttributes("Frags", gtk.NewCellRendererText(), "markup", 1)
|
||||||
|
m.players_info.AppendColumn(frags_column)
|
||||||
|
|
||||||
|
ping_column := gtk.NewTreeViewColumnWithAttributes("Ping", gtk.NewCellRendererText(), "markup", 2)
|
||||||
|
m.players_info.AppendColumn(ping_column)
|
||||||
|
|
||||||
|
// Show CVars button.
|
||||||
|
show_cvars_button := gtk.NewButtonWithLabel("Show CVars")
|
||||||
|
show_cvars_button.SetTooltipText("Show server's CVars")
|
||||||
|
show_cvars_button.Clicked(m.showServerCVars)
|
||||||
|
sidebar_vbox.PackStart(show_cvars_button, false, true, 5)
|
||||||
|
|
||||||
// Quick connect frame.
|
// Quick connect frame.
|
||||||
quick_connect_frame := gtk.NewFrame("Quick connect")
|
quick_connect_frame := gtk.NewFrame("Quick connect")
|
||||||
sidebar_vbox.PackStart(quick_connect_frame, false, true, 5)
|
sidebar_vbox.PackStart(quick_connect_frame, false, true, 5)
|
||||||
@ -347,6 +376,10 @@ func (m *MainWindow) initializeStorages() {
|
|||||||
// Server's information store. Used for quick preview in main window.
|
// Server's information store. Used for quick preview in main window.
|
||||||
m.server_info_store = gtk.NewListStore(glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
m.server_info_store = gtk.NewListStore(glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||||
|
|
||||||
|
// Players information store. Used in sidebar for players list for
|
||||||
|
// currently selected server.
|
||||||
|
m.players_info_store = gtk.NewListStore(glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||||
|
|
||||||
// Profiles count after filling combobox. Defaulting to 0.
|
// Profiles count after filling combobox. Defaulting to 0.
|
||||||
m.old_profiles_count = 0
|
m.old_profiles_count = 0
|
||||||
|
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
// URTator - Urban Terror server browser and game launcher, written in
|
|
||||||
// Go.
|
|
||||||
//
|
|
||||||
// Copyright (c) 2016, Stanslav N. a.k.a pztrn (or p0z1tr0n)
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under Terms and Conditions of GNU General Public License
|
|
||||||
// version 3 or any higher.
|
|
||||||
// ToDo: put full text of license here.
|
|
||||||
package ui
|
|
||||||
|
|
||||||
import (
|
|
||||||
// stdlib
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
// Local
|
|
||||||
//"github.com/pztrn/urtrator/datamodels"
|
|
||||||
|
|
||||||
// Other
|
|
||||||
"github.com/mattn/go-gtk/gtk"
|
|
||||||
//"github.com/mattn/go-gtk/glib"
|
|
||||||
)
|
|
||||||
|
|
||||||
type ServerInfoDialog struct {
|
|
||||||
// Window.
|
|
||||||
window *gtk.Window
|
|
||||||
// Main Vertical Box.
|
|
||||||
vbox *gtk.VBox
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sid *ServerInfoDialog) Initialize() {
|
|
||||||
fmt.Println("Showing server's information...")
|
|
||||||
}
|
|
Reference in New Issue
Block a user