[smuxi/experiments/tag_messages: 38/41] Frontend-GNOME: rewrite MainWindow.UpdateProgressBar() (refs: #826)
- From: Mirco M. M. Bauer <mmmbauer src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [smuxi/experiments/tag_messages: 38/41] Frontend-GNOME: rewrite MainWindow.UpdateProgressBar() (refs: #826)
- Date: Sun, 3 Apr 2016 10:58:25 +0000 (UTC)
commit 961d2961ff6ebb6656bd6c296ec65a649eac75bf
Author: Mirco Bauer <meebey meebey net>
Date: Tue Feb 23 15:08:20 2016 +0100
Frontend-GNOME: rewrite MainWindow.UpdateProgressBar() (refs: #826)
Keeping a list of synced chats is overkill when chats contain an IsSynced
property making it trivial and less error prone to count the synced chats from
that existing list.
src/Frontend-GNOME/ChatViewManager.cs | 8 +-------
src/Frontend-GNOME/MainWindow.cs | 13 ++++---------
src/Frontend-GNOME/Views/Chats/ChatView.cs | 14 +++++++-------
3 files changed, 12 insertions(+), 23 deletions(-)
---
diff --git a/src/Frontend-GNOME/ChatViewManager.cs b/src/Frontend-GNOME/ChatViewManager.cs
index 9ea4f65..46f1c7c 100644
--- a/src/Frontend-GNOME/ChatViewManager.cs
+++ b/src/Frontend-GNOME/ChatViewManager.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2013 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2013, 2015-2016 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -38,7 +38,6 @@ namespace Smuxi.Frontend.Gnome
private static readonly log4net.ILog f_Logger =
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#endif
private List<ChatView> f_Chats = new List<ChatView>();
- public IList<ChatView> SyncedChats { get; private set; }
private Notebook f_Notebook;
ChatTreeView TreeView { get; set; }
private UserConfig f_Config;
@@ -110,7 +109,6 @@ namespace Smuxi.Frontend.Gnome
f_Notebook = notebook;
TreeView = treeView;
TreeView.Selection.Changed += OnTreeViewSelectionChanged;
- SyncedChats = new List<ChatView>();
SyncManager = new ChatViewSyncManager();
SyncManager.ChatAdded += OnChatAdded;
SyncManager.ChatSynced += OnChatSynced;
@@ -143,7 +141,6 @@ namespace Smuxi.Frontend.Gnome
TreeView.Remove(chatView);
f_Chats.Remove(chatView);
SyncManager.Remove(chat);
- SyncedChats.Remove(chatView);
if (ChatRemoved != null) {
ChatRemoved(this, new ChatViewManagerChatRemovedEventArgs(chatView));
@@ -175,7 +172,6 @@ namespace Smuxi.Frontend.Gnome
return;
}
- SyncedChats.Remove(chatView);
chatView.Disable();
}
@@ -228,7 +224,6 @@ namespace Smuxi.Frontend.Gnome
}
f_Config = null;
- SyncedChats.Clear();
SyncManager.Clear();
}
@@ -360,7 +355,6 @@ namespace Smuxi.Frontend.Gnome
chatView.ScrollToEnd();
- SyncedChats.Add(chatView);
if (ChatSynced != null) {
ChatSynced(this, new ChatViewManagerChatSyncedEventArgs(chatView));
}
diff --git a/src/Frontend-GNOME/MainWindow.cs b/src/Frontend-GNOME/MainWindow.cs
index f706f3a..9b2faae 100644
--- a/src/Frontend-GNOME/MainWindow.cs
+++ b/src/Frontend-GNOME/MainWindow.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2014 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2016 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -645,15 +645,10 @@ namespace Smuxi.Frontend.Gnome
public void UpdateProgressBar()
{
- var totalChatCount = ChatViewManager.Chats.Count;
- var syncedChatCount = ChatViewManager.SyncedChats.Count;
+ var chats = ChatViewManager.Chats;
+ var totalChatCount = chats.Count;
+ var syncedChatCount = chats.Select(x => x.IsSynced).Count();
var fraction = (double) syncedChatCount / totalChatCount;
- // clamp value to avoid Gtk-CRITICAL assert failed messages
- if (fraction < 0) {
- fraction = 0;
- } else if (fraction > 1) {
- fraction = 1;
- }
if (totalChatCount == 0) {
// x / 0d -> Infinity
fraction = 0;
diff --git a/src/Frontend-GNOME/Views/Chats/ChatView.cs b/src/Frontend-GNOME/Views/Chats/ChatView.cs
index 1c24da6..25c8de2 100644
--- a/src/Frontend-GNOME/Views/Chats/ChatView.cs
+++ b/src/Frontend-GNOME/Views/Chats/ChatView.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2015 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2016 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -44,7 +44,7 @@ namespace Smuxi.Frontend.Gnome
private bool _HasActivity;
public int ActivityCount { get; private set; }
private bool _HasEvent;
- private bool _IsSynced;
+ public bool IsSynced { get; private set; }
private Gtk.TextMark _EndMark;
private Gtk.Menu _TabMenu;
private Gtk.Label _TabLabel;
@@ -497,7 +497,7 @@ namespace Smuxi.Frontend.Gnome
{
Trace.Call();
- _IsSynced = false;
+ IsSynced = false;
}
public virtual void Sync()
@@ -587,7 +587,7 @@ namespace Smuxi.Frontend.Gnome
OnStatusChanged(EventArgs.Empty);
SyncedMessages = null;
- _IsSynced = true;
+ IsSynced = true;
}
public virtual void UpdateLastSeenMessage()
@@ -732,7 +732,7 @@ namespace Smuxi.Frontend.Gnome
var signalCounter = false;
if (!IsActive) {
// the chat isn't active, thus we need to signal the event/msg counter
- if (_IsSynced) {
+ if (IsSynced) {
signalCounter = true;
} else {
// we are still syncing and since Smuxi 0.13 we know what msg
@@ -763,7 +763,7 @@ namespace Smuxi.Frontend.Gnome
protected virtual void OnMessageTextViewMessageHighlighted(object sender,
MessageTextViewMessageHighlightedEventArgs e)
{
- if (_IsSynced) {
+ if (IsSynced) {
bool isActiveChat = IsActive;
if (Frontend.UseLowBandwidthMode && !isActiveChat) {
@@ -819,7 +819,7 @@ namespace Smuxi.Frontend.Gnome
// elsewhere) and the chat is was already synced, as during sync we
// would get insane from all beeping caused by the old highlights
if (!Frontend.MainWindow.HasToplevelFocus &&
- _IsSynced &&
+ IsSynced &&
Frontend.UserConfig["Sound/BeepOnHighlight"] != null &&
(bool) Frontend.UserConfig["Sound/BeepOnHighlight"]) {
#if LOG4NET
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]