Author: kitone
Date: Fri Aug 15 15:29:17 2014
New Revision: 869

URL: http://svn.gna.org/viewcvs/subtitleeditor?rev=869&view=rev
Log:
Fix bug #22471 : Drag and drop of keyframe and waveform files.

Modified:
    trunk/ChangeLog
    trunk/src/gui/application.cc
    trunk/src/gui/application.h

Modified: trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/subtitleeditor/trunk/ChangeLog?rev=869&r1=868&r2=869&view=diff
==============================================================================
--- trunk/ChangeLog     (original)
+++ trunk/ChangeLog     Fri Aug 15 15:29:17 2014
@@ -1,3 +1,9 @@
+2014-08-15  kitone  <[email protected]>
+
+       * src/gui/application.cc:
+       * src/gui/application.h:
+       Fix bug #22471 : Drag and drop of keyframe and waveform files.
+
 2014-08-15  kitone  <[email protected]>
 
        * src/we/waveformeditor.cc:

Modified: trunk/src/gui/application.cc
URL: 
http://svn.gna.org/viewcvs/subtitleeditor/trunk/src/gui/application.cc?rev=869&r1=868&r2=869&view=diff
==============================================================================
--- trunk/src/gui/application.cc        (original)
+++ trunk/src/gui/application.cc        Fri Aug 15 15:29:17 2014
@@ -106,6 +106,16 @@
                m_video_player->signal_drag_data_received().connect(
                                sigc::mem_fun(*this, 
&Application::player_drag_data_received));
                m_video_player->drag_dest_set(targets, Gtk::DEST_DEFAULT_ALL, 
Gdk::DragAction(GDK_ACTION_COPY | GDK_ACTION_MOVE));
+       }
+       // open waveform or keyframes files with drag-and-drop in waveform view
+       {
+               std::vector<Gtk::TargetEntry> targets;
+
+               targets.push_back(Gtk::TargetEntry("text/uri-list", 
Gtk::TargetFlags(0), 0));
+               
+               m_waveform_editor->signal_drag_data_received().connect(
+                               sigc::mem_fun(*this, 
&Application::waveform_drag_data_received));
+               m_waveform_editor->drag_dest_set(targets, 
Gtk::DEST_DEFAULT_ALL, Gdk::DragAction(GDK_ACTION_COPY | GDK_ACTION_MOVE));
        }
 }
 
@@ -688,6 +698,23 @@
        }
 }
 
+/*
+ */
+void Application::waveform_drag_data_received (const 
Glib::RefPtr<Gdk::DragContext>& /*context*/, int /*x*/, int /*y*/, const 
Gtk::SelectionData& selection_data, guint /*info*/, guint /*time*/)
+{
+       std::vector<Glib::ustring> uris = selection_data.get_uris();
+       for(guint i=0; i< uris.size(); ++i)
+       {
+               Glib::ustring uri = uris[i];
+               Glib::RefPtr<KeyFrames> kf = KeyFrames::create_from_file(uri);
+               if(kf)
+                       m_video_player->player()->set_keyframes(kf);
+               else if(Glib::RefPtr<Waveform> wf = 
Waveform::create_from_file(uri))
+                       m_waveform_editor->set_waveform(wf);
+       }
+}
+
+
 
 /*
  *

Modified: trunk/src/gui/application.h
URL: 
http://svn.gna.org/viewcvs/subtitleeditor/trunk/src/gui/application.h?rev=869&r1=868&r2=869&view=diff
==============================================================================
--- trunk/src/gui/application.h (original)
+++ trunk/src/gui/application.h Fri Aug 15 15:29:17 2014
@@ -86,6 +86,7 @@
         */
        void    notebook_drag_data_received (const 
Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const 
Gtk::SelectionData& selection_data, guint info, guint time);
        void    player_drag_data_received (const 
Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const 
Gtk::SelectionData& selection_data, guint info, guint time);
+       void    waveform_drag_data_received (const 
Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const 
Gtk::SelectionData& selection_data, guint info, guint time);
 
        /*
         *


_______________________________________________
Subtitleeditor-commits mailing list
[email protected]
https://mail.gna.org/listinfo/subtitleeditor-commits

Reply via email to