[pan2] disconnect only if set in prefs small improvements to status icon
- From: Heinrich MÃller <henmull src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan2] disconnect only if set in prefs small improvements to status icon
- Date: Sun, 7 Oct 2012 18:06:21 +0000 (UTC)
commit c860200acc21a574273f78e8e246ae52347154fd
Author: Heinrich MÃller <henmull src gnome org>
Date: Sun Oct 7 10:35:03 2012 +0200
disconnect only if set in prefs
small improvements to status icon
pan/data-impl/download-meter.cc | 10 ++++++----
pan/gui/dl-prefs.cc | 4 ++--
pan/gui/gui.cc | 6 +++---
pan/gui/pan.cc | 11 +++++++++--
pan/tasks/queue.cc | 3 ++-
5 files changed, 22 insertions(+), 12 deletions(-)
---
diff --git a/pan/data-impl/download-meter.cc b/pan/data-impl/download-meter.cc
index 808f23e..dcac0a5 100644
--- a/pan/data-impl/download-meter.cc
+++ b/pan/data-impl/download-meter.cc
@@ -99,11 +99,11 @@ namespace
{
int cnt (log10f(bytes)/log10f(1024));
uint64_t factor = ::pow(1024ul, (uint64_t)cnt);
- float rest = cnt > 0.0f ? (((float)bytes / (float)factor)/10.0f) : 0.0f;
+ double rest = cnt > 0.0f ? (((double)bytes / (double)factor)/10.0f) : 0.0f;
std::stringstream str;
uint64_t ret = factor == 0ul ? ret : bytes / factor;
- str << std::setprecision (2) << (ret+rest) << " " << mnemonic(cnt);
+ str << (ret+rest) << " " << mnemonic(cnt);
return str.str();
}
@@ -113,10 +113,10 @@ void
DownloadMeterImpl :: set_status ()
{
// check if limit reached
- if (_downloaded_bytes > _limit && _limit > 0)
+ if (_downloaded_bytes >= _limit && _limit > 0)
{
fire_dl_limit_reached ();
- if (_prefs.get_flag("warn-dl-limit-reached", true))
+ if (_prefs.get_flag("warn-dl-limit-reached", false))
_view->set_color("red");
}
else
@@ -167,6 +167,8 @@ DownloadMeterImpl :: dl_meter_update ()
int limit (_prefs.get_int("dl-limit", 1024));
_limit = limit * ::pow(1024, type_idx);
+ std::cerr<<"diff "<<_limit-_downloaded_bytes<<"\n";
+
set_status ();
}
diff --git a/pan/gui/dl-prefs.cc b/pan/gui/dl-prefs.cc
index 5e53bb6..556ad3b 100644
--- a/pan/gui/dl-prefs.cc
+++ b/pan/gui/dl-prefs.cc
@@ -168,9 +168,9 @@ namespace pan
HIG::workarea_add_section_title (t, &row, _("Download Limit reached"));
HIG :: workarea_add_section_spacer (t, row, 2);
- w = new_check_button (_("Warn"), "warn-dl-limit-reached", true, prefs);
+ w = new_check_button (_("Warn"), "warn-dl-limit-reached", false, prefs);
HIG :: workarea_add_wide_control (t, &row, w);
- w = new_check_button (_("Disconnect from server"), "disconnect-on-dl-limit-reached", true, prefs);
+ w = new_check_button (_("Disconnect from server"), "disconnect-on-dl-limit-reached", false, prefs);
HIG :: workarea_add_wide_control (t, &row, w);
w = _spin = new_spin_button ("dl-limit", 1, 1024, prefs);
HIG :: workarea_add_wide_control (t, &row, w);
diff --git a/pan/gui/gui.cc b/pan/gui/gui.cc
index b726a06..1136212 100644
--- a/pan/gui/gui.cc
+++ b/pan/gui/gui.cc
@@ -303,9 +303,9 @@ GUI :: GUI (Data& data, Queue& queue, Prefs& prefs, GroupPrefs& group_prefs, Dow
gtk_box_pack_start (GTK_BOX(status_bar), frame, FALSE, FALSE, 0);
// download meter
- w = _meter.get_widget();
- gtk_box_pack_start (GTK_BOX(status_bar), w, FALSE, FALSE, 0);
- g_signal_connect (_meter.get_button(), "clicked", G_CALLBACK(show_download_meter_prefs_cb), this);
+// w = _meter.get_widget();
+// gtk_box_pack_start (GTK_BOX(status_bar), w, FALSE, FALSE, 0);
+// g_signal_connect (_meter.get_button(), "clicked", G_CALLBACK(show_download_meter_prefs_cb), this);
// drag and drop for message-ids
// gtk_drag_dest_set(_workarea_bin,GTK_DEST_DEFAULT_ALL,target_list,3,GDK_ACTION_COPY);
diff --git a/pan/gui/pan.cc b/pan/gui/pan.cc
index df380cf..2e6b707 100644
--- a/pan/gui/pan.cc
+++ b/pan/gui/pan.cc
@@ -110,7 +110,14 @@ namespace
gboolean delete_event_cb (GtkWidget * w, GdkEvent *, gpointer user_data)
{
- mainloop_quit ();
+ if (static_cast<Prefs*>(user_data)->get_flag("status-icon", false))
+ {
+ gtk_widget_hide(w);
+ }
+ else
+ {
+ mainloop_quit ();
+ }
return true; // don't invoke the default handler that destroys the widget
}
@@ -513,7 +520,7 @@ namespace
GUI& gui (*_gui);
- const gulong delete_cb_id = g_signal_connect (window, "delete-event", G_CALLBACK(delete_event_cb), NULL);
+ const gulong delete_cb_id = g_signal_connect (window, "delete-event", G_CALLBACK(delete_event_cb), &prefs);
gtk_container_add (GTK_CONTAINER(window), gui.root());
const bool minimized(prefs.get_flag("start-minimized", false));
diff --git a/pan/tasks/queue.cc b/pan/tasks/queue.cc
index a9a59c8..2f98cff 100644
--- a/pan/tasks/queue.cc
+++ b/pan/tasks/queue.cc
@@ -989,7 +989,8 @@ Queue :: get_stats (unsigned long & queued_count,
void
Queue :: on_dl_limit_reached ()
{
- set_online (false);
+ if (_prefs.get_flag("disconnect-on-dl-limit-reached", false))
+ set_online (false);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]