<p dir="auto">At the moment, when creating a project, the user is greeted with the<br>
dialog containing:</p>
<ol dir="auto">
<li>Name</li>
<li>Filename</li>
<li>Base path</li>
</ol>
<p dir="auto">The user is expected to type the name of the project into (1), and then,<br>
Geany tries to guess the base path and file name. The guess simply takes<br>
the project directory specified in settings and appends the name. When the<br>
project is located anywhere else than in the projects directory,<br>
the guessed values are wrong and have to be entered manually which is<br>
quite annoying. In addition, the dialog doesn't make it clear that the<br>
user should start with (1), when he starts with (2) or (3), he has to<br>
fill in all 3 values manually.</p>
<p dir="auto">I think we can do better - instead of entering the project name and<br>
guessing base path based on that, we can go the other way round; first,<br>
get the base path and then, from the base path provided by the user,<br>
set the project name and project file.</p>
<p dir="auto">With this approach, Project->New:<br>
a. First pops up a open directory dialog to specify base path<br>
b. After that, opens the (currently used) New Project dialog which<br>
is pre-filled in the following way:</p>
<ol dir="auto">
<li>Name: The last directory in base_path</li>
<li>Filename: depending on "store project file inside the project base<br>
directory" settings either in base_path/(1).geany or projects_dir/(1).geany</li>
<li>Base path: path specified in (a)</li>
</ol>
<p dir="auto">This way, in most cases, the user will only have to select the base<br>
directory in the first step and use the pre-filled values without<br>
any modification no matter whether the project is stored in the projects<br>
directory or not.</p>
<p dir="auto">The other 2 patches:</p>
<ol dir="auto">
<li>Simplify configuration of the project by automatically opening the project properties dialog upon project creation.</li>
<li>Use "Store project file inside the project base directory" by default<br>
For more description of these 2 patches, see the commit messages.</li>
</ol>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany/pull/3018'>https://github.com/geany/geany/pull/3018</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/geany/geany/pull/3018/commits/f096aec7d404c6596d92b8d911d42c1ba9c7ac81" class="commit-link">f096aec</a>  Improve user experience when creating new projects</li>
  <li><a href="https://github.com/geany/geany/pull/3018/commits/e0ed6b38dc448486c1c079a9d220d818e40a4f1e" class="commit-link">e0ed6b3</a>  Automatically open Project Properties dialog upon project creation</li>
  <li><a href="https://github.com/geany/geany/pull/3018/commits/ffa5009325503807dc1446c181042f194258f1f6" class="commit-link">ffa5009</a>  Store project files in base directory by default</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/geany/geany/pull/3018/files">4 files</a>)</p>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3018/files#diff-2810524eed127fdf86cd7a7aaac164efa0d240a2da10844304e79e0307dccaf3">src/keyfile.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3018/files#diff-08a2b89559e9135e3864640c098dc6367f44fdf0816a023ec7aab4a2edaa251c">src/project.c</a>
    (67)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3018/files#diff-8396dc9c2232193e29aaeddbcf7fa02add25c3c2b855f56c3e5307dc34fcfcf3">src/ui_utils.c</a>
    (15)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/3018/files#diff-c5e507f1f38d770eac7b5a9c906195bdebc43bb064ed4b6af981cdce102f14ff">src/ui_utils.h</a>
    (2)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany/pull/3018.patch'>https://github.com/geany/geany/pull/3018.patch</a></li>
  <li><a href='https://github.com/geany/geany/pull/3018.diff'>https://github.com/geany/geany/pull/3018.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/3018">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ24V7NGDVDXQ5UMD4TUNV2HFANCNFSM5IXHKYAA">unsubscribe</a>.<br />Triage notifications on the go with GitHub Mobile for <a href="https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675">iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub">Android</a>.
<img src="https://github.com/notifications/beacon/AAIOWJ2S326U3TBDSX5TNQ3UNV2HFA5CNFSM5IXHKYAKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4P24EVLA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/pull/3018",
"url": "https://github.com/geany/geany/pull/3018",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>