コード例 #1
0
    def get_stypes(self, result=None, run_thread=False):

        if result:
            if self.project.stypes:
                self.create_checkin_checkout_ui()
                self.toggle_loading_label()
                self.ui_checkin_checkout.setHidden(False)
            env_inst.ui_main.set_info_status_text('')

        if run_thread:

            env_inst.ui_main.set_info_status_text(
                '<span style=" font-size:8pt; color:#00ff00;">Getting Search Types</span>')

            def get_stypes_agent():
                return self.project.get_stypes()

            env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

            stypes_items_worker = gf.get_thread_worker(
                get_stypes_agent,
                env_inst.get_thread_pool('server_query/server_thread_pool'),
                result_func=self.get_stypes,
                error_func=gf.error_handle
            )
            stypes_items_worker.start()
コード例 #2
0
    def query_projects(self, result=None, run_thread=False):
        if result:
            self.restore_opened_projects()
            self.fill_projects_to_menu()
            env_inst.ui_main.set_info_status_text('')

        if run_thread:
            env_inst.ui_main.set_info_status_text(
                '<span style=" font-size:8pt; color:#00ff00;">Getting projects</span>')

            def get_all_projects_agent():
                return tc.get_all_projects()

            # projects_cache = self.load_object('projects_items')
            projects_cache = None

            if projects_cache:
                # self.projects_items = projects_cache
                if not self.projects_items_thread.isRunning():
                    self.projects_items_thread.kwargs = dict(result=env_inst.projects)
                    self.projects_items_thread.routine = self.empty_return
                    self.projects_items_thread.start(QtCore.QThread.NormalPriority)
            else:

                server_thread_pool = QtCore.QThreadPool()
                server_thread_pool.setMaxThreadCount(env_tactic.max_threads())
                env_inst.set_thread_pool(server_thread_pool, 'server_query/server_thread_pool')

                projects_items_worker = gf.get_thread_worker(
                    get_all_projects_agent,
                    env_inst.get_thread_pool('server_query/server_thread_pool'),
                    result_func=self.query_projects,
                    error_func=gf.error_handle
                )
                projects_items_worker.start()
コード例 #3
0
    def listen(self):
        def listen_agent():
            from array import array

            address = ('localhost', 6000)  # family is deduced to be 'AF_INET'
            listener = Listener(address, authkey='secret password')

            conn = listener.accept()
            print 'connection accepted from', listener.last_accepted

            conn.send([2.25, None, 'junk', float])

            conn.send_bytes('hello')

            conn.send_bytes(array('i', [42, 1729]))

            conn.close()
            listener.close()

            return 'Done'

        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        worker = gf.get_thread_worker(
            listen_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            self.create_ui, gf.error_handle)

        worker.start()
コード例 #4
0
    def search_suggestions(self, key=None):

        state = self.validator.validate(key, 0)[0].name

        if state == 'Invalid':
            key = None

        if key:
            code = self.stype.info.get('code')
            project = self.project.info.get('code')
            columns = [self.suggest_column, 'keywords']
            # print columns

            filters = [(self.suggest_column, 'EQI', key)]

            def assets_query_new_agent():
                return tc.server_query(
                    filters=filters,
                    stype=code,
                    columns=columns,
                    project=project,
                    limit=self.display_limit,
                    offset=0,
                )

            env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

            search_suggestions_worker = gf.get_thread_worker(
                assets_query_new_agent,
                thread_pool=env_inst.get_thread_pool('server_query/server_thread_pool'),
                result_func=self.search_suggestions_end,
                error_func=gf.error_handle
            )
            search_suggestions_worker.try_start()
コード例 #5
0
    def create_ui(self):
        if self.project:
            self.setWindowTitle('Commit Queue for Project: {0}'.format(self.project.info.get('title')))
        else:
            self.setWindowTitle('Global Commit Queue')

        # self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowFlags(QtCore.Qt.Window)

        server_thread_pool = QtCore.QThreadPool()
        server_thread_pool.setMaxThreadCount(1)
        env_inst.set_thread_pool(server_thread_pool, 'commit_queue/server_thread_pool')

        self.create_files_queue_tree_context_menu()
        self.create_progress_bar_widget()

        self.clearQueuePushButton.setIcon(gf.get_icon('trash'))
        self.clearQueuePushButton.setEnabled(False)
        self.commitAllPushButton.setIcon(gf.get_icon('save'))
        self.commitAllPushButton.setEnabled(False)

        self.create_empty_queue_label()

        self.customize_ui()

        self.controls_actions()
コード例 #6
0
    def search_suggestions(self, key=None):

        if key:
            code = self.stype.info.get('code')
            project = self.project.info.get('code')
            columns = [self.suggest_column]

            filters = [(self.suggest_column, 'EQI', key)]

            def assets_query_new_agent():
                return tc.server_query(
                    filters=filters,
                    stype=code,
                    columns=columns,
                    project=project,
                    limit=self.display_limit,
                    offset=0,
                )

            server_thread_pool = QtCore.QThreadPool()
            server_thread_pool.setMaxThreadCount(env_tactic.max_threads())
            env_inst.set_thread_pool(server_thread_pool,
                                     'server_query/server_thread_pool')

            search_suggestions_worker = gf.get_thread_worker(
                assets_query_new_agent,
                thread_pool=env_inst.get_thread_pool(
                    'server_query/server_thread_pool'),
                result_func=self.search_suggestions_end,
                error_func=gf.error_handle)
            search_suggestions_worker.try_start()
コード例 #7
0
    def get_widgets(self, kwargs):
        def query_widgets_agent():
            return self.query_widgets(kwargs)

        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        worker = gf.get_thread_worker(
            query_widgets_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            self.create_widgets_ui, gf.error_handle)

        worker.start()
コード例 #8
0
    def query_tasks(self):
        def get_tasks_sobjects_agent():
            return self.sobject.get_tasks_sobjects()

        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        get_tasks_sobjects_worker = gf.get_thread_worker(
            get_tasks_sobjects_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            result_func=self.fill_tasks,
            error_func=gf.error_handle,
        )
        get_tasks_sobjects_worker.try_start()
コード例 #9
0
    def get_widgets(self, kwargs):
        def query_widgets_agent():
            return tc.execute_procedure_serverside(tq.query_EditWdg,
                                                   kwargs,
                                                   project=kwargs['project'])

        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        worker = gf.get_thread_worker(
            query_widgets_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            self.create_widgets_ui, gf.error_handle)

        worker.start()
コード例 #10
0
    def get_widgets(self, kwargs):
        def query_widgets_agent():
            return self.query_widgets(kwargs)

        server_thread_pool = QtCore.QThreadPool()
        server_thread_pool.setMaxThreadCount(env_tactic.max_threads())
        env_inst.set_thread_pool(server_thread_pool,
                                 'server_query/server_thread_pool')

        worker = gf.get_thread_worker(
            query_widgets_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            self.create_widgets_ui, gf.error_handle)

        worker.start()
コード例 #11
0
    def query_projects(self):
        env_inst.ui_main.set_info_status_text(
            '<span style=" font-size:8pt; color:#00ff00;">Getting projects</span>')

        def get_all_projects_and_logins_agent():
            return tc.get_all_projects_and_logins()

        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        projects_items_worker = gf.get_thread_worker(
            get_all_projects_and_logins_agent,
            env_inst.get_thread_pool('server_query/server_thread_pool'),
            result_func=self.query_projects_finished,
            error_func=gf.error_handle
        )
        projects_items_worker.start()
コード例 #12
0
    def get_stypes(self, result=None, run_thread=False):

        if result:
            self.stypes_items = result
            self.create_checkin_checkout_ui()
            # self.create_ui_my_tactic()
            # self.create_ui_float_notify()
            # self.create_ui_assets_browser()
            self.toggle_loading_label()
            if env_mode.get_mode() == 'maya':
                dl.log('Handling Maya Hotkeys', group_id='Maya')
                env_inst.ui_maya_dock.handle_hotkeys()

            self.ui_checkin_checkout.setHidden(False)
            env_inst.ui_main.set_info_status_text('')

        if run_thread:

            env_inst.ui_main.set_info_status_text(
                '<span style=" font-size:8pt; color:#00ff00;">Getting Search Types</span>')

            def get_stypes_agent():
                return self.project.get_stypes()

            stypes_cache = None
            if stypes_cache:
                self.stypes_items = stypes_cache
                if not self.stypes_items_thread.isRunning():
                    self.stypes_items_thread.kwargs = dict(result=self.stypes_items)
                    self.stypes_items_thread.routine = self.empty_return
                    self.stypes_items_thread.start(QtCore.QThread.NormalPriority)
            else:
                server_thread_pool = QtCore.QThreadPool()
                server_thread_pool.setMaxThreadCount(env_tactic.max_threads())
                env_inst.set_thread_pool(server_thread_pool, 'server_query/server_thread_pool')

                stypes_items_worker = gf.get_thread_worker(
                    get_stypes_agent,
                    env_inst.get_thread_pool('server_query/server_thread_pool'),
                    result_func=self.get_stypes,
                    error_func=gf.error_handle
                )
                stypes_items_worker.start()
コード例 #13
0
    def perform_update(self):
        def get_subscriptions_and_messages_agent():

            current_login = env_inst.get_current_login_object()

            return current_login.get_subscriptions_and_messages(True)

        env_inst.set_thread_pool(None,
                                 'server_query/server_update_thread_pool')
        env_inst.set_thread_pool(None, 'server_query/server_thread_pool')

        query_worker, thread_pool = gf.get_thread_worker(
            get_subscriptions_and_messages_agent,
            thread_pool=env_inst.get_thread_pool(
                'server_query/server_update_thread_pool'),
            result_func=self.updating,
            error_func=self.start_update_timer)
        if thread_pool.activeThreadCount() == 0:
            self.stop_update_timer()
            # print query_worker.start(priority=1)
            # for i in range(50):
            thread_pool.try_start(query_worker)