mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:02:44 +00:00 
			
		
		
		
	IRCClient: Ask the user which IRC server to connect to on startup.
This commit is contained in:
		
							parent
							
								
									76ce68ac48
								
							
						
					
					
						commit
						cc20eef7ef
					
				
					 3 changed files with 20 additions and 8 deletions
				
			
		|  | @ -12,9 +12,9 @@ | |||
| #include <LibGUI/GInputBox.h> | ||||
| #include <LibGUI/GSplitter.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| 
 | ||||
| IRCAppWindow::IRCAppWindow() | ||||
|     : m_client("127.0.0.1", 6667) | ||||
| { | ||||
|     update_title(); | ||||
|     set_rect(200, 200, 600, 400); | ||||
|  | @ -52,6 +52,13 @@ void IRCAppWindow::setup_client() | |||
|         m_client.join_channel("#test"); | ||||
|     }; | ||||
| 
 | ||||
|     GInputBox input_box("Enter server:", "Connect to server", this); | ||||
|     auto result = input_box.exec(); | ||||
|     if (result == GInputBox::ExecCancel) | ||||
|         ::exit(0); | ||||
| 
 | ||||
|     m_client.set_server(input_box.text_value(), 6667); | ||||
|     update_title(); | ||||
|     m_client.connect(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -27,10 +27,8 @@ enum IRCNumeric { | |||
|     RPL_ENDOFNAMES = 366, | ||||
| }; | ||||
| 
 | ||||
| IRCClient::IRCClient(const String& address, int port) | ||||
|     : m_hostname(address) | ||||
|     , m_port(port) | ||||
|     , m_nickname("anon") | ||||
| IRCClient::IRCClient() | ||||
|     : m_nickname("seren1ty") | ||||
|     , m_client_window_list_model(IRCWindowListModel::create(*this)) | ||||
|     , m_log(IRCLogBuffer::create()) | ||||
| { | ||||
|  | @ -41,13 +39,18 @@ IRCClient::~IRCClient() | |||
| { | ||||
| } | ||||
| 
 | ||||
| void IRCClient::set_server(const String &hostname, int port) | ||||
| { | ||||
|     m_hostname = hostname; | ||||
|     m_port = port; | ||||
| } | ||||
| 
 | ||||
| bool IRCClient::connect() | ||||
| { | ||||
|     if (m_socket->is_connected()) | ||||
|         ASSERT_NOT_REACHED(); | ||||
| 
 | ||||
|     IPv4Address ipv4_address(127, 0, 0, 1); | ||||
|     bool success = m_socket->connect(GSocketAddress(ipv4_address), m_port); | ||||
|     bool success = m_socket->connect(m_hostname, m_port); | ||||
|     if (!success) | ||||
|         return false; | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,9 +17,11 @@ class IRCClient final : public GObject { | |||
|     friend class IRCChannel; | ||||
|     friend class IRCQuery; | ||||
| public: | ||||
|     IRCClient(const String& address, int port = 6667); | ||||
|     IRCClient(); | ||||
|     virtual ~IRCClient() override; | ||||
| 
 | ||||
|     void set_server(const String& hostname, int port = 6667); | ||||
| 
 | ||||
|     bool connect(); | ||||
| 
 | ||||
|     String hostname() const { return m_hostname; } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling