The following commit has been merged in the master branch:
commit 0ac44730c616e0fb7ad4d19e1468d7736624ba5b
Author: Andrei Zavada <[email protected]>
Date:   Sun Jun 9 19:47:40 2013 +0300

    make aghui::pop_question take same args as pop_ok_question, touch up strings

diff --git a/src/aghermann/globals.cc b/src/aghermann/globals.cc
index 0fec459..b73a91a 100644
--- a/src/aghermann/globals.cc
+++ b/src/aghermann/globals.cc
@@ -26,9 +26,11 @@
 
 using namespace std;
 
-
 gsl_rng *agh::global::rng = nullptr;
 
+int agh::global::num_procs = 1;
+
+
 void
 agh::global::
 init()
@@ -60,9 +62,13 @@ init()
 }
 
 
-
-
-int agh::global::num_procs = 1;
+void
+agh::global::
+fini()
+{
+       gsl_rng_free( rng);
+       rng = nullptr;
+}
 
 // Local Variables:
 // Mode: c++
diff --git a/src/aghermann/globals.hh b/src/aghermann/globals.hh
index 866f1b1..6115f3a 100644
--- a/src/aghermann/globals.hh
+++ b/src/aghermann/globals.hh
@@ -28,6 +28,7 @@ extern gsl_rng *rng;
 extern int num_procs;
 
 void init();
+void fini();
 
 } // namespace global
 } // namespace agh
diff --git a/src/aghermann/main.cc b/src/aghermann/main.cc
index 64cf7b1..7830f77 100644
--- a/src/aghermann/main.cc
+++ b/src/aghermann/main.cc
@@ -84,7 +84,9 @@ main( int argc, char **argv)
                        return -1;
                }
 
+               agh::global::init();
                agh::CExpDesign ED (explicit_session); // essentially a very 
thoughtful no-op
+               agh::global::fini();
 
        } else {
 
@@ -114,6 +116,8 @@ main( int argc, char **argv)
                        // implicit read sessionrc, run
 
                        gtk_main();
+
+                       agh::global::fini();
                }
                // g_object_unref (app); // abandon ship anyway
        }
diff --git a/src/aghermann/ui/libcommon.cc b/src/aghermann/ui/libcommon.cc
index 69def52..48c7723 100644
--- a/src/aghermann/ui/libcommon.cc
+++ b/src/aghermann/ui/libcommon.cc
@@ -314,29 +314,34 @@ pop_ok_message( GtkWindow *parent,
 }
 
 
-int
+gint
 aghui::
-pop_question( GtkWindow* parent, const gchar *str, ...)
+pop_question( GtkWindow* parent,
+             const char* primary_text,
+             const char* fmt, ...)
 {
-       va_list ap;
-       va_start (ap, str);
-
-       static GString *buf = NULL;
-       if ( buf == NULL )
-               buf = g_string_new("");
-
-       g_string_vprintf( buf, str, ap);
-       va_end (ap);
-
-       GtkWidget *msg =
+       auto W = (GtkMessageDialog*)
                gtk_message_dialog_new_with_markup(
                        parent,
                        (GtkDialogFlags)(GTK_DIALOG_MODAL | 
GTK_DIALOG_DESTROY_WITH_PARENT),
                        GTK_MESSAGE_INFO,
                        GTK_BUTTONS_YES_NO,
-                       buf->str, NULL);
-       gint response = gtk_dialog_run( (GtkDialog*)msg);
-       gtk_widget_destroy( msg);
+                       primary_text, NULL);
+
+       if ( fmt ) {
+               va_list ap;
+               va_start (ap, fmt);
+
+               char *_;
+               assert (vasprintf( &_, fmt, ap) > 0);
+               va_end (ap);
+               gtk_message_dialog_format_secondary_markup( W, "%s", _);
+               free( (void*)_);
+       }
+
+       gint response = gtk_dialog_run( (GtkDialog*)W);
+       gtk_widget_destroy( (GtkWidget*)W);
+
        return response;
 }
 
diff --git a/src/aghermann/ui/sf/d/patterns-profiles.cc 
b/src/aghermann/ui/sf/d/patterns-profiles.cc
index 7ecb52c..75ea044 100644
--- a/src/aghermann/ui/sf/d/patterns-profiles.cc
+++ b/src/aghermann/ui/sf/d/patterns-profiles.cc
@@ -28,14 +28,19 @@ import_from_selection( SScoringFacility::SChannel& field)
        if ( run == 0 )
                return -1;
        if ( run_time > 60. ) {
-               aghui::pop_ok_message( (GtkWindow*)wSFFD, "Selection greater 
than a minute", "This is surely the single occurrence, I tell you!");
+               aghui::pop_ok_message(
+                       (GtkWindow*)wSFFD,
+                       "<b>Selection greater than a minute</b>",
+                       "This is surely the single occurrence, I tell you!");
                return -2;
        }
        if ( run_time > 10. and
             GTK_RESPONSE_YES !=
-            aghui::pop_question( (GtkWindow*)wSFFD, "The selection is greater 
than 10 sec. Sure to proceed with search?") ) {
+            aghui::pop_question(
+                    (GtkWindow*)wSFFD,
+                    "<b>The selection is greater than 10 sec</b>",
+                    "Sure to proceed with search?") )
                return -3;
-       }
 
        size_t  context_before = // agh::alg::ensure_within(
                (field.selection_start < current_pattern->context_pad)
diff --git a/src/aghermann/ui/sf/d/patterns_cb.cc 
b/src/aghermann/ui/sf/d/patterns_cb.cc
index 7f51849..dd689d9 100644
--- a/src/aghermann/ui/sf/d/patterns_cb.cc
+++ b/src/aghermann/ui/sf/d/patterns_cb.cc
@@ -480,7 +480,10 @@ wSFFD_hide_cb(
 
        if ( not FD.occurrences.empty() ) { // closing while dialog is in 
matching state
                if ( GTK_RESPONSE_YES !=
-                    pop_question( SF.wSF, "Keep annotations?") )
+                    pop_question(
+                            SF.wSF,
+                            "<b>Pattern found and marked</b>",
+                            "Keep annotated occurrences?") )
                        FD.restore_annotations();
                else {
                        SF._p.populate_mGlobalAnnotations();
diff --git a/src/aghermann/ui/sf/ica.cc b/src/aghermann/ui/sf/ica.cc
index 3870742..d020af5 100644
--- a/src/aghermann/ui/sf/ica.cc
+++ b/src/aghermann/ui/sf/ica.cc
@@ -41,11 +41,13 @@ setup_ica()
                                ; // good
                        } else {
                                if ( GTK_RESPONSE_NO ==
-                                    pop_question( wSF,
-                                                  "It seems you have already 
run ICA on these channels\n"
-                                                  "(a backup file 
<i>\"%s.orig\"</i> exists, and\n"
-                                                  "will be overwritten if you 
proceed now)\n\n"
-                                                  "Sure you want to do it 
again?", fname.c_str()) )
+                                    pop_question(
+                                            wSF,
+                                            "<b>You have already run ICA on 
these channels</b>",
+                                            "A backup file <i>\"%s.orig\"</i> 
exists, and\n"
+                                            "will be overwritten if you 
proceed now.\n\n"
+                                            "Sure you want to do it again?",
+                                            fname.c_str()) )
                                        return 1;
                        }
                }
@@ -58,9 +60,10 @@ setup_ica()
                size_t  this_sr = H.crecording.F().samplerate(H.h()),
                        this_ts = H.crecording.total_samples();
                if ( checking_sr and this_sr != checking_sr ) {
-                       pop_ok_message( wSF,
-                                       "Variable sample rates not supported",
-                                       "Sorry, ICA cannot be performed on 
channels with different sample rates.");
+                       pop_ok_message(
+                               wSF,
+                               "<b>Variable sample rates not supported</b>",
+                               "Sorry, ICA cannot yet be performed on channels 
with different sample rates.");
                        return 1;
                } else
                        checking_sr = this_sr;
diff --git a/src/aghermann/ui/sf/montage_cb.cc 
b/src/aghermann/ui/sf/montage_cb.cc
index 99e602d..558672d 100644
--- a/src/aghermann/ui/sf/montage_cb.cc
+++ b/src/aghermann/ui/sf/montage_cb.cc
@@ -785,27 +785,33 @@ iSFPageArtifactsClear_activate_cb(
        auto& SF = *(SScoringFacility*)userdata;
 
        char* chnamee = g_markup_escape_text( SF.using_channel->name(), -1);
-       if ( GTK_RESPONSE_YES == pop_question(
-                    SF.wSF,
-                    "All marked artifacts will be lost in channel 
<b>%s</b>.\n\n"
-                    "Continue?",
-                    chnamee) ) {
 
-               SF.using_channel->artifacts().clear();
-               SF.using_channel->get_signal_filtered();
+       if ( SF.using_channel->artifacts().empty() ) {
+               pop_ok_message( SF.wSF, "No artifacts to clear", "Channel 
<b>%s</b> is already clean.", chnamee);
 
-               if ( SF.using_channel->schannel().type() == 
sigfile::SChannel::TType::eeg ) {
-                       SF.using_channel->get_psd_course();
-                       SF.using_channel->get_psd_in_bands();
-                       SF.using_channel->get_spectrum();
+       } else
+               if ( GTK_RESPONSE_YES ==
+                    pop_question(
+                            SF.wSF,
+                            "<b>All marked artifacts will be lost</b>",
+                            "Sure to clean all artifacts in channel 
<b>%s</b>?",
+                            chnamee) ) {
+
+                       SF.using_channel->artifacts().clear();
+                       SF.using_channel->get_signal_filtered();
+
+                       if ( SF.using_channel->schannel().type() == 
sigfile::SChannel::TType::eeg ) {
+                               SF.using_channel->get_psd_course();
+                               SF.using_channel->get_psd_in_bands();
+                               SF.using_channel->get_spectrum();
+
+                               SF.redraw_ssubject_timeline();
+                       }
 
-                       SF.redraw_ssubject_timeline();
+                       gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
+                       gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
                }
 
-               gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
-               gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
-       }
-
        g_free( chnamee);
 }
 
@@ -901,6 +907,7 @@ iSFPageAnnotationDelete_activate_cb(
        if ( SF.over_annotations.size() == 1 ) {
                if ( GTK_RESPONSE_YES
                     == pop_question( SF.wSF,
+                                     "<b>Deleting annotation</b>",
                                      "Sure you want to delete annotation\n 
<b>%s</b>?",
                                      
SF.over_annotations.front()->label.c_str()) )
                        SF.using_channel->annotations.remove(
@@ -908,6 +915,7 @@ iSFPageAnnotationDelete_activate_cb(
        } else {
                if ( GTK_RESPONSE_YES
                     == pop_question( SF.wSF,
+                                     "<b>Deleting annotations</b>",
                                      "Sure you want to delete <b>%zu 
annotations</b>?",
                                      SF.over_annotations.size()) )
                        for ( auto &rm : SF.over_annotations )
@@ -981,6 +989,7 @@ iSFPageAnnotationClearAll_activate_cb(
        if ( GTK_RESPONSE_YES
             == pop_question(
                     SF.wSF,
+                    "<b>Deleting annotations</b>",
                     "Sure you want to delete all annotations in channel 
<b>%s</b>?",
                     chnamee) ) {
 
diff --git a/src/aghermann/ui/ui.hh b/src/aghermann/ui/ui.hh
index baf4b13..cc0fcb9 100644
--- a/src/aghermann/ui/ui.hh
+++ b/src/aghermann/ui/ui.hh
@@ -22,7 +22,7 @@
 #include <gtk/gtk.h>
 
 #include "common/lang.hh"
-#include "globals.hh"
+#include "aghermann/ui/globals.hh"
 
 #if HAVE_CONFIG_H && !defined(VERSION)
 #  include "config.h"
@@ -169,7 +169,7 @@ cairo_put_banner( cairo_t *cr,
 
 
 void pop_ok_message( GtkWindow *parent, const char* primary, const gchar*, 
...) __attribute__ ((format (printf, 3, 4)));
-gint pop_question( GtkWindow *parent, const gchar*, ...) __attribute__ 
((format (printf, 2, 3)));
+gint pop_question( GtkWindow *parent, const char* primary, const char*, ...) 
__attribute__ ((format (printf, 3, 4)));
 void set_cursor_busy( bool busy, GtkWidget *wid);
 
 

-- 
Sleep experiment manager

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to