exec bits, desktop icon props, noexecstack, attach transitions to selected edits...
authorGood Guy <good1.2guy@gmail.com>
Fri, 14 Dec 2018 22:27:45 +0000 (15:27 -0700)
committerGood Guy <good1.2guy@gmail.com>
Fri, 14 Dec 2018 22:27:45 +0000 (15:27 -0700)
41 files changed:
cinelerra-5.1/cinelerra/Makefile
cinelerra-5.1/cinelerra/mwindowedit.C
cinelerra-5.1/cinelerra/trackcanvas.C
cinelerra-5.1/cinelerra/tracksedit.C
cinelerra-5.1/configure.ac
cinelerra-5.1/guicast/bcwindowbase.C
cinelerra-5.1/image/cin.desktop
cinelerra-5.1/inst.sh
cinelerra-5.1/plugin_config
cinelerra-5.1/plugins/fonts/arial.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/arialbd.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/arialbi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/ariali.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/cour.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/courbd.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/courbi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/couri.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/l_10646.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/lucon.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/micross.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/pala.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/palab.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/palabi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/palai.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/symbol.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/tahoma.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/tahomabd.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/times.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/timesbd.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/timesbi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/timesi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/trebuc.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/trebucbd.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/trebucbi.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/trebucit.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/fonts/wingding.ttf [changed mode: 0755->0644]
cinelerra-5.1/plugins/theme_blue_dot/data/editpanelW_dn.png [changed mode: 0755->0644]
cinelerra-5.1/plugins/theme_blue_dot/data/editpanelW_hi.png [changed mode: 0755->0644]
cinelerra-5.1/plugins/theme_blue_dot/data/editpanelW_up.png [changed mode: 0755->0644]
cinelerra-5.1/plugins/theme_blue_dot/data/file_delete_up.png [changed mode: 0755->0644]
cinelerra-5.1/plugins/theme_blue_dot/data/file_reload_up.png [changed mode: 0755->0644]

index e9d67aa56c8875439fc7b7d4f0ec50b71b9b482f..43c66e8fb934e2ebf5721c5928c21bb407d31fef 100644 (file)
@@ -500,14 +500,14 @@ LDFLAGS1 = \
 LDFLAGS2 = -lcpml -lcxxstdma_rh60 -lcxxma_rh60 -lc -lots \
        `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtend.o \
        `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtn.o --no-demangle \
-       --warn-once
+       --warn-once $(LDFLAGS)
 LINKER = ld -o $(OUTPUT)
 CFLAGS += -DUSE_ALPHA
 
 else
 
 LDFLAGS1 = -Wl,-export-dynamic -g
-LDFLAGS2 =
+LDFLAGS2 = $(LDFLAGS)
 LINKER = $(CXX) -o $(OUTPUT)
 
 endif
index efe891df50e5044a37bc399beefab5f4312c1a9e..1e1bd0cd06ce158bbbd5801000bdafde1a0e7aa1 100644 (file)
@@ -906,14 +906,21 @@ void MWindow::match_output_size(Track *track)
 void MWindow::selected_to_clipboard(int packed)
 {
        int64_t start = INT64_MAX, end = -INT64_MAX, pos = 0;
+       Track *first_track=0, *last_track = 0;
        for( Track *track=edl->tracks->first; track; track=track->next ) {
                if( !track->record ) continue;
+               int empty = 1;
                for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
                        if( !edit->is_selected || edit->silence() ) continue;
                        if( start > (pos=edit->startproject) ) start = pos;
                        if( end < (pos+=edit->length) ) end = pos;
+                       empty = 0;
                }
+               if( empty ) continue;
+               if( !first_track ) first_track = track;
+               last_track = track;
        }
+       if( !first_track ) return;
        EDL *new_edl = new EDL();
        new_edl->create_objects();
        new_edl->copy_session(edl);
@@ -925,6 +932,10 @@ void MWindow::selected_to_clipboard(int packed)
        new_edl->session->audio_tracks = 0;
        for( Track *track=edl->tracks->first; track; track=track->next ) {
                if( !track->record ) continue;
+               if( first_track ) {
+                       if( first_track != track ) continue;
+                       first_track = 0;
+               }
                Track *new_track = 0;
                if( !packed )
                        new_track = new_edl->add_new_track(track->data_type);
@@ -953,6 +964,7 @@ void MWindow::selected_to_clipboard(int packed)
                                new_track->edits->append(clip_edit);
                        }
                }
+               if( last_track == track ) break;
        }
        double length = new_edl->tracks->total_length();
        FileXML file;
index 9d020d42f53b797812746be1c995207095bce59a..fced464be14fb6386c88a1fe02521bd4073b0bb5 100644 (file)
@@ -553,7 +553,7 @@ int64_t TrackCanvas::drop_edit_position(int *is_insertion, Edit *moved_edit, int
        Edit *last_edit = track->edits->last;
        if( !last_edit || edit_position >= (last_edit->startproject+last_edit->length) ) {
                *is_insertion = 0;
-               return grab_position;
+               return edit_position;
        }
 
        int64_t drop_start = 0, drop_end = 0;  // drop zone boundries
index 4a836b96a1fb15755d52c498c290ada63c858c65..6655eb8e32d1a0903eec24e5cb688ee0af5107b7 100644 (file)
@@ -408,38 +408,45 @@ void Tracks::set_transition_length(Transition *transition, double length)
 
 void Tracks::paste_transitions(double start, double end, int track_type, char* title)
 {
-       for(Track *current_track = first;
-               current_track;
-               current_track = current_track->next)
-       {
-               if(current_track->record && current_track->data_type == track_type)
-               {
-                       int64_t start_units = current_track->to_units(start, 0);
-                       int64_t end_units = current_track->to_units(end, 0);
-                       if( start_units == end_units ) {
-                               for( Edit *current_edit = current_track->edits->first;
-                                    current_edit; current_edit = current_edit->next) {
-                                       int64_t edit_start = current_edit->startproject;
-                                       int64_t edit_end = edit_start + current_edit->length;
-                                       if( edit_start > start_units ) continue;
-                                       if( start_units == current_track->edits->length() ) {
-                                               double length = edl->session->default_transition_length;
-                                               int64_t units = current_track->to_units(length, 1);
-                                               current_edit = current_track->edits->
-                                                       create_silence(start_units, start_units+units);
-                                       }
-                                       else if( start_units >= edit_end ) continue;
-                                       current_edit->insert_transition(title);
+       int count = 0;
+       for( Track *track=first; track; track=track->next ) {
+               if( !track->record || track->data_type != track_type ) continue;
+               for( Edit *edit=track->edits->first;  edit; edit=edit->next ) {
+                       if( !edit->is_selected ) continue;
+                       edit->insert_transition(title);
+                       ++count;
+               }
+       }
+       if( count > 0 ) {
+               clear_selected_edits();
+               return;
+       }
+
+       for( Track *track=first; track; track=track->next ) {
+               if( !track->record || track->data_type != track_type ) continue;
+               int64_t start_units = track->to_units(start, 0);
+               int64_t end_units = track->to_units(end, 0);
+               if( start_units == end_units ) {
+                       for( Edit *edit = track->edits->first; edit; edit = edit->next) {
+                               int64_t edit_start = edit->startproject;
+                               int64_t edit_end = edit_start + edit->length;
+                               if( edit_start > start_units ) continue;
+                               if( start_units == track->edits->length() ) {
+                                       double length = edl->session->default_transition_length;
+                                       int64_t units = track->to_units(length, 1);
+                                       edit = track->edits->
+                                               create_silence(start_units, start_units+units);
                                }
+                               else if( start_units >= edit_end ) continue;
+                               edit->insert_transition(title);
                        }
-                       else {
-                               for( Edit *current_edit = current_track->edits->first;
-                                    current_edit; current_edit = current_edit->next) {
-                                       int64_t edit_start = current_edit->startproject;
-                                       if( !edit_start ) continue;
-                                       if( edit_start >= start_units && edit_start < end_units ) {
-                                               current_edit->insert_transition(title);
-                                       }
+               }
+               else {
+                       for( Edit *edit=track->edits->first; edit; edit=edit->next) {
+                               int64_t edit_start = edit->startproject;
+                               if( !edit_start ) continue;
+                               if( edit_start >= start_units && edit_start < end_units ) {
+                                       edit->insert_transition(title);
                                }
                        }
                }
index 0bc0a38c984c632dc9446f20447d4bcd83c2ee8c..32e0aa17e8902ab92ab68b2a4f0ace412ed9e4c9 100644 (file)
@@ -27,6 +27,8 @@ CFG_CFLAGS+=" -I/usr/include/freetype2 -I/usr/local/include/freetype2"
 CFG_CFLAGS+=" -I/usr/include/uuid -I/usr/local/include/uuid"
 CFG_CFLAGS+=" -I/usr/include/mjpegtools -I/usr/local/include/mjpegtools"
 
+CFG_LDFLAGS+=" -z noexecstack"
+
 AC_DEFUN([CHECK_WITH], [
 AC_ARG_WITH([$1],
   AC_HELP_STRING([--with-[$1]], [$2 ($4)]),
@@ -919,6 +921,16 @@ echo "else"
 echo "CFLAGS_ := ${CFLAGS:--g -O2}"
 echo "endif"
 echo "endif"
+echo "ifndef CXXFLAGS_"
+echo "ifdef CXXFLAGS"
+echo "CXXFLAGS_ := \$(CXXFLAGS)"
+echo "endif"
+echo "endif"
+echo "ifndef LDFLAGS_"
+echo "ifdef LDFLAGS"
+echo "LDFLAGS_ := \$(LDFLAGS)"
+echo "endif"
+echo "endif"
 
 echo "CFLAGS := \$(CFLAGS_)"
 echo "CFLAGS += '-DCIN=\"\$(WANT_CIN)\"'"
@@ -931,8 +943,14 @@ echo "CFLAGS += '-DLADSPA_DIR=\"$WANT_LADSPA_DIR\"'"
 echo "CFLAGS += '-DCIN_BROWSER=\"$WANT_CIN_BROWSER\"'"
 for flg in $CFG_CFLAGS; do echo "CFLAGS += $flg"; done
 echo ""
-for flg in $CFG_CXXFLAGS; do echo "CXXFLAGS += $flg"; done
-echo ""
+if test "x$CFG_CXXFLAGS" != "x"; then
+  for flg in $CFG_CXXFLAGS; do echo "CXXFLAGS += $flg"; done
+  echo ""
+fi
+if test "x$CFG_LDFLAGS" != "x" ; then
+  echo "LDFLAGS +=$CFG_LDFLAGS"
+  echo ""
+fi
 
 if test "x$WANT_X264_HIDEPTH" = "xyes" ; then
   X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10"
index 1ef0d5939cc8e697ae71ffe3a94b2bbcdc894b3b..0194a758c75716853a15fe8a3d9f9a00728e06cf 100644 (file)
@@ -2249,7 +2249,7 @@ Cursor BC_WindowBase::create_grab_cursor()
        XColor fc, bc;
        fc.flags = bc.flags = DoRed | DoGreen | DoBlue;
        fc.red = 0xffff; fc.green = fc.blue = 0;  // fg
-       bc.red = bc.green = bc.blue = 0x0000;     // bg
+       bc.red = 0xffff; bc.green = 0xffff; bc.blue = 0x0000;     // bg
        Cursor cursor = XCreatePixmapCursor(display, img_xpm,msk_xpm, &fc,&bc, iw2,ih2);
        XFreePixmap(display, img_xpm);
        XFreePixmap(display, msk_xpm);
index 181a6875c96e2fa80c45c305248eb2ae6d63b1d1..3ccfb7aef295eaf1958b3230d207b2d5a309813d 100644 (file)
@@ -2,9 +2,8 @@
 Name=cin
 Comment=MultiMedia Editor
 Comment[fr]=Éditeur multimédia
-Categories=Application;AudioVideo;Multimedia;VideoEditing;
-Encoding=UTF-8
+Categories=AudioVideo;AudioVideoEditing;X-Multimedia;
 Exec=cin
-Icon=cin.svg
+Icon=cin
 Terminal=false
 Type=Application
index bbfee547528bda5185edb51f0effb72dfc7c70a4..e7a20c4c17f978ea6cf6d3c7a3bd296a30b3d341 100755 (executable)
@@ -3,12 +3,12 @@
 cr='
 '
 dir="$1"; shift 1
-$mkinstalldirs "$dir"
+mkdir -p "$dir"
 if [ "$*" = "*" ]; then exit; fi
 
 for f in "$@"; do
-  if [ -f "$f" ]; then $install_sh -c "$f" "$dir"; continue; fi
+  if [ -f "$f" ]; then ( umask 755; cp "$f" "$dir" ); continue; fi
   if [ -d "$f" ]; then ( cd $f; $inst_sh "$dir/$f" * )
-  else echo "*** Error - install $f in $dir failed." 1>&2; exit 1; fi
+  else echo "*** Error - inst.sh $f in $dir failed." 1>&2; exit 1; fi
 done
 
index 0ee88a45d0047d36eae528ee1535c7ca6e623f7c..56f43511dea0c37021de0f9cd35515b6812c0120 100644 (file)
@@ -3,6 +3,7 @@ CFLAGS += -I../ -I$(CINELERRA) -I$(GUICAST) -I../colors -fPIC
 
 CFLAGS += $(static_incs)
 LFLAGS += $(static_libs)
+LFLAGS += $(LDFLAGS)
 LDLINKER ?= $(CXX) -shared
 $(shell mkdir -p $(OBJDIR))
 
@@ -26,7 +27,7 @@ else
 THEME_DATA = $(OBJDIR)/$(PLUGIN)_data.o
 
 $(OUTPUT_THEME): $(OBJS) $(OUTPUT_DIR) $(THEME_DATA)
-       $(LDLINKER) -o $(OUTPUT_THEME) $(OBJS) $(THEME_DATA)
+       $(LDLINKER) -o $(OUTPUT_THEME) $(OBJS) $(THEME_DATA) $(LDFLAGS)
        $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT_THEME) $(OUTPUT_G))
        $(if $(findstring -ggdb,$(CFLAGS)),,strip $(OUTPUT_THEME))
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)