mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:02:45 +00:00 
			
		
		
		
	GTableView: Add a way to turn off alternating row colors.
This commit is contained in:
		
							parent
							
								
									491aa112ab
								
							
						
					
					
						commit
						b54ab06595
					
				
					 5 changed files with 15 additions and 7 deletions
				
			
		|  | @ -49,6 +49,7 @@ void IRCAppWindow::setup_widgets() | ||||||
| 
 | 
 | ||||||
|     auto* window_list = new GTableView(widget); |     auto* window_list = new GTableView(widget); | ||||||
|     window_list->set_headers_visible(false); |     window_list->set_headers_visible(false); | ||||||
|  |     window_list->set_alternating_row_colors(false); | ||||||
|     window_list->set_model(OwnPtr<IRCClientWindowListModel>(m_client.client_window_list_model())); |     window_list->set_model(OwnPtr<IRCClientWindowListModel>(m_client.client_window_list_model())); | ||||||
|     window_list->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); |     window_list->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); | ||||||
|     window_list->set_preferred_size({ 120, 0 }); |     window_list->set_preferred_size({ 120, 0 }); | ||||||
|  |  | ||||||
|  | @ -16,19 +16,21 @@ IRCClientWindow::IRCClientWindow(IRCClient& client, Type type, const String& nam | ||||||
| { | { | ||||||
|     set_layout(make<GBoxLayout>(Orientation::Vertical)); |     set_layout(make<GBoxLayout>(Orientation::Vertical)); | ||||||
| 
 | 
 | ||||||
|     // Make a container for the log buffer view + optional member list.
 |     // Make a container for the log buffer view + (optional) member list.
 | ||||||
|     GWidget* container = new GWidget(this); |     GWidget* container = new GWidget(this); | ||||||
|     container->set_layout(make<GBoxLayout>(Orientation::Horizontal)); |     container->set_layout(make<GBoxLayout>(Orientation::Horizontal)); | ||||||
| 
 | 
 | ||||||
|     m_table_view = new GTableView(container); |     m_table_view = new GTableView(container); | ||||||
|     m_table_view->set_headers_visible(false); |     m_table_view->set_headers_visible(false); | ||||||
|     m_table_view->set_font(Font::default_fixed_width_font()); |     m_table_view->set_font(Font::default_fixed_width_font()); | ||||||
|  |     m_table_view->set_alternating_row_colors(false); | ||||||
| 
 | 
 | ||||||
|     if (m_type == Channel) { |     if (m_type == Channel) { | ||||||
|         auto* member_view = new GTableView(container); |         auto* member_view = new GTableView(container); | ||||||
|         member_view->set_headers_visible(false); |         member_view->set_headers_visible(false); | ||||||
|         member_view->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); |         member_view->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); | ||||||
|         member_view->set_preferred_size({ 100, 0 }); |         member_view->set_preferred_size({ 100, 0 }); | ||||||
|  |         member_view->set_alternating_row_colors(false); | ||||||
|         member_view->set_model(OwnPtr<IRCChannelMemberListModel>(m_client.ensure_channel(m_name).member_model())); |         member_view->set_model(OwnPtr<IRCChannelMemberListModel>(m_client.ensure_channel(m_name).member_model())); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,9 +21,7 @@ public: | ||||||
| 
 | 
 | ||||||
|     int count() const { return m_messages.size(); } |     int count() const { return m_messages.size(); } | ||||||
|     const Message& at(int index) const { return m_messages.at(index); } |     const Message& at(int index) const { return m_messages.at(index); } | ||||||
| 
 |  | ||||||
|     void add_message(char prefix, const String& name, const String& text); |     void add_message(char prefix, const String& name, const String& text); | ||||||
| 
 |  | ||||||
|     void dump() const; |     void dump() const; | ||||||
| 
 | 
 | ||||||
|     const IRCLogBufferModel* model() const { return m_model; } |     const IRCLogBufferModel* model() const { return m_model; } | ||||||
|  | @ -31,8 +29,6 @@ public: | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     IRCLogBuffer(); |     IRCLogBuffer(); | ||||||
| 
 |  | ||||||
|     IRCLogBufferModel* m_model { nullptr }; |     IRCLogBufferModel* m_model { nullptr }; | ||||||
| 
 |  | ||||||
|     CircularQueue<Message, 1000> m_messages; |     CircularQueue<Message, 1000> m_messages; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -157,8 +157,13 @@ void GTableView::paint_event(GPaintEvent& event) | ||||||
|             key_column_background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060); |             key_column_background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060); | ||||||
|             text_color = Color::White; |             text_color = Color::White; | ||||||
|         } else { |         } else { | ||||||
|             background_color = painted_item_index % 2 ? Color(210, 210, 210) : Color::White; |             if (alternating_row_colors() && (painted_item_index % 2)) { | ||||||
|             key_column_background_color = painted_item_index % 2 ? Color(190, 190, 190) : Color(235, 235, 235); |                 background_color = Color(210, 210, 210); | ||||||
|  |                 key_column_background_color = Color(190, 190, 190); | ||||||
|  |             } else { | ||||||
|  |                 background_color = Color::White; | ||||||
|  |                 key_column_background_color = Color(235, 235, 235); | ||||||
|  |             } | ||||||
|             text_color = Color::Black; |             text_color = Color::Black; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,6 +23,9 @@ public: | ||||||
|     bool headers_visible() const { return m_headers_visible; } |     bool headers_visible() const { return m_headers_visible; } | ||||||
|     void set_headers_visible(bool headers_visible) { m_headers_visible = headers_visible; } |     void set_headers_visible(bool headers_visible) { m_headers_visible = headers_visible; } | ||||||
| 
 | 
 | ||||||
|  |     bool alternating_row_colors() const { return m_alternating_row_colors; } | ||||||
|  |     void set_alternating_row_colors(bool b) { m_alternating_row_colors = b; } | ||||||
|  | 
 | ||||||
|     void did_update_model(); |     void did_update_model(); | ||||||
| 
 | 
 | ||||||
|     int content_width() const; |     int content_width() const; | ||||||
|  | @ -54,4 +57,5 @@ private: | ||||||
|     OwnPtr<GTableModel> m_model; |     OwnPtr<GTableModel> m_model; | ||||||
|     int m_horizontal_padding { 5 }; |     int m_horizontal_padding { 5 }; | ||||||
|     bool m_headers_visible { true }; |     bool m_headers_visible { true }; | ||||||
|  |     bool m_alternating_row_colors { true }; | ||||||
| }; | }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling