Browse code

Connect save to F2 and to Control+S

Dario Rodriguez authored on 30/11/2020 18:09:55
Showing 1 changed files
... ...
@@ -680,18 +680,23 @@ fprintf(stderr,"SDL_KEYDOWN: BACKSPACE%s\n",(event==&fakeevent)?" (fake)":"");
680 680
                 re->headerdirty=1;
681 681
                 re->contentsdirty=1;
682 682
         } else if(event->key.keysym.sym==SDLK_q && (SDL_GetModState()&KMOD_CTRL)!=0) {
683
-fprintf(stderr,"re_processkey(): received Control+q\n");
684 683
                 re->command="";
685 684
                 re->command_first_key='q';
686 685
                 re->headerdirty=1;
686
+        } else if(event->key.keysym.sym==SDLK_F2 || (event->key.keysym.sym==SDLK_s && (SDL_GetModState()&KMOD_CTRL)!=0)) {
687
+                char *errormsg=NULL;
688
+                if(redata_save(re->data,re->filename,&errormsg)!=-1)
689
+                        errormsg="File saved";
690
+                re->command=COMMAND_WARNING;
691
+                snprintf(re->commandbuf,sizeof(re->commandbuf),errormsg);
692
+                re->commandbuf[sizeof(re->commandbuf)-1]='\0';
693
+                re->headerdirty=1;
687 694
         } else if(event->key.keysym.sym==SDLK_k && (SDL_GetModState()&KMOD_CTRL)!=0) {
688
-fprintf(stderr,"re_processkey(): received Control+k\n");
689 695
                 re->command="";
690 696
                 re->command_first_key='k';
691 697
                 re->headerdirty=1;
692 698
         } else if(event->key.keysym.sym==SDLK_z && (SDL_GetModState()&KMOD_CTRL)!=0) {
693 699
                 long newpos;
694
-fprintf(stderr,"re_processkey(): received Control+z\n");
695 700
                 if(redata_op_undo(re->data,&newpos))
696 701
                         return(-1);
697 702
                 re->cursorpos=newpos;
... ...
@@ -701,7 +706,6 @@ fprintf(stderr,"re_processkey(): received Control+z\n");
701 706
                 re->contentsdirty=1;
702 707
         } else if(event->key.keysym.sym==SDLK_l && (SDL_GetModState()&KMOD_CTRL)!=0 && re->cachelastsearch[0]!='\0') {
703 708
                 long newpos;
704
-fprintf(stderr,"re_processkey(): received Control+l\n");
705 709
                 /* search next (forward) */
706 710
                 if((newpos=redata_searchforward(re->data,re->cursorpos+1,re->cachelastsearch,strlen(re->cachelastsearch)))==-1) {
707 711
                         re->command=COMMAND_WARNING;
... ...
@@ -716,23 +720,19 @@ fprintf(stderr,"re_processkey(): received Control+l\n");
716 720
                 re->headerdirty=1;
717 721
                 re->contentsdirty=1;
718 722
         } else if(event->key.keysym.sym==SDLK_PLUS && (SDL_GetModState()&KMOD_CTRL)!=0) {
719
-fprintf(stderr,"re_processkey(): received Control+'+'\n");
720 723
                 re_changefontsize(re, 1);
721 724
                 re->ignorenkeys++;
722 725
         } else if(event->key.keysym.sym==SDLK_MINUS && (SDL_GetModState()&KMOD_CTRL)!=0) {
723
-fprintf(stderr,"re_processkey(): received Control+'-'\n");
724 726
                 re_changefontsize(re, -1);
725 727
                 re->ignorenkeys++;
726 728
         } else if(event->key.keysym.sym==SDLK_0 && (SDL_GetModState()&KMOD_CTRL)!=0) {
727
-fprintf(stderr,"re_processkey(): received Control+'0'\n");
728 729
                 re_changefontsize(re, 0);
729 730
                 re->ignorenkeys++;
730 731
         } else if((event->key.keysym.sym==SDLK_c || event->key.keysym.sym==SDLK_x) && (SDL_GetModState()&KMOD_CTRL)!=0) {
731 732
                 long frompos,topos;
732 733
                 int coldone;
733 734
                 int is_cut=(event->key.keysym.sym==SDLK_x)?1:0;
734
-fprintf(stderr,"re_processkey(): received Control+%c\n",is_cut?'x':'c');
735
-                /* CUA92-style copy (ctrl+c) / cut (ctrl+x) */
735
+                /* Mac-HIG/OpenLook-style copy (ctrl+c) / cut (ctrl+x) */
736 736
                 if(re->selactive
737 737
                   && redata_linecol2pos(re->data,re->sellinefrom,re->selcolfrom,&frompos,NULL)==0
738 738
                   && redata_linecol2pos(re->data,re->sellineto,re->selcolto,&topos,&coldone)==0) {
... ...
@@ -753,7 +753,7 @@ fprintf(stderr,"re_processkey(): received Control+%c\n",is_cut?'x':'c');
753 753
                 re->ignorenkeys++;
754 754
         } else if(event->key.keysym.sym==SDLK_v && (SDL_GetModState()&KMOD_CTRL)!=0) {
755 755
 fprintf(stderr,"re_processkey(): received Control+v\n");
756
-                /* CUA92-style paste (ctrl+v)*/
756
+                /* Mac-HIG/OpenLook-style paste (ctrl+v)*/
757 757
                 if(re->selactive)
758 758
                         re_sel_toggle(re);
759 759
                 if(SDL_HasClipboardText())
... ...
@@ -1023,16 +1023,10 @@ re_processcommand(re_t *re)
1023 1023
                   ;(oldpos+slen)<endpos && (newpos=redata_searchforward(re->data,oldpos,re->cachelastsearch,slen))!=-1
1024 1024
                     && (newpos+slen)<=endpos
1025 1025
                   ;total++,oldpos=newpos+rlen) {
1026
-#if 1
1027
-fprintf(stderr,"substituting %i bytes for %i bytes ar position:%li\n",slen,rlen,newpos);
1028
-#endif
1029 1026
                         redata_op_del(re->data,newpos,slen,NULL);
1030 1027
                         redata_op_add(re->data,newpos,re->cachelastreplacewith,rlen,NULL);
1031 1028
                 }
1032 1029
                 redata_undo_groupcommit(re->data,NULL);
1033
-#if 1
1034
-fprintf(stderr,"oldpos:%li\n",oldpos);
1035
-#endif
1036 1030
                 re->cursorpos=oldpos;
1037 1031
                 redata_pos2linecol(re->data,re->cursorpos,&(re->curline),&(re->curcol));
1038 1032
                 re_fixorigin_center(re);
... ...
@@ -1531,7 +1525,10 @@ re_drawheader_editing(re_t *re)
1531 1525
                 line=col=-1;
1532 1526
         reui_fill(re->ui,0,0,re->ui->w,re->ui->fontheight,COLOR_STATUSBG);
1533 1527
         /* for the user, lines start at 0 (internally they start at 0) */
1534
-        reui_printf(re->ui,0,0,COLOR_STATUSFG,"File: %s Line:%i (%i) Col:%i (%i) Pos:%li Size:%li",re->filename,re->curline+1,line+1,re->curcol+1,col+1,re->cursorpos,redata_getused(re->data));
1528
+        reui_printf(re->ui,0,0,COLOR_STATUSFG,"File: %s Line:%i (%i) Col:%i (%i) Pos:%li Size:%li %s"
1529
+          ,re->filename,re->curline+1,line+1,re->curcol+1,col+1,re->cursorpos,redata_getused(re->data)
1530
+          ,"");
1531
+#warning #error MAKE THE PREVIOUS LINE LAST %s print: "CHANGED" when unsaved&not-in-reu, "changed" when unsaved but is in reu, "saved" when it is saved.
1535 1532
         re->headerdirty=0;
1536 1533
         re->ui->rendererdirty=1;
1537 1534
         return(0);