def save(self, signal_dic): file = signal_dic[defaults._signal_file_key_] asset = asset_core.string_to_asset( signal_dic[defaults._signal_asset_key_]) filename = os.path.basename(file) filename = filename.split('.')[0] if filename == folder(asset).work_name_template: version = folder(asset).version_from_file(file) if version.isdigit(): asset.version = prefs.asset(asset).software.new_version( version=version) time.sleep(1) try: im_file = prefs.asset(asset).software.image screen_tools.screen_shot_current_screen(im_file) except: logger.critical(str(traceback.format_exc())) # Try refreshing the ui try: send_signal.refresh_signal() logger.info('{} saved ({})'.format(file, asset.software)) send_signal.save_signal() stats().add_xp(2) stats().add_version(asset) except: pass
def create_user(self): user_name = self.ui.user_name_lineEdit.text() promotion = self.ui.class_comboBox.currentText() email = self.ui.user_email_lineEdit.text() full_name = self.ui.full_name_lineEdit.text() password = self.ui.password_lineEdit.text() admin = self.ui.admin_checkBox.isChecked() if not self.check_confirm(): logger.error("Passwords doesn't matches...") elif not self.image_file: logger.error("Please choose an avatar") else: QApplication.processEvents() self.ui.create_user_button.setText('Checking email...') QApplication.processEvents() if self.confirm_email(user_name, email, full_name): QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) QApplication.processEvents() self.ui.create_user_button.setText('Creating user...') QApplication.processEvents() if self.site.create_user(user_name, promotion, email, password, admin, full_name): QApplication.processEvents() stats(user_name).create_user(self.image_file) QApplication.processEvents() QApplication.restoreOverrideCursor() QApplication.processEvents() self.ui.create_user_button.setText('Created !') QApplication.processEvents() time.sleep(1) QApplication.processEvents() prefs.set_user(user_name) self.accept()
def rebuild_work_stats(): project_dic = project.read_project() asset_version_list = [] stats().reset_versions_count() for domain in project_dic.keys(): for category in project_dic[domain].keys(): for name in project_dic[domain][category].keys(): for stage in project_dic[domain][category][name].keys(): asset = asset_core.asset(domain=domain, category=category, name=name, stage=stage) for variant in prefs().asset(asset).stage.variants: if variant and variant != 'None': asset.variant = variant for software in prefs().asset( asset).stage.softwares: asset.software = software version_list = prefs().asset( asset).software.versions for version in version_list: if version != '0000': asset.version = version if prefs().asset( asset ).software.version_user == prefs( ).user: asset_version_list.append(asset) stats().add_version(asset)
def change_avatar(self): options = QFileDialog.Options() fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "", "All Files (*);;Python Files (*.py)", options=options) if fileName: if fileName.split('.')[-1].upper() == 'PNG' or fileName.split('.')[-1].upper() == 'JPG' or fileName.split('.')[-1].upper() == 'JPEG': stats().add_avatar(fileName) self.refresh_widget() else: logger.warning('Please select a valid image !')
def fill_ui(self): self.ui.room_button_name_label.setText(self.context) if self.context == defaults._chat_general_: image = defaults._chat_home_ else: if self.context in prefs.site.users: image = stats(self.context).get_avatar() else: image = defaults._chat_no_image_ self.rounded_pixmap_label(self.ui.room_button_image_label, image)
def get_save_stats(): versions_dic = stats().get_versions() design_saves = versions_dic[defaults._design_] geo_saves = versions_dic[defaults._geo_] rig_saves = versions_dic[defaults._rig_] texturing_saves = versions_dic[defaults._texturing_] hair_saves = versions_dic[defaults._hair_] shading_saves = versions_dic[defaults._shading_] return [ design_saves, geo_saves, rig_saves, texturing_saves, hair_saves, shading_saves ]
def refresh_widget(self): self.ui.user_name_label.setText(pref.user) user_image = stats(pref.user).get_avatar() user_promotion = pref.promotion is_admin = pref.admin if is_admin: self.ui.admin_image_label.setVisible(1) self.ui.admin_image_label.setPixmap( QtGui.QPixmap(defaults._key_icon_).scaled(16, 16, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) else: self.ui.admin_image_label.setVisible(0) self.ui.admin_image_label.setPixmap(QtGui.QPixmap('')) self.ui.promotion_label.setText(user_promotion) level = stats(pref.user).get_level() xp = float(stats(pref.user).get_xp()) self.ui.user_image_pushButton.setIconSize(QtCore.QSize(64, 64)) self.ui.user_image_pushButton.setIcon(QtGui.QIcon(user_image)) self.round_image(self.ui.user_image_pushButton, user_image) self.ui.level_label_number.setText(level) self.ui.xp_progressBar.setValue(xp) self.check_opened_tickets()
def show_work_stats(): all_versions = get_all_versions() versions_dic = stats().get_versions() design_percent = (versions_dic[defaults._design_] / all_versions) * 100 geo_percent = (versions_dic[defaults._geo_] / all_versions) * 100 rig_percent = (versions_dic[defaults._rig_] / all_versions) * 100 hair_percent = (versions_dic[defaults._hair_] / all_versions) * 100 texturing_percent = (versions_dic[defaults._texturing_] / all_versions) * 100 shading_percent = (versions_dic[defaults._shading_] / all_versions) * 100 return [ design_percent, geo_percent, rig_percent, hair_percent, texturing_percent, shading_percent ]
def add_user_view(self, user): if (user not in list( self.users_views_dic.keys())) and (user != self.user) and ( user != self.msg_dic[defaults._chat_user_]): user_label = QtWidgets.QLabel() user_label = QtWidgets.QLabel() user_label.setMinimumSize(QtCore.QSize(26, 26)) user_label.setMaximumSize(QtCore.QSize(26, 26)) user_label.setText("") user_label.setAlignment(QtCore.Qt.AlignCenter) self.round_image_label(user_label, stats(user).get_avatar()) self.users_views_dic[user] = user_label self.users_views_layout.addWidget(user_label) self.toggle_users_view_layout()
def show_stats(): all_events = wall().get_all_keys() events_dic = wall().open_wall_file() stages_list = list() for event in all_events: if events_dic[event][defaults._creation_user_key_] == prefs( ).user and events_dic[event][ defaults._wall_id_key_] == defaults._wall_publish_event_: asset_string = events_dic[event][defaults._asset_key_] asset = asset_core.string_to_asset(asset_string) if asset.stage and asset.stage != 'None': stages_list.append(asset.stage) all_versions = get_all_versions() + len(stages_list) versions_dic = stats().get_versions() design_occu = stages_list.count(defaults._design_) design_percent = ( (design_occu + versions_dic[defaults._design_]) / all_versions) * 100 geo_occu = stages_list.count(defaults._geo_) geo_percent = ( (geo_occu + versions_dic[defaults._geo_]) / all_versions) * 100 rig_occu = stages_list.count(defaults._rig_) rig_percent = ( (rig_occu + versions_dic[defaults._rig_]) / all_versions) * 100 hair_occu = stages_list.count(defaults._hair_) hair_percent = ( (hair_occu + versions_dic[defaults._hair_]) / all_versions) * 100 texturing_occu = stages_list.count(defaults._texturing_) texturing_percent = ( (texturing_occu + versions_dic[defaults._texturing_]) / all_versions) * 100 shading_occu = stages_list.count(defaults._shading_) shading_percent = ( (shading_occu + versions_dic[defaults._shading_]) / all_versions) * 100 return [ design_percent, geo_percent, rig_percent, hair_percent, texturing_percent, shading_percent ]
def connected_functions(self): self.ui.chat_room_add_file_pushButton.setIcon( QtGui.QIcon(defaults._attachment_icon_)) self.ui.chat_room_thumb_pushButton.setIcon( QtGui.QIcon(defaults._thumb_icon_)) self.ui.chat_send_pushButton.setIcon( QtGui.QIcon(defaults._send_message_icon_)) self.ui.chat_emoji_pushButton.setIcon( QtGui.QIcon(defaults._emoji_icon_)) self.ui.chat_message_lineEdit.textChanged.connect(self.analyse_text) self.ui.chat_room_thumb_pushButton.clicked.connect(self.send_thumb) self.ui.chat_room_close_quote_pushButton.clicked.connect( self.remove_quote) if self.context == defaults._chat_general_: image = defaults._chat_home_ else: if self.context in prefs.site.users: image = stats(self.context).get_avatar() else: image = defaults._chat_no_image_ self.rounded_pixmap_label(self.ui.chat_room_image_label, image) self.ui.chat_room_add_file_pushButton.clicked.connect(self.attach_file) self.ui.chat_room_remove_file_pushButton.setIcon( QtGui.QIcon(defaults._kill_process_icon_)) self.ui.chat_room_close_quote_pushButton.setIcon( QtGui.QIcon(defaults._kill_process_icon_)) self.ui.chat_room_remove_file_pushButton.clicked.connect( self.remove_file) self.ui.chat_send_pushButton.clicked.connect(self.send_msg) self.ui.chat_emoji_pushButton.clicked.connect(self.show_emoji_keyboard) self.send_sc = QtWidgets.QShortcut( QtGui.QKeySequence(QtCore.Qt.Key_Return), self) self.send_sc.activated.connect(self.send_msg) area_scroll_bar = self.ui.scrollArea.verticalScrollBar() area_scroll_bar.rangeChanged.connect( lambda: area_scroll_bar.setValue(area_scroll_bar.maximum())) self.ui.chat_room_context_label.setText(self.context)
def __init__(self, user, text, file): super(Main, self).__init__() # Build the ui from ui converted file self.ui = Ui_Form() self.ui.setupUi(self) self.user = user self.file = file if not self.file: self.ui.chat_file_pushButton.hide() self.user_image = stats(self.user).get_avatar() self.text = text if not self.text or self.text == '': self.ui.message_widget_label.hide() self.setup_widget() self.shadow = QtWidgets.QGraphicsDropShadowEffect() self.shadow.setBlurRadius(8) self.shadow.setColor(QtGui.QColor(0, 0, 0, 180)) self.shadow.setXOffset(0) self.shadow.setYOffset(0) self.setGraphicsEffect(self.shadow)
def __init__(self, user): super(user_widget, self).__init__() self.main_layout = QtWidgets.QVBoxLayout(self) self.setLayout(self.main_layout) self.user_image_label = QtWidgets.QLabel() self.user_image_label.setMinimumSize(QtCore.QSize(60, 60)) self.user_image_label.setMaximumSize(QtCore.QSize(60, 60)) self.rounded_pixmap_label(self.user_image_label, stats(user).get_avatar()) self.main_layout.addWidget(self.user_image_label) self.setMaximumSize(QtCore.QSize(4000, 60)) self.setMinimumSize(QtCore.QSize(60, 60)) self.main_layout.setContentsMargins(0, 5, 5, 5) if user == prefs.user: self.setLayoutDirection(QtCore.Qt.RightToLeft) self.main_layout.setContentsMargins(5, 5, 0, 5)
def create(self, in_out=None, batch=None): # Call the "stats" wizard object # To interact with it stats_prefs = stats() print('current_task:Creating {} - {} - {} - {} - {}'.format( self.domain, self.category, self.name, self.stage, self.variant)) print('current_status:Starting...') print('percent:0') sys.stdout.flush() # Check if a category was given to the "asset" class # Check if a name was given to the "asset" class # Check if a stage was given to the "asset" class # Check if a variant was given to the "asset" class # Then create the asked parts, if parts are none, # the parent part is created, recursively if self.category != None and\ self.name == None and\ self.stage == None and\ self.variant == None: # Create and check the return in the same line if build.create_category(self): # Add "xp" to the user using the "stats" wizard module stats_prefs.add_xp(20) # Return the succeed of the "build" wizard function print('percent:100') sys.stdout.flush() time.sleep(0.1) return 1 else: return 0 elif self.name != None and\ self.stage == None and\ self.variant == None: # Create and check the return in the same line if build.create_name(self, in_out): # Add "xp" to the user using the "stats" wizard module stats_prefs.add_xp(20) # Return the succeed of the "build" wizard function print('percent:100') sys.stdout.flush() time.sleep(0.1) return 1 else: return 0 elif self.stage != None and\ self.variant == None: # Create and check the return in the same line if build.create_stage(self): # Assign the default variant (main) to the asset self.variant = defaults._main_variant_ # Create the variant and check the return in the same line if build.create_variant(self): # Add "xp" to the user using the "stats" wizard module stats_prefs.add_xp(20) # Return the succeed of the "build" wizard function print('percent:100') sys.stdout.flush() time.sleep(0.1) return 1 else: return 0 else: return 0 elif self.variant != None: # Create and check the return in the same line if build.create_variant(self): # Add "xp" to the user using the "stats" wizard module stats_prefs.add_xp(20) # Return the succeed of the "build" wizard function print('percent:100') sys.stdout.flush() time.sleep(0.1) return 1 else: return 0 else: return 0
def get_all_versions(): versions_dic = stats().get_versions() all_versions = 0 for stage in versions_dic.keys(): all_versions += versions_dic[stage] return all_versions