Пример #1
0
def query_tab_names():
    """
    Create Tabs from maya-type sTypes
    """
    search_type = 'sthpw/search_object'
    if env.Mode().get == 'standalone':
        filters = [('type', env.Env().get_types_list()), ('namespace', env.Env().get_namespace())]
    else:
        filters = [('type', env.Mode().get), ('namespace', env.Env().get_namespace())]

    assets = server_query(search_type, filters)

    out_tabs = {
        'names': [],
        'codes': [],
        'layouts': [],
        'colors': [],
    }
    if assets:
        for asset in assets:
            asset_get = asset.get
            out_tabs['names'].append(asset_get('title'))
            out_tabs['codes'].append(asset_get('code'))
            out_tabs['layouts'].append(asset_get('layout'))
            out_tabs['colors'].append(asset_get('color'))

    return out_tabs
Пример #2
0
 def close_routine():
     if env.Mode().get == 'maya':
         maya_dock_instances = mf.get_maya_dock_window()
         for maya_dock_instance in maya_dock_instances:
             maya_dock_instance.close()
             maya_dock_instance.deleteLater()
     if env.Mode().get == 'standalone':
         self.close()
Пример #3
0
    def readSettings(self):
        """
        Reading Settings
        """
        self.setWindowTitle(self.ui_main_window.windowTitle())
        self.settings.beginGroup(env.Mode().get + '/ui_maya_dock')
        is_floating = self.settings.value('isFloating',
                                          'false') == 'true' and True or False
        self.move(self.settings.value('pos', QtCore.QPoint(200, 200)))
        size = self.settings.value('size', QtCore.QSize(427, 690))
        if self.settings.value('tabArea', self) == 2:
            area = 'right'
        else:
            area = 'left'
        self.settings.endGroup()

        self.setDockableParameters(dockable=True,
                                   floating=is_floating,
                                   area=area,
                                   width=size.width(),
                                   height=size.height())
        self.parent().setAllowedAreas(
            QtCore.Qt.DockWidgetArea.RightDockWidgetArea
            | QtCore.Qt.DockWidgetArea.LeftDockWidgetArea)

        self.show()
        self.raise_()
Пример #4
0
 def readSettings(self):
     """
     Reading Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_addsobject')
     self.setGeometry(self.settings.value('geometry', QtCore.QRect(500, 400, 500, 350)))
     self.settings.endGroup()
Пример #5
0
 def readSettings(self):
     """
     Reading Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_checkout')
     tab_name = self.objectName().split('/')
     group_path = '{0}/{1}/{2}'.format(tab_name[0],
                                       env.Env().get_project(), tab_name[1])
     self.settings.beginGroup(group_path)
     self.commentsSplitter.restoreState(
         self.settings.value('commentsSplitter'))
     self.descriptionSplitter.restoreState(
         self.settings.value('descriptionSplitter'))
     self.imagesSplitter.restoreState(self.settings.value('imagesSplitter'))
     self.searchLineEdit.setText(
         self.settings.value('searchLineEdit_text', ''))
     self.contextComboBox.setCurrentIndex(
         self.settings.value('contextComboBox', 0))
     self.add_items_to_results(self.searchLineEdit.text())
     try:
         gf.revert_expanded_state(self.resultsTreeWidget,
                                  self.settings.value(
                                      'resultsTreeWidget_isExpanded', None),
                                  expand=True)
         gf.revert_expanded_state(self.resultsTreeWidget,
                                  self.settings.value(
                                      'resultsTreeWidget_isSelected', None),
                                  select=True)
     except:
         pass
     self.settings.endGroup()
     self.settings.endGroup()
Пример #6
0
    def readSettings(self):
        """
        Reading Settings
        """
        self.settings.beginGroup(env.Mode().get + '/ui_main')
        self.move(self.settings.value('float_notify_pos', self.pos()))
        self.resize(self.settings.value('float_notify_size', self.size()))

        lastUpdate = self.settings.value('float_notify_lastUpdate')

        now = QtCore.QDateTime.currentDateTimeUtc()
        # update_time = 60*60*24*5
        secs = self.update_secs

        if not lastUpdate:
            # secs = abs(lastUpdate.secsTo(now))
            if secs >= self.update_secs:
                print "Update is past due at load time"
                self.manual_update()
                return
            else:
                print "Still %d seconds left from last load, until next update" % secs

        self.start_update(secs)
        self.settings.endGroup()
Пример #7
0
    def readSettings(self):
        """
        Reading Settings
        """
        self.userNameLineEdit.setText(env.Env().get_user())
        self.passwordLineEdit.setText(env.Env().get_user())
        self.tacticEnvLineEdit.setText(env.Env().get_data_dir())
        self.tacticAssetDirLineEdit.setText(env.Env().get_asset_dir())
        self.tacticInstallDirLineEdit.setText(env.Env().get_install_dir())
        self.tacticServerLineEdit.setText(env.Env().get_server())
        if env.Mode().get == 'maya':
            self.currentWorkdirLineEdit.setText(cmds.workspace(q=True, dir=True))

        self.settings.beginGroup(env.Mode().get + '/ui_conf')
        self.configToolBox.setCurrentIndex(self.settings.value('configToolBox', 0))
        self.settings.endGroup()
Пример #8
0
    def reference_file(self):
        file_path = self.get_current_item_paths()[0]

        if env.Mode().get == 'maya':
            mf.reference_scene(file_path)
        else:
            pass
Пример #9
0
    def import_file(self):
        file_path = self.get_current_item_paths()[0]

        if env.Mode().get == 'maya':
            mf.import_scene(file_path)
        else:
            pass
Пример #10
0
def server_restart(first_run=False):
    def run_bat(restart=False):
        path = os.path.normpath(os.environ['TACTIC_INSTALL_DIR'] + os.sep + os.pardir)
        print('Starting TACTIC Server...')
        os.system(path + '/ServerRun.bat')
        print('Hold on for 3 seconds until server start...')
        time.sleep(3)
        server = get_server()

        if restart:
            ui_maya_dock.startup()
            conf_dialog.close()
        return server

    msb = QtGui.QMessageBox(QtGui.QMessageBox.Question, 'TACTIC Server not running!',
                            "<p>Looks like TACTIC Server isn't running!</p> <p>Start Server?</p>",
                            QtGui.QMessageBox.NoButton, env.Inst().ui_main)
    msb.addButton("Yes", QtGui.QMessageBox.YesRole)
    msb.addButton("Open config", QtGui.QMessageBox.AcceptRole)
    msb.addButton("No", QtGui.QMessageBox.NoRole)
    msb.exec_()
    reply = msb.buttonRole(msb.clickedButton())

    if reply == QtGui.QMessageBox.YesRole:
        run_bat()
    if reply == QtGui.QMessageBox.AcceptRole:
        conf_dialog = ui_conf_classes.Ui_configuration_dialogWidget()
        conf_dialog.configToolBox.setCurrentIndex(1)
        try_run = conf_dialog.buttonBox.addButton("Try Run", QtGui.QDialogButtonBox.YesRole)
        try_run.clicked.connect(lambda: run_bat(True))
        conf_dialog.show()
        sys.exit()
    if reply == QtGui.QMessageBox.NoRole:
        if env.Mode().get == 'maya':
            cmds.warning('Failed to run TACTIC Handler. TACTIC Server not running!')
        elif env.Mode().get == 'standalone':
            msg = QtGui.QMessageBox(QtGui.QMessageBox.Warning, 'Failed to run TACTIC Handler',
                                    'TACTIC Server not running!', QtGui.QMessageBox.NoButton, env.Inst().ui_main)
            msg.addButton("Close", QtGui.QMessageBox.AcceptRole)
            msg.exec_()
            rpl = msg.buttonRole(msg.clickedButton())
            if rpl == QtGui.QMessageBox.AcceptRole:
                sys.exit()
        else:
            print('Failed to run TACTIC Handler. TACTIC Server not running!')
        if first_run:
            sys.exit()
Пример #11
0
    def open_file(self):

        file_path, dir_path, all_process = self.get_current_item_paths()

        if env.Mode().get == 'maya':
            mf.open_scene(file_path, dir_path, all_process)
        else:
            gf.open_file_associated(file_path)
Пример #12
0
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_addsobject')
     self.settings.setValue('geometry', self.geometry())
     print('Done ui_addsobject settings write')
     self.settings.endGroup()
 def readSettings(self):
     """
     Reading Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_checkin')
     self.sObjTabWidget.setCurrentIndex(
         self.settings.value('sObjTabWidget', 0))
     self.settings.endGroup()
Пример #14
0
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_conf')
     self.settings.setValue('configToolBox', self.configToolBox.currentIndex())
     print('Done ui_conf settings write')
     self.settings.endGroup()
Пример #15
0
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_main')
     self.settings.setValue('float_notify_pos', self.pos())
     self.settings.setValue('float_notify_size', self.size())
     print('Done ui_float_notify settings write')
     self.settings.endGroup()
Пример #16
0
    def import_file_options(self):
        file_path = self.get_current_item_paths()[0]
        nested_item = self.resultsTreeWidget.itemWidget(
            self.resultsTreeWidget.currentItem(), 0)

        if env.Mode().get == 'maya':
            self.import_dialog = maya_dialogs.Ui_importOptionsWidget(
                file_path, nested_item)
            self.import_dialog.show()
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_checkin')
     self.settings.setValue('sObjTabWidget',
                            self.sObjTabWidget.currentIndex())
     print('Done ui_checkout_tab settings write')
     self.settings.endGroup()
     for tab in self.ui_tree:
         tab.writeSettings()
Пример #18
0
 def restart(self):
     ask_restart = QtGui.QMessageBox.question(self, 'Restart TACTIC Handler?',
                                              "<p>Looks like You have made changes which require restarting</p>"
                                              "<p>Perform restart?</p>",
                                              QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
     if ask_restart == QtGui.QMessageBox.Yes:
         self.close()
         if env.Mode().get == 'maya':
             reload(ui_maya_dock)
             ui_maya_dock.startup(restart=True)
         else:
             self.parent().close()
             self.parent().deleteLater()
Пример #19
0
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_maya_dock')
     self.settings.setValue('pos', self.parent().pos())
     self.settings.setValue('size', self.size())
     self.settings.setValue('isFloating', self.isFloating())
     self.settings.setValue(
         'tabArea',
         self.parent().parent().dockWidgetArea(self.parent()))
     print('Done general_ui settings write')
     self.settings.endGroup()
     self.deleteLater()
Пример #20
0
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_main')
     if self.windowState() == QtCore.Qt.WindowMaximized:
         state = True
     else:
         state = False
         self.settings.setValue('pos', self.pos())
         self.settings.setValue('size', self.size())
     self.settings.setValue("windowState", state)
     self.settings.setValue('main_tabWidget_currentIndex',
                            self.main_tabWidget.currentIndex())
     print('Done main_ui settings write')
     self.settings.endGroup()
Пример #21
0
 def readSettings(self):
     """
     Reading Settings
     """
     self.settings = QtCore.QSettings('TACTIC Handler',
                                      'TACTIC Handling Tool')
     self.settings.beginGroup(env.Mode().get + '/ui_main')
     self.move(self.settings.value('pos', self.pos()))
     self.resize(self.settings.value('size', self.size()))
     state = str(self.settings.value("windowState"))
     if state == 'true':
         print('maximized')
         self.setWindowState(QtCore.Qt.WindowMaximized)
     self.main_tabWidget.setCurrentIndex(
         self.settings.value('main_tabWidget_currentIndex', 0))
     self.settings.endGroup()
Пример #22
0
    def open_menu(self, position):
        nested_item = self.resultsTreeWidget.itemWidget(
            self.resultsTreeWidget.currentItem(), 0)
        indexes = self.resultsTreeWidget.selectedIndexes()
        # if self.resultsTreeWidget.currentItem().isExpanded():
        #     print('EXPANDED')
        level = None
        if len(indexes) > 0:

            level = 0
            index = indexes[0]
            while index.parent().isValid():
                index = index.parent()
                level += 1

        if level > 1 and nested_item.files:
            print(level)
            self.custom_menu = QtGui.QMenu()

            open_action = QtGui.QWidgetAction(self)
            open_widget = menu_widget.Ui_menuWidget(self)
            open_widget.label.setText('Open')
            open_action.setDefaultWidget(open_widget)
            open_action.triggered.connect(self.open_file)
            open_widget.toolButton.clicked.connect(self.open_file_options)

            reference_action = QtGui.QWidgetAction(self)
            reference_widget = menu_widget.Ui_menuWidget(self)
            reference_widget.label.setText('Reference')
            reference_action.setDefaultWidget(reference_widget)
            reference_action.triggered.connect(self.reference_file)
            reference_widget.toolButton.clicked.connect(
                self.reference_file_options)

            import_action = QtGui.QWidgetAction(self)
            import_widget = menu_widget.Ui_menuWidget(self)
            import_widget.label.setText('Import')
            import_action.setDefaultWidget(import_widget)
            import_action.triggered.connect(self.import_file)
            import_widget.toolButton.clicked.connect(self.import_file_options)

            self.custom_menu.addAction(open_action)
            if env.Mode().get == 'maya':
                self.custom_menu.addAction(reference_action)
                self.custom_menu.addAction(import_action)
            self.custom_menu.exec_(
                self.resultsTreeWidget.viewport().mapToGlobal(position))
 def writeSettings(self):
     """
     Writing Settings
     """
     self.settings.beginGroup(env.Mode().get + '/ui_checkin')
     tab_name = self.objectName().split('/')
     group_path = '{0}/{1}/{2}'.format(tab_name[0],
                                       env.Env().get_project(), tab_name[1])
     self.settings.beginGroup(group_path)
     self.settings.setValue('commentsSplitter',
                            self.commentsSplitter.saveState())
     self.settings.setValue('descriptionSplitter',
                            self.descriptionSplitter.saveState())
     self.settings.setValue('imagesSplitter',
                            self.imagesSplitter.saveState())
     self.settings.setValue('dropPlateSplitter',
                            self.dropPlateSplitter.saveState())
     self.settings.setValue('searchOptionsSplitter',
                            self.searchOptionsSplitter.saveState())
     self.settings.setValue('searchLineEdit_text',
                            self.searchLineEdit.text())
     self.settings.setValue('contextComboBox',
                            self.contextComboBox.currentIndex())
     self.settings.setValue(
         'searchByCodeRadioButton',
         self.searchOptionsGroupBox.byCodeRadioButton.isChecked())
     self.settings.setValue(
         'searchByNameRadioButton',
         self.searchOptionsGroupBox.byNameRadioButton.isChecked())
     self.settings.setValue(
         'searchAllProcessCheckBox',
         self.searchOptionsGroupBox.showAllProcessCheckBox.isChecked())
     if self.resultsTreeWidget.topLevelItemCount() > 0:
         self.settings.setValue(
             'resultsTreeWidget_isSelected',
             gf.expanded_state(self.resultsTreeWidget, is_selected=True))
         self.settings.setValue(
             'resultsTreeWidget_isExpanded',
             gf.expanded_state(self.resultsTreeWidget, is_expanded=True))
     print('Done ui_checkin_tree ' + self.objectName() + ' settings write')
     self.settings.endGroup()
     self.settings.endGroup()
Пример #24
0
    def get_current_item_paths(self):
        nested_item = self.resultsTreeWidget.itemWidget(
            self.resultsTreeWidget.currentItem(), 0)
        file_path = None
        dir_path = None
        all_process = None

        modes = env.Mode().mods
        modes.append('main')
        for mode in modes:
            if nested_item.files.get(mode):
                main_file = nested_item.files[mode][0]
                asset_dir = env.Env().get_asset_dir()
                file_path = '{0}/{1}/{2}'.format(asset_dir,
                                                 main_file['relative_dir'],
                                                 main_file['file_name'])
                split_path = main_file['relative_dir'].split('/')
                dir_path = '{0}/{1}'.format(asset_dir,
                                            '{0}/{1}/{2}'.format(*split_path))
                all_process = nested_item.sobject.all_process

        return file_path, dir_path, all_process
    def save_file(self):
        nested_item = self.resultsTreeWidget.itemWidget(
            self.resultsTreeWidget.currentItem(), 0)
        search_key = nested_item.get_skey(parent=True)
        context = nested_item.get_context(True,
                                          self.contextLineEdit.text()).replace(
                                              ' ', '_')

        if self.descriptionTextEdit.toPlainText() != '':
            description = gf.simplify_html(self.descriptionTextEdit.toHtml())
        else:
            description = 'No Description'

        self.descriptionTextEdit.clear()

        if env.Mode().get == 'maya':
            mf.save_scene(search_key, context, description,
                          nested_item.sobject.all_process)

        # update current tree item to see saving results
        nested_item.sobject.update_snapshots()
        update = nested_item.row, nested_item.sobject.info['code']
        self.add_items_to_results(update=update)
Пример #26
0
# module Main Ui Classes
# file ui_main_classes.py
# Main Window interface

import PySide.QtCore as QtCore
import PySide.QtGui as QtGui
import environment as env
import tactic_classes as tc
if env.Mode().get == 'maya':
    import maya_functions as mf
import lib.ui.ui_main as ui_main
import ui_checkin_out_tabs_classes
import ui_conf_classes
import ui_my_tactic_classes
import ui_assets_browser_classes
import ui_float_notify_classes

reload(ui_main)
reload(ui_checkin_out_tabs_classes)
reload(ui_conf_classes)
reload(ui_my_tactic_classes)
reload(ui_assets_browser_classes)


class Ui_Main(QtGui.QMainWindow, ui_main.Ui_MainWindow):
    def __init__(self, parent=None):
        super(self.__class__, self).__init__(parent=parent)
        env.Inst().ui_main = self

        self.setupUi(self)
 def add_items_to_formats_combo(self):
     if env.Mode().get == 'maya':
         self.formatTypeComboBox.addItem('mayaAscii')
         self.formatTypeComboBox.addItem('mayaBinary')
     else:
         self.formatTypeComboBox.addItem('all')