123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- # THIS FILE IS A PART OF VCStudio
- # PYTHON 3
- # This a console project manager.
- import os
- import sys
- import urllib3
- # GTK module ( Graphical interface
- import gi
- gi.require_version('Gtk', '3.0')
- from gi.repository import Gtk
- from gi.repository import GLib
- from gi.repository import Gdk
- import cairo
- # Own modules
- from settings import settings
- from settings import talk
- from project_manager import pm_project
- #UI modules
- from UI import UI_elements
- from UI import UI_color
- def layer(win):
-
- # Making the layer
- surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, win.current['w'],
- win.current['h'])
- layer = cairo.Context(surface)
-
-
- #text setting
- layer.select_font_face("Monospace", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
-
- UI_color.set(layer, win, "dark_overdrop")
- layer.rectangle(
- 0,
- 0,
- win.current["w"],
- win.current["h"],
- )
- layer.fill()
-
- # So it's going to be like a little window in the center of the VCStudio
- # with a simple UI. Probably like 2 things. Folder and a projectname.
-
- UI_color.set(layer, win, "node_background")
- UI_elements.roundrect(layer, win,
- win.current["w"]/2-250,
- win.current["h"]/2-50,
- 500,
- 200,
- 10)
-
- # Title of the operation. Incase the user forgot.
- UI_elements.text(layer, win, "installing_project_title",
- win.current["w"]/2-250,
- win.current["h"]/2-15,
- 500,
- 30,
- 10,
- fill=False,
- centered=True,
- editable=False)
-
- win.text["installing_project_title"]["text"] = talk.text("update_installing")
-
- frame = win.current["frame"] - win.update["frame"] - 50
- files = win.update["get_files"]
- if win.settings["Update_all"]:
- files = win.update["get_all_files"]
-
- UI_color.set(layer, win, "progress_background")
- UI_elements.roundrect(layer, win,
- win.current["w"]/2-200,
- win.current["h"]/2+70,
- 400,
- 20,
- 10)
-
- if frame in range(-1, len(files)):
-
- filename = files[frame]
-
- try:
- UI_color.set(layer, win, "text_normal")
- layer.set_font_size(15)
- layer.move_to(win.current["w"]/2-(len(files[frame+1])*9)/2,
- win.current["h"]/2+50)
- layer.show_text(files[frame+1])
- except:
- pass
-
- path = "https://notabug.org/troler/foo/raw/master/"
- url = path+filename
-
- http = urllib3.PoolManager()
- r = http.request('GET', url, preload_content=False)
-
- try:
- os.makedirs(filename[:filename.rfind("/")])
- except:
- pass
-
- with open(filename, 'wb') as out:
- while True:
- data = r.read(1024)
- if not data:
- break
- out.write(data)
- r.release_conn()
-
-
- fraction = ((frame + 1) / len(files))
- if fraction > 1:
- fraction = 1
-
- UI_color.set(layer, win, "progress_active")
- UI_elements.roundrect(layer, win,
- win.current["w"]/2-200,
- win.current["h"]/2+70,
- (400)*fraction,
- 20,
- 10)
- if frame > len(files)+30:
- os.execl(sys.executable, sys.executable, *sys.argv)
-
- return surface
|