/usr/share/doc/gnat-gps/html/Disabling-Project-Edition-Features.html is in gnat-gps-doc 5.0-16.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 2002-2010 AdaCore.
This document is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see http://www.gnu.org/licenses/.
A copy of the license is included in the section entitled
"GNU General Public License". -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using the GNAT Programming Studio: Disabling Project Edition Features</title>
<meta name="description" content="Using the GNAT Programming Studio: Disabling Project Edition Features">
<meta name="keywords" content="Using the GNAT Programming Studio: Disabling Project Edition Features">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-table.html#Index-table" rel="index" title="Index table">
<link href="Project-Handling.html#Project-Handling" rel="up" title="Project Handling">
<link href="The-Project-Menu.html#The-Project-Menu" rel="next" title="The Project Menu">
<link href="Project-View.html#Project-View" rel="previous" title="Project View">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
pre.smallexample {background-color:rgb(240,240,240);
font-family: courier new,courier,fixed;
font-size: 14px;
margin: 0px 40px 0px 40px;
border-width: 1px 2px 2px 1px;
border-top-style: dotted;
border-left-style: dotted;
border-right-style: solid;
border-bottom-style: solid;
border-color: black;}
code {color:black;
font-family: courier new,courier,fixed;
font-size: 14px;}
body {font-family: arial,helvetica,sans-serif;
font-size: 16px;
max-width: 800px;
text-align: justify}
samp {font-family: courier new,courier,fixed;
font-size: 14px}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Disabling-Project-Edition-Features"></a>
<div class="header">
<p>
Next: <a href="The-Project-Menu.html#The-Project-Menu" accesskey="n" rel="next">The Project Menu</a>, Previous: <a href="Project-View.html#Project-View" accesskey="p" rel="previous">Project View</a>, Up: <a href="Project-Handling.html#Project-Handling" accesskey="u" rel="up">Project Handling</a> [<a href="Index-table.html#Index-table" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Disabling-Project-Edition-Features-1"></a>
<h3 class="section">7.6 Disabling Project Edition Features</h3>
<a name="index-project-editing"></a>
<p>The project files should generally be considered as part of the sources,
and thus be put under control of a version control system. As such, you
might want to prevent accidental editing of the project files, either
by you or some other person using the same GPS installation.
</p>
<p>The main thing to do to prevent such accidental edition is to change
the write permissions on the project files themselves. On Unix systems,
you could also change the owner of the file. When GPS cannot write a
project file, it will report an error to the user.
</p>
<p>However, the above doesn’t prevent a user from trying to do some
modifications at the GUI level, since the error message only occurs when
trying to save the project (this is by design, so that temporary modification
can be done in memory).
</p>
<p>You can disable all the project editing related menus in GPS by adding
special startup switches. The recommended way is to create a small batch
script that spawns GPS with these switches. You should use the following
command line:
</p>
<div class="smallexample">
<pre class="smallexample"> gps --traceoff=MODULE.PROJECT_VIEWER --traceoff=MODULE.PROJECT_PROPERTIES
</pre></div>
<p>What these do it prevent the loading of the two GPS modules that are
responsible for project edition. However, this also has an impact on the
python functions that are exported by GPS, and thus could break some
plug-ins. Another solution which might apply in your case is simply to
hide the corresponding project-editing menus and contextual menus. This
could be done by creating a small python plugin for GPS
(see <a href="Customizing-through-XML-and-Python-files.html#Customizing-through-XML-and-Python-files">Customizing through XML and Python files</a>, which contains the
following code:
</p>
<div class="smallexample">
<pre class="smallexample">import GPS
GPS.Menu.get ("/Project/Edit Project Properties").hide()
GPS.Contextual ('Edit project properties').hide()
GPS.Contextual ('Save project').hide()
GPS.Contextual ('Add configuration variable').hide()
</pre></div>
<hr>
<div class="header">
<p>
Next: <a href="The-Project-Menu.html#The-Project-Menu" accesskey="n" rel="next">The Project Menu</a>, Previous: <a href="Project-View.html#Project-View" accesskey="p" rel="previous">Project View</a>, Up: <a href="Project-Handling.html#Project-Handling" accesskey="u" rel="up">Project Handling</a> [<a href="Index-table.html#Index-table" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|