Stanislav N. aka pztrn
384754276a
Fixed Pooler's data race which occurs on every server's pinging goroutine creation, because of uncontrolled write to current requests counter. Protected it with mutex. Added very experimental and not-yet-working qt5 interface. Maybe it will be completed someday.
119 lines
3.2 KiB
Go
119 lines
3.2 KiB
Go
// 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"
|
|
//"runtime"
|
|
//"sort"
|
|
//"strconv"
|
|
//"strings"
|
|
|
|
// Local
|
|
//"github.com/pztrn/urtrator/datamodels"
|
|
//"github.com/pztrn/urtrator/ioq3dataparser"
|
|
|
|
// github
|
|
"github.com/therecipe/qt/widgets"
|
|
)
|
|
|
|
type MainWindow struct {
|
|
//////////////////////////////////////////////////
|
|
// Main widgets and pointers.
|
|
//////////////////////////////////////////////////
|
|
// Application.
|
|
app *widgets.QApplication
|
|
// Main window.
|
|
window *widgets.QMainWindow
|
|
// Main menu.
|
|
mainmenu *widgets.QMenuBar
|
|
// Main vertical box.
|
|
vbox *widgets.QVBoxLayout
|
|
// Toolbar.
|
|
toolbar *widgets.QToolBar
|
|
// Splitter.
|
|
splitter *widgets.QSplitter
|
|
// Tabs widget.
|
|
tabs *widgets.QTabWidget
|
|
|
|
//////////////////////////////////////////////////
|
|
// Servers lists and related.
|
|
//////////////////////////////////////////////////
|
|
// "Servers" tab list.
|
|
all_servers *widgets.QTreeView
|
|
// Hide offline servers checkbox.
|
|
all_servers_hide_offline *widgets.QCheckBox
|
|
// Hide private servers?
|
|
all_servers_hide_private *widgets.QCheckBox
|
|
// Server's version.
|
|
all_servers_version *widgets.QComboBox
|
|
// Game mode.
|
|
all_servers_gamemode *widgets.QComboBox
|
|
// Favorites tab list.
|
|
fav_servers *widgets.QTreeView
|
|
// Hide offline servers checkbox.
|
|
fav_servers_hide_offline *widgets.QCheckBox
|
|
// Hide private servers?
|
|
fav_servers_hide_private *widgets.QCheckBox
|
|
// Server's version.
|
|
fav_servers_version *widgets.QComboBox
|
|
// Game mode.
|
|
fav_servers_gamemode *widgets.QComboBox
|
|
// Sidebar's server's information widget.
|
|
sidebar_server_info *widgets.QTreeView
|
|
// Sidebar's server's players widget.
|
|
sidebar_server_players *widgets.QTreeView
|
|
|
|
//////////////////////////////////////////////////
|
|
// Datas.
|
|
//////////////////////////////////////////////////
|
|
// Window size.
|
|
window_width int
|
|
window_height int
|
|
// Window position.
|
|
window_pos_x int
|
|
window_pos_y int
|
|
// Supported game modes.
|
|
gamemodes map[string]string
|
|
// Columns names for servers tabs.
|
|
column_names map[string]string
|
|
// Real columns positions on servers tabs.
|
|
column_pos map[string]map[string]int
|
|
}
|
|
|
|
func (m *MainWindow) close(a bool) {
|
|
fmt.Println("Closing URTrator...")
|
|
m.app.Quit()
|
|
}
|
|
|
|
func (m *MainWindow) dropDatabasesData(bool) {
|
|
fmt.Println("About to drop databases data...")
|
|
}
|
|
|
|
func (m *MainWindow) showAboutDialog(a bool) {
|
|
fmt.Println("Showing about dialog...")
|
|
}
|
|
|
|
func (m *MainWindow) showAboutQtDialog(a bool) {
|
|
fmt.Println("Showing about Qt dialog...")
|
|
widgets.QMessageBox_AboutQt(m.window, "About Qt")
|
|
}
|
|
|
|
|
|
func (m *MainWindow) showOptionsDialog(a bool) {
|
|
fmt.Println("Showing options dialog...")
|
|
}
|
|
|
|
func (m *MainWindow) splitterMoved(pos int, index int) {
|
|
fmt.Println("Splitter moved!")
|
|
fmt.Println(index, pos)
|
|
}
|