=== modified file 'Src/DasherCore/DasherInterfaceBase.cpp'
--- Src/DasherCore/DasherInterfaceBase.cpp	2008-03-22 14:41:38 +0000
+++ Src/DasherCore/DasherInterfaceBase.cpp	2008-04-27 07:46:41 +0000
@@ -1210,3 +1210,8 @@
     m_pNCManager->ImportTrainingText(strPath);
 }
 
+void 
+CDasherInterfaceBase::LearnText(const std::string &strPath) {
+  if(m_pNCManager)
+    m_pNCManager->EnterText(m_pNCManager->GetLearnContext(), strPath);
+}

=== modified file 'Src/DasherCore/DasherInterfaceBase.h'
--- Src/DasherCore/DasherInterfaceBase.h	2008-03-22 14:41:38 +0000
+++ Src/DasherCore/DasherInterfaceBase.h	2008-04-22 02:52:47 +0000
@@ -367,7 +367,7 @@
   const char* ClSet(const std::string &strKey, const std::string &strValue);
 
   void ImportTrainingText(const std::string &strPath);
-
+  void LearnText(const std::string &strPath);
 protected:
 
   /// @name Startup

=== modified file 'Src/DasherCore/NodeCreationManager.cpp'
--- Src/DasherCore/NodeCreationManager.cpp	2007-11-02 12:23:30 +0000
+++ Src/DasherCore/NodeCreationManager.cpp	2008-04-27 07:47:25 +0000
@@ -147,7 +147,8 @@
     m_pLanguageModel->LearnSymbol(context, Symbols[i]); // FIXME - conversion to symbol alphabet
 }
 
-void CNodeCreationManager::EnterText(CLanguageModel::Context context, std::string TheText) const {
+void
+CNodeCreationManager::EnterText(CLanguageModel::Context context, std::string TheText) const {
   std::vector < symbol > Symbols;
   m_pAlphabet->GetSymbols(&Symbols, &TheText, false);
   for(unsigned int i = 0; i < Symbols.size(); i++)

=== modified file 'Src/Gtk2/GtkDasherControl.cpp'
--- Src/Gtk2/GtkDasherControl.cpp	2008-03-22 14:41:38 +0000
+++ Src/Gtk2/GtkDasherControl.cpp	2008-04-27 07:30:05 +0000
@@ -206,6 +206,12 @@
 };
 
 void 
+gtk_dasher_control_learn(GtkDasherControl *pControl, const gchar *szFilename) {
+  GtkDasherControlPrivate *pPrivate = GTK_DASHER_CONTROL_GET_PRIVATE(pControl);
+  pPrivate->pControl->LearnText(szFilename);
+};
+
+void 
 gtk_dasher_control_set_context(GtkDasherControl *pControl, const gchar *szContext) {
   GtkDasherControlPrivate *pPrivate = GTK_DASHER_CONTROL_GET_PRIVATE(pControl);
   pPrivate->pControl->SetContext(szContext);

=== modified file 'Src/Gtk2/GtkDasherControl.h'
--- Src/Gtk2/GtkDasherControl.h	2008-03-22 14:41:38 +0000
+++ Src/Gtk2/GtkDasherControl.h	2008-05-01 09:08:28 +0000
@@ -75,6 +75,7 @@
 const char *gtk_dasher_control_get_parameter_string(GtkDasherControl * pControl, int iParameter);
 GArray *gtk_dasher_control_get_allowed_values(GtkDasherControl * pControl, int iParameter);
 void gtk_dasher_control_train(GtkDasherControl * pControl, const gchar * szFilename);
+void gtk_dasher_control_learn(GtkDasherControl * pControl, const gchar * szFilename);
 void gtk_dasher_control_set_context(GtkDasherControl *pControl, const gchar *szContext);
 //void gtk_dasher_control_invalidate_context(GtkDasherControl *pControl, bool bForceStart);
 void gtk_dasher_control_set_buffer(GtkDasherControl *pControl, int iOffset);

=== modified file 'Src/Gtk2/dasher_main.cpp'
--- Src/Gtk2/dasher_main.cpp	2008-04-29 04:04:34 +0000
+++ Src/Gtk2/dasher_main.cpp	2008-05-01 09:10:34 +0000
@@ -1042,7 +1042,7 @@
 static void 
 dasher_main_command_import(DasherMain *pSelf) {
   DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
-
+	 GtkWidget *pDialogue = NULL;
   GtkWidget *pFileSel = gtk_file_chooser_dialog_new(_("Select File"), 
 						    GTK_WINDOW(pPrivate->pMainWindow), 
 						    GTK_FILE_CHOOSER_ACTION_OPEN, 
@@ -1062,7 +1062,32 @@
     gchar *szFilename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSel));
 #endif
 
-    gtk_dasher_control_train(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), szFilename);
+ pDialogue = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow), GTK_DIALOG_MODAL, 
+					 GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, 
+					 _("Do you want to learn this text permanently?."));
+
+gtk_dialog_add_buttons(GTK_DIALOG(pDialogue), 
+			   _("No, Just this once"), GTK_RESPONSE_REJECT,
+			   _("Don't import anything"), GTK_RESPONSE_CANCEL, 
+			   _("Yes"), GTK_RESPONSE_ACCEPT, 
+			   NULL);
+
+    switch (gtk_dialog_run(GTK_DIALOG(pDialogue))) {
+    case GTK_RESPONSE_REJECT:
+     gtk_dasher_control_train(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), szFilename);
+      break;
+    case GTK_RESPONSE_CANCEL:
+      gtk_widget_destroy(GTK_WIDGET(pDialogue));
+      break;
+    case GTK_RESPONSE_ACCEPT:
+	gtk_dasher_control_learn(GTK_DASHER_CONTROL(pPrivate->pDasherWidget), szFilename);
+      gtk_widget_destroy(GTK_WIDGET(pDialogue));
+      //      write_to_file(); // FIXME - REIMPLEMENT
+      //      save_file_and_quit(NULL, NULL);
+    }
+
+
+
 
     g_free(szFilename);
   }

