Documenation | Project Manager | Version 20.128
Jeison Yehuda Amihud (Blender Dumbass) edited this page 4 years ago

NOTE: This Documentation Article is written for a specific verion of VCStudio mentioned in the title. If you have a newer version, some things might be changed. There could be a newer version of this article in the wiki. If there is non. Please be aware of possible changes. The Version could be found in the bottom, right corner of VCStudio

COPYLEFT: This article is a part of VCStudio and might be used and reproduced using either GNU General Public License or CC-BY-SA.

Project Manager

Content:

  • Video Tutorial
  • Simple guide
  • Advanced explanation

Video Tutorial

Simple Guide

The Project Manager is the part of VCStudio where you select, create or look for your project. It's also a part where you update VCStudio and do various global settings.

Creating New Projects

You want to start doing a project but there is non. In order to create a new project you have a button in the top, left corner. Press it.

The following setting will be presented to you.

  • Select Folder. Folder where the new project will be created. Note: It's not a project's folder, it's a folder where all new project's folders will be
  • New Project Name. The name of your new project.

I'm going to create a new project called For_Documentation on the Desktop.

Then I press the little okay button and it appears in the list of current projects.

Scanning For Projects

Under the New project button you can see a button for Scanning projects. Clicking it will look through the entire operating system and will find all the project currently on it. It's usefull if for any reason you had the projects there before. Or you've copied the project from another computer.

Converting Legacy Projects

The scanning will give you not only VCStudio projects but also Blender-Organizer projects. They will have a red top.

Selecting one will present you with a third button in the top, left corner. Clicking which will turn the legacy Blender-Organizer project into a new VCStudio project.

Bottom, Left corner

In the bottom left corner. You can see 3 more icons. The help, update and setting buttons. Let's go over each of them quickly.

Help

Help will present you with various links and information about VCStudio.

Update

When a new update is available update will let you install it without going through the hastle of reinstalling the VCStudio. Also clicking on version will let you read an article about it. And clicking on separate files in the version will give you the full history of that file in this repository.

Settings

In the settings you change simple things like language and whether Blur works. But there a very important setting of a VCStduio-user username. This is very important for multiuser that every user will have a separate username.

Advanced explanation

The folowing part of the article is for hard core nerdy people who want to know how everything works. And contains redundant information for a simple person that just want to use VCStudio. Anyway here it is.

Files

The best documentation is to read the code of the software directly. And in order to read about Project Manager you will need to read this whole folder of files.

How VCStudio draws graphics?

Well to draw graphics VCStudio using what called GTK. When project_manager/pm_gtk.py is running. It imports a python Gtk module. Which is a library to draw Graphical User Interfaces in GNU / Linux. But I'm not using all of the Gtk library. VCStudio has a unique, custom Graphical interface. Which is done using a thing called Gtk.DrawingArea which allows me to draw any custom stuff I want using a different library called Cairo. Appart from the window it self and some basic functions like button press events, mouse events and clipboard I'm using my own stuff written primarily in cairo. You can see the folder UI to read about various elements I wrote for frequent reuse in VCStudio. Things like buttons, text entries and scrolling areas. They are all custom because I want the flexibility and freedom to do what ever weird thing I want with them. If I want to have a button with in a button that you need to chase with the mouse I can do it using my toolkit. Not so much using standard Gtk.

How do I test graphics?

In the top, right corner you have a hidden button. If you click it you will enter a testing mode. Which will show you stuff like where are all the individual buttons and images and what is a current FPS and current button presses with the current button values.

How the scanning works?

The scan() is looking through every path on the system. Every folder that exists in the OS. And looks the end of the string. If it finds /ast/chr in the end of the string. It probably means that this belongs to a project from VCStudio / Blender-Organizer type. Tho there are obvious problems with this approach. And I will be looking at modifying it in future.

How VCStudio know which project is New and which is Legacy?

In the new projects all the analytics and nasty data files are hidden under a /set/ folder. While in the legacy Blender- Organizer project they are all over the place. And there is no such thing as a /set/ folder. So using this information I can guess whether the project is one or the other. There are other stuff at play. And the function might mature over time. So look at is_legacy() function.

How the conversion works?

This is a big pile of potatoes. Basically studio/story.py, studio/checklist.py and studio/analytics.py read a bunch of stuff from the legacy project. And then save all this stuff it in the new format.

What formats does VCStudio use?

Blender-Organizer legacy had a bunch of weird, custom, but all text based formats trough out the project. Some of them such as checklists ( .progress ) stayed pretty much the same. But analytics, scheduling, history and even story I chose to write into a JSON file this time. The story is saved into /pln/story.vcss VCSS stands for VCStudio Script. But it's a re-named JSON file. Some simple stuff could be in a .data file. Which is usually a very straigh forward text document. I was trying to design them such as that when a person opens them in a text editor they will understand right away what is the structure. I don't know if I failed. But the intention was to make them easy to understand.

How does update work?

Updates in VCStudio is unintentionally complex. But the core concept is quite simple. At the startup 1 script launches another script that requests from the internet this file. Which is the update.data file from the settings. It compares the current one to the one got from the internet and sees how many versions there was between the last update and the current newest version. And since all the the changed files are written in the update.data file. It can make a full list of files that need to be changed. It downloads them one by one and overwrites the files on the computer.

With every version there is also a link. Usually to the LBRY channel. With the explanation about the update.

What is this Username I need to setup?

When a multiuser will be implemented there will be a need for the VCStudio to distinguish between multiple users working on the project. If each user has a unique username, every user will have easier time to know who done what or who has what to do. Instead of it all being one huge pile of data.