about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-09-30 22:34:27 +0100
committerJames Booth <boothj5@gmail.com>2015-09-30 22:34:27 +0100
commitb9948a4c018b25b3d5dc0a876740d8621b210070 (patch)
tree917b5ea296aab390aaee6b9f74b04f8ec042fcbd /src/ui
parentd2b991de1d5948410c1ded0ac0dca1c7adc8117d (diff)
downloadprofani-tty-b9948a4c018b25b3d5dc0a876740d8621b210070.tar.gz
Added time format perferences per window type
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/console.c45
-rw-r--r--src/ui/statusbar.c22
-rw-r--r--src/ui/window.c29
3 files changed, 84 insertions, 12 deletions
diff --git a/src/ui/console.c b/src/ui/console.c
index 1bbaac38..5445a503 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -997,12 +997,47 @@ cons_autoconnect_setting(void)
 void
 cons_time_setting(void)
 {
-    char *pref_time = prefs_get_string(PREF_TIME);
-    if (g_strcmp0(pref_time, "off") == 0)
-        cons_show("Time main (/time)             : OFF");
+    char *pref_time_console = prefs_get_string(PREF_TIME_CONSOLE);
+    if (g_strcmp0(pref_time_console, "off") == 0)
+        cons_show("Time console (/time)          : OFF");
     else
-        cons_show("Time main (/time)             : %s", pref_time);
-    prefs_free_string(pref_time);
+        cons_show("Time console (/time)          : %s", pref_time_console);
+    prefs_free_string(pref_time_console);
+
+    char *pref_time_chat = prefs_get_string(PREF_TIME_CHAT);
+    if (g_strcmp0(pref_time_chat, "off") == 0)
+        cons_show("Time chat (/time)             : OFF");
+    else
+        cons_show("Time chat (/time)             : %s", pref_time_chat);
+    prefs_free_string(pref_time_chat);
+
+    char *pref_time_muc = prefs_get_string(PREF_TIME_MUC);
+    if (g_strcmp0(pref_time_muc, "off") == 0)
+        cons_show("Time MUC (/time)              : OFF");
+    else
+        cons_show("Time MUC (/time)              : %s", pref_time_muc);
+    prefs_free_string(pref_time_muc);
+
+    char *pref_time_mucconf = prefs_get_string(PREF_TIME_MUCCONFIG);
+    if (g_strcmp0(pref_time_mucconf, "off") == 0)
+        cons_show("Time MUC config (/time)       : OFF");
+    else
+        cons_show("Time MUC config (/time)       : %s", pref_time_mucconf);
+    prefs_free_string(pref_time_mucconf);
+
+    char *pref_time_private = prefs_get_string(PREF_TIME_PRIVATE);
+    if (g_strcmp0(pref_time_private, "off") == 0)
+        cons_show("Time private (/time)          : OFF");
+    else
+        cons_show("Time private (/time)          : %s", pref_time_private);
+    prefs_free_string(pref_time_private);
+
+    char *pref_time_xml = prefs_get_string(PREF_TIME_XMLCONSOLE);
+    if (g_strcmp0(pref_time_xml, "off") == 0)
+        cons_show("Time XML Console (/time)      : OFF");
+    else
+        cons_show("Time XML Console (/time)      : %s", pref_time_xml);
+    prefs_free_string(pref_time_xml);
 
     char *pref_time_statusbar = prefs_get_string(PREF_TIME_STATUSBAR);
     if (g_strcmp0(pref_time_statusbar, "off") == 0)
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c
index 5541f648..47aa1b1a 100644
--- a/src/ui/statusbar.c
+++ b/src/ui/statusbar.c
@@ -129,11 +129,17 @@ status_bar_resize(void)
 
     if (message) {
         char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
-        gchar *date_fmt = g_date_time_format(last_time, time_pref);
+
+        gchar *date_fmt = NULL;
+        if (g_strcmp0(time_pref, "off") == 0) {
+            date_fmt = g_strdup("");
+        } else {
+            date_fmt = g_date_time_format(last_time, time_pref);
+        }
         assert(date_fmt != NULL);
         size_t len = strlen(date_fmt);
         g_free(date_fmt);
-        if (g_strcmp0(time_pref, "") != 0) {
+        if (g_strcmp0(time_pref, "off") != 0) {
             /* 01234567890123456
              *  [HH:MM]  message */
             mvwprintw(status_bar, 0, 5 + len, message);
@@ -308,11 +314,17 @@ status_bar_print_message(const char * const msg)
     message = strdup(msg);
 
     char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
-    gchar *date_fmt = g_date_time_format(last_time, time_pref);
+    gchar *date_fmt = NULL;
+    if (g_strcmp0(time_pref, "off") == 0) {
+        date_fmt = g_strdup("");
+    } else {
+        date_fmt = g_date_time_format(last_time, time_pref);
+    }
+
     assert(date_fmt != NULL);
     size_t len = strlen(date_fmt);
     g_free(date_fmt);
-    if (g_strcmp0(time_pref, "") != 0) {
+    if (g_strcmp0(time_pref, "off") != 0) {
         mvwprintw(status_bar, 0, 5 + len, message);
     } else {
         mvwprintw(status_bar, 0, 1, message);
@@ -444,7 +456,7 @@ _status_bar_draw(void)
     int bracket_attrs = theme_attrs(THEME_STATUS_BRACKET);
 
     char *time_pref = prefs_get_string(PREF_TIME_STATUSBAR);
-    if (g_strcmp0(time_pref, "") != 0) {
+    if (g_strcmp0(time_pref, "off") != 0) {
         gchar *date_fmt = g_date_time_format(last_time, time_pref);
         assert(date_fmt != NULL);
         size_t len = strlen(date_fmt);
diff --git a/src/ui/window.c b/src/ui/window.c
index 5a2196f2..8579b02f 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -982,9 +982,34 @@ _win_print(ProfWin *window, const char show_char, int pad_indent, GDateTime *tim
     int colour = theme_attrs(THEME_ME);
     size_t indent = 0;
 
+    char *time_pref = NULL;
+    switch (window->type) {
+        case WIN_CHAT:
+            time_pref = prefs_get_string(PREF_TIME_CHAT);
+            break;
+        case WIN_MUC:
+            time_pref = prefs_get_string(PREF_TIME_MUC);
+            break;
+        case WIN_MUC_CONFIG:
+            time_pref = prefs_get_string(PREF_TIME_MUCCONFIG);
+            break;
+        case WIN_PRIVATE:
+            time_pref = prefs_get_string(PREF_TIME_PRIVATE);
+            break;
+        case WIN_XML:
+            time_pref = prefs_get_string(PREF_TIME_XMLCONSOLE);
+            break;
+        default:
+            time_pref = prefs_get_string(PREF_TIME_CONSOLE);
+            break;
+    }
+
     gchar *date_fmt = NULL;
-    char *time_pref = prefs_get_string(PREF_TIME);
-    date_fmt = g_date_time_format(time, time_pref);
+    if (g_strcmp0(time_pref, "off") == 0) {
+        date_fmt = g_strdup("");
+    } else {
+        date_fmt = g_date_time_format(time, time_pref);
+    }
     prefs_free_string(time_pref);
     assert(date_fmt != NULL);