[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15162] branches/soc-2008-quorn/source/ blender/src: Prevent editing of linked library Texts

Ian Thompson quornian at googlemail.com
Sun Jun 8 21:29:20 CEST 2008


Revision: 15162
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15162
Author:   quorn
Date:     2008-06-08 21:29:19 +0200 (Sun, 08 Jun 2008)

Log Message:
-----------
Prevent editing of linked library Texts

Modified Paths:
--------------
    branches/soc-2008-quorn/source/blender/src/drawtext.c
    branches/soc-2008-quorn/source/blender/src/header_text.c

Modified: branches/soc-2008-quorn/source/blender/src/drawtext.c
===================================================================
--- branches/soc-2008-quorn/source/blender/src/drawtext.c	2008-06-08 10:48:37 UTC (rev 15161)
+++ branches/soc-2008-quorn/source/blender/src/drawtext.c	2008-06-08 19:29:19 UTC (rev 15162)
@@ -1605,7 +1605,10 @@
 			}
 		}
 	} else if (ascii) {
-		if ((st->overwrite && txt_replace_char(text, ascii)) || txt_add_char(text, ascii)) {
+		if (text && text->id.lib) {
+			error_libdata();
+
+		} else if ((st->overwrite && txt_replace_char(text, ascii)) || txt_add_char(text, ascii)) {
 			if (st->showsyntax) get_format_string(st);
 			pop_space_text(st);
 			do_draw= 1;
@@ -1633,6 +1636,10 @@
 			}
 			break; /* BREAK C */
 		case DKEY:
+			if (text && text->id.lib) {
+				error_libdata();
+				break;
+			}
 			if (G.qual == (LR_CTRLKEY|LR_SHIFTKEY)) {
 				//uncommenting
 				txt_order_cursors(text);
@@ -1651,6 +1658,10 @@
 			if (G.qual == (LR_ALTKEY|LR_SHIFTKEY)) {
 				switch(pupmenu("Edit %t|Cut %x0|Copy %x1|Paste %x2|Print Cut Buffer %x3")) {
 				case 0:
+					if (text && text->id.lib) {
+						error_libdata();
+						break;
+					}
 					txt_copy_clipboard(text); //First copy to clipboard
 					txt_cut_sel(text);
 					do_draw= 1;
@@ -1661,6 +1672,10 @@
 					do_draw= 1;
 					break;
 				case 2:
+					if (text && text->id.lib) {
+						error_libdata();
+						break;
+					}
 					//txt_paste(text);
 					txt_paste_clipboard(text);
 					if (st->showsyntax) get_format_string(st);
@@ -1824,6 +1839,10 @@
 			}
 			/* Support for both Alt-V and Ctrl-V for Paste, for backward compatibility reasons */
 			else if (G.qual & LR_ALTKEY || G.qual & LR_CTRLKEY) {
+				if (text && text->id.lib) {
+					error_libdata();
+					break;
+				}
 				/* Throwing in the Shift modifier Paste from the OS clipboard */
 				if (G.qual & LR_SHIFTKEY)
 					txt_paste_clipboard(text);
@@ -1836,6 +1855,10 @@
 			break; /* BREAK V */
 		case XKEY:
 			if (G.qual == LR_ALTKEY || G.qual == LR_CTRLKEY) {
+				if (text && text->id.lib) {
+					error_libdata();
+					break;
+				}
 				txt_cut_sel(text);
 				if (st->showsyntax) get_format_string(st);
 				do_draw= 1;	
@@ -1854,6 +1877,10 @@
 			}
 			break;
 		case TABKEY:
+			if (text && text->id.lib) {
+				error_libdata();
+				break;
+			}
 			if (G.qual & LR_SHIFTKEY) {
 				if (txt_has_sel(text)) {
 					txt_order_cursors(text);
@@ -1874,6 +1901,10 @@
 			st->currtab_set = setcurr_tab(text);
 			break;
 		case RETKEY:
+			if (text && text->id.lib) {
+				error_libdata();
+				break;
+			}
 			//double check tabs before splitting the line
 			st->currtab_set = setcurr_tab(text);
 			txt_split_curline(text);
@@ -1892,6 +1923,10 @@
 			pop_space_text(st);
 			break;
 		case BACKSPACEKEY:
+			if (text && text->id.lib) {
+				error_libdata();
+				break;
+			}
 			if (G.qual & (LR_ALTKEY | LR_CTRLKEY)) {
 				txt_backspace_word(text);
 			} else {
@@ -1903,6 +1938,10 @@
 			pop_space_text(st);
 			break;
 		case DELKEY:
+			if (text && text->id.lib) {
+				error_libdata();
+				break;
+			}
 			if (G.qual & (LR_ALTKEY | LR_CTRLKEY)) {
 				txt_delete_word(text);
 			} else {

Modified: branches/soc-2008-quorn/source/blender/src/header_text.c
===================================================================
--- branches/soc-2008-quorn/source/blender/src/header_text.c	2008-06-08 10:48:37 UTC (rev 15161)
+++ branches/soc-2008-quorn/source/blender/src/header_text.c	2008-06-08 19:29:19 UTC (rev 15162)
@@ -346,6 +346,10 @@
 		txt_do_redo(text);
 		break;
 	case 3:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		txt_copy_clipboard(text);
 		txt_cut_sel(text);
 		pop_space_text(st);
@@ -355,6 +359,10 @@
 		txt_copy_clipboard(text);
 		break;
 	case 5:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		txt_paste_clipboard(text);
 		if (st->showsyntax) get_format_string(st);
 		break;
@@ -457,6 +465,10 @@
 	
 	switch(event) {
 	case 3:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		if (txt_has_sel(text)) {
 			txt_order_cursors(text);
 			indent(text);
@@ -467,6 +479,10 @@
 			break;
 		}
 	case 4:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		if ( txt_has_sel(text)) {
 			txt_order_cursors(text);
 			unindent(text);
@@ -474,6 +490,10 @@
 		}
 		break;
 	case 5:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		if ( txt_has_sel(text)) {
 			txt_order_cursors(text);
 			comment(text);
@@ -482,6 +502,10 @@
 		}
 		break;
 	case 6:
+		if (text && text->id.lib) {
+			error_libdata();
+			break;
+		}
 		if ( txt_has_sel(text)) {
 			txt_order_cursors(text);
 			uncomment(text);
@@ -818,14 +842,14 @@
 				len = PATH_MAX-1;
 			strncpy(fname, text->name, len);
 			fname[len]='\0';
+			if (text->flags & TXT_ISDIRTY)
+				sprintf(headtxt, "File: *%s (unsaved)", fname);
+			else
+				sprintf(headtxt, "File: %s", fname);
 		} else {
-			strcpy(fname, "Internal");
+			sprintf(headtxt, text->id.lib?"Text: External":"Text: Internal");
 		}
 		BIF_ThemeColor(TH_MENU_TEXT);
-		if (text->flags & TXT_ISDIRTY)
-			sprintf(headtxt, "File: *%s (unsaved)", fname);
-		else
-			sprintf(headtxt, "File: %s", fname);
 		glRasterPos2i(xco+=XIC, 5);
 		BMF_DrawString(G.font, headtxt);
 		xco += BMF_GetStringWidth(G.font, headtxt);





More information about the Bf-blender-cvs mailing list