Пример #1
0
    def set_data(self, data, base_date):
        self.set_title(date_to_dm(base_date))
        self._table_model.removeRows(0, self._table_model.rowCount())

        current_ndx = 0
        for d in data:
            order, customer_name = d

            number = order.preorder_label
            if order.accounting_label:
                number = order.accounting_label

            self._table_model.appendRow(
                [QStandardItem(str(number)),
                 QStandardItem(customer_name)])
            self._table_model.setData(self._table_model.index(current_ndx, 0),
                                      order.order_id, Qt.UserRole)

            if order.state == OrderStatusType.order_completed:
                self._set_last_row(self.completed_order_brush,
                                   Qt.BackgroundRole)
            elif order.state == OrderStatusType.preorder_definition:
                self._set_last_row(self.preorder_brush, Qt.BackgroundRole)

            current_ndx += 1
        # Not the slightest idea why this works
        # and not resizeColumnsToContents
        for i in range(self._table_model.columnCount()):
            self.table_view.resizeColumnToContents(i)
Пример #2
0
    def refresh(self, result):
        self.model.clear()

        columns = list()
        result_columns = result.Columns
        for index in range(result_columns.Count()):
            name = result_columns.Get(index).Name
            columns.append(name)

        self.model.setColumnCount(len(columns))
        for section, name in enumerate(columns):
            self.model.setHeaderData(section, Qt.Horizontal, name)

        select = result.Choose()
        self.logEdit.appendPlainText('Selected %d records' % select.Count())
        while select.Next():
            items = list()
            for index in range(len(columns)):
                value = select.Get(index)

                item = QStandardItem('')
                if isinstance(value, bool):
                    item.setText(value and 'Yes' or 'No')

                elif isinstance(value, (int, str)):
                    item.setText(str(value))

                elif isinstance(value, datetime.datetime):
                    item.setText(value.strftime('%Y.%m.%d %H:%M:%S'))

                else:
                    item.setText(str(value))
                items.append(item)

            self.model.appendRow(items)
Пример #3
0
    def _add_one_document(self, file_name, doc_id, file_size, description):
        """ Adds a document to the list
        """

        # file_name is either an absolute path or just a file name
        # If it is an absolute path, then the file is expected
        # to exist locally (at it absolute path location of course).
        # If not, then the file is expected to be a remote file
        # and shall be downloaded before opening.

        mainlog.debug(u"{} {} {} {}".format(file_name, doc_id, file_size,
                                            description))
        short_name = file_name
        if os.path.isabs(file_name):
            short_name = os.path.basename(file_name)
            if not os.path.isfile(file_name):
                raise Exception(u"The file {} doesn't exist".format(file_name))

        items = [QStandardItem(short_name)]
        items.append(QStandardItem(description))

        self.model.appendRow(items)
        self.model.setData(self.model.index(self.model.rowCount() - 1, 0),
                           doc_id, Qt.UserRole + 1)

        self.view.horizontalHeader().setResizeMode(0, QHeaderView.Stretch)
        self.view.horizontalHeader().setResizeMode(1, QHeaderView.Stretch)
        self.view.resizeRowsToContents()
Пример #4
0
    def _createCompleterModel(self, completionPrefix):
        """
        Creates a QStandardModel that holds the suggestion from the completion
        models for the QCompleter

        :param completionPrefix:
        """
        # build the completion model
        cc_model = QStandardItemModel()
        cptSuggestion = 0
        displayedTexts = []
        self.__tooltips.clear()
        for model in self._models:
            for s in model.suggestions:
                # skip redundant completion
                if s.display != completionPrefix and \
                        not s.display in displayedTexts:
                    displayedTexts.append(s.display)
                    items = []
                    item = QStandardItem()
                    items.append(item)
                    item.setData(s.display, Qt.DisplayRole)
                    if s.description is not None:
                        self.__tooltips[s.display] = s.description
                    if s.decoration is not None:
                        item.setData(QIcon(s.decoration), Qt.DecorationRole)
                    cc_model.appendRow(items)
                    cptSuggestion += 1
            # do we need to use more completion model?
            if cptSuggestion >= self.minSuggestions:
                break  # enough suggestions
        return cc_model, cptSuggestion
Пример #5
0
    def selected_order(self, cur, prev):
        if cur.isValid():
            order_id = cur.model().index(cur.row(), 0).data(Qt.UserRole)

            self._table_model.removeRows(0, self._table_model.rowCount())
            row = 0
            for label, description in dao.order_dao.load_quick_view(order_id):
                self._table_model.appendRow(
                    [QStandardItem(label),
                     QStandardItem(description)])
    def _on_level_selected_changed(self, index):
        level_name = self.mClassList.itemData(index)
        level = self.levels_dict[level_name]
        model = QStandardItemModel()
        for verb in level.verbs_list:
            item = QStandardItem(verb.base_verbal)
            item.setData(verb.base_verbal)
            model.appendRow(item)

        self.mVerbsList.setModel(model)
Пример #7
0
    def _reload_notebooks_list(self, select_notebook_id=None):
        # TODO could enable selecting an already selected stack
        self.notebooksModel.clear()
        root = QStandardItem(QIcon.fromTheme('user-home'),
                             self.tr('All Notes'))
        self.notebooksModel.appendRow(root)
        selected_item = root

        stacks = {}
        for notebook_struct in self.app.provider.list_notebooks():
            notebook = Notebook.from_tuple(notebook_struct)
            count = self.app.provider.get_notebook_notes_count(notebook.id)
            item = QNotebookItem(notebook, count)

            if (notebook.stack == ''):
                root.appendRow(item)
            else:
                if (notebook.stack not in stacks.keys()):
                    stack = QStandardItem(QIcon.fromTheme('user-home'),
                                          notebook.stack)
                    stack.stack = notebook.stack
                    root.appendRow(stack)
                    stacks[notebook.stack] = stack

                stacks[notebook.stack].appendRow(item)

            if select_notebook_id and notebook.id == select_notebook_id:
                selected_item = item

        self.ui.notebooksList.expandAll()

        if selected_item and not select_notebook_id == SELECT_NONE:
            index = self.notebooksModel.indexFromItem(selected_item)
            self.ui.notebooksList.setCurrentIndex(index)
            self.notebook_selected(index)
Пример #8
0
def get_artist_item(artist):
    if not artist:
        return get_artist_sorts
    item = QStandardItem()
    item.setData(artist.name, ModelToItemStrat.ARTIST)
    item.setData(artist, ModelToItemStrat.FILTER)
    item.setData(artist, ModelToItemStrat.PLAY)
    item.setText(artist.name)
    artist.item = item
    return item
Пример #9
0
    def make_items(self):
        items = [
            QStandardItem(unicode(self.note.title)),
            QStandardItem(
                unicode(
                    datetime.datetime.fromtimestamp(self.note.updated /
                                                    1000.0)))
        ]
        for item in items:
            item.note = self.note
        items[0].setIcon(QIcon.fromTheme('x-office-document'))
        items[1].setEditable(False)

        return items
Пример #10
0
 def enqueueTreeBuildTasks(self, listOfTasksAndDescriptions):
     '''
        returns list( (taskLabel, parent QStandardItem) )
     '''
     tvm = self.treeViewModel
     tvm.clear()
     tvm.setHorizontalHeaderLabels (["Build Tasks"])
     results = []
     for label,description in listOfTasksAndDescriptions:
         parent = QStandardItem(label)
         parent.appendRow([QStandardItem(description)])
         tvm.appendRow(parent)
         results.append( (label, parent) )
     return results
Пример #11
0
	def dropEvent(self, event):
		self.Logger.debug('Drop down files')
		self.FileListModel.clear()
		source = event.mimeData()
		filepaths = source.urls()
		self.Logger.debug('Drop on %s', filepaths)
		self.FileListModel.appendRow( [QStandardItem(path.toLocalFile()) for path in filepaths] )
Пример #12
0
    def testRefCount(self):
        model = QStandardItemModel(5, 5)
        items = []
        for r in range(5):
            row = []
            for c in range(5):
                row.append(QStandardItem("%d,%d" % (r,c)) )
                self.assertEqual(sys.getrefcount(row[c]), 2)

            model.insertRow(r, row)

            for c in range(5):
                ref_after = sys.getrefcount(row[c])
                # check if the ref count was incremented after insertRow
                self.assertEqual(ref_after, 3)

            items.append(row)
            row = None

        for r in range(3):
            my_row = model.takeRow(0)
            my_row = None
            for c in range(5):
                # only rest 1 reference
                self.assertEqual(sys.getrefcount(items[r][c]), 2)

        my_i = model.item(0,0)
        # ref(my_i) + parent_ref + items list ref
        self.assertEqual(sys.getrefcount(my_i), 4)

        model.clear()
        # ref(my_i)
        self.assertEqual(sys.getrefcount(my_i), 3)
Пример #13
0
    def getTree(self):
        '''
        return a list of project and package (sorted).
        '''
        rowItems = list()
        for project in self.__projectList :
            projectCollection = self.__projectGitDict[project]
            projectTree = QStandardItem(projectCollection.name)
            for t in projectCollection.getTree():
                projectTree.appendRow(t)

            rowItems.append(projectTree)

        for package in self.__packageList:
            rowItems.append(QStandardItem(package.name))

        return rowItems
Пример #14
0
 def _AddPrimitiveToTree(self, data, parent, columnWidth=0):
     if type(data) in (str, unicode):
         value = self._WrapWord(columnWidth, data)
     else:
         value = self.ConvertDataToString(data)
     item = QStandardItem(value)
     self._MakeItemUneditable(item)
     parent.appendRow(item)
Пример #15
0
 def _initUI(self):
     parentItem1 = self.invisibleRootItem()
     for j in range(4):
         item1 = QStandardItem()
         item1.setText("Amal" + str(j))
         for i in range(3):
             insideItem1 = QStandardItem()
             insideItem1.setText("Bose" + str(i))
             item1.appendRow(insideItem1)
         parentItem1.appendRow(item1)
Пример #16
0
    def _reload_notebooks_list(self, select_notebook_id=None):
        # TODO could enable selecting an already selected stack
        self.notebooksModel.clear()
        root = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Notes'))
        self.notebooksModel.appendRow(root)
        selected_item = root

        stacks = {}
        for notebook_struct in self.app.provider.list_notebooks():
            notebook = Notebook.from_tuple(notebook_struct)
            count = self.app.provider.get_notebook_notes_count(notebook.id)
            item = QNotebookItem(notebook, count)

            if(notebook.stack == ''):
                root.appendRow(item)
            else:
                if(notebook.stack not in stacks.keys()):
                    stack = QStandardItem(QIcon.fromTheme('user-home'), notebook.stack)
                    stack.stack = notebook.stack
                    root.appendRow(stack)
                    stacks[notebook.stack] = stack

                stacks[notebook.stack].appendRow(item)

            if select_notebook_id and notebook.id == select_notebook_id:
                selected_item = item

        self.ui.notebooksList.expandAll()

        if selected_item and not select_notebook_id == SELECT_NONE:
            index = self.notebooksModel.indexFromItem(selected_item)
            self.ui.notebooksList.setCurrentIndex(index)
            self.notebook_selected(index)
Пример #17
0
    def setData(self,data):
        """ data = [ (role, role.description, role active or not (True or False, not None)) ]
        """
        m = QStandardItemModel(len(data),2)

        row = 0
        for d in data:
            item = QStandardItem()
            item.setData(d[2],Qt.EditRole)
            m.setItem(row,0,item)

            item = QStandardItem()
            item.setData(d[0],Qt.UserRole)
            item.setData(d[1],Qt.DisplayRole)
            m.setItem(row,1,item)

            row += 1

        self.setModel(m)
        self.resizeColumnsToContents()
Пример #18
0
    def _reload_notebooks_list(self, select_notebook_id=None):
        self.notebooksModel.clear()
        root = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Notes'))
        self.notebooksModel.appendRow(root)

        selected_item = root
        for notebook_struct in self.app.provider.list_notebooks():
            notebook = Notebook.from_tuple(notebook_struct)
            count = self.app.provider.get_notebook_notes_count(notebook.id)
            item = QNotebookItem(notebook, count)
            root.appendRow(item)

            if select_notebook_id and notebook.id == select_notebook_id:
                selected_item = item

        self.ui.notebooksList.expandAll()
        if selected_item:
            index = self.notebooksModel.indexFromItem(selected_item)
            self.ui.notebooksList.setCurrentIndex(index)
            self.notebook_selected(index)
Пример #19
0
    def _reload_tags_list(self, select_tag_id=None):
        # TODO nested tags
        self.tagsModel.clear()
        tagRoot = QStandardItem(QIcon.fromTheme('user-home'), self.tr('All Tags'))
        self.tagsModel.appendRow(tagRoot)
        selected_item = tagRoot

        for tag_struct in self.app.provider.list_tags():
            tag = Tag.from_tuple(tag_struct)
            count = self.app.provider.get_tag_notes_count(tag.id)
            item = QTagItem(tag, count)
            tagRoot.appendRow(item)

            if select_tag_id and tag.id == select_tag_id:
                selected_item = item

        self.ui.tagsList.expandAll()
        if selected_item and not select_tag_id == SELECT_NONE:
            index = self.tagsModel.indexFromItem(selected_item)
            self.ui.tagsList.setCurrentIndex(index)
            self.tag_selected(index)
Пример #20
0
    def _reload_notebooks_list(self, select_notebook_id=None):
        self.notebooksModel.clear()
        root = QStandardItem(QIcon.fromTheme('user-home'),
                             self.tr('All Notes'))
        self.notebooksModel.appendRow(root)

        selected_item = root
        for notebook_struct in self.app.provider.list_notebooks():
            notebook = Notebook.from_tuple(notebook_struct)
            count = self.app.provider.get_notebook_notes_count(notebook.id)
            item = QNotebookItem(notebook, count)
            root.appendRow(item)

            if select_notebook_id and notebook.id == select_notebook_id:
                selected_item = item

        self.ui.notebooksList.expandAll()
        if selected_item:
            index = self.notebooksModel.indexFromItem(selected_item)
            self.ui.notebooksList.setCurrentIndex(index)
            self.notebook_selected(index)
Пример #21
0
    def _reload_tags_list(self, select_tag_id=None):
        # TODO nested tags
        self.tagsModel.clear()
        tagRoot = QStandardItem(QIcon.fromTheme('user-home'),
                                self.tr('All Tags'))
        self.tagsModel.appendRow(tagRoot)
        selected_item = tagRoot

        for tag_struct in self.app.provider.list_tags():
            tag = Tag.from_tuple(tag_struct)
            count = self.app.provider.get_tag_notes_count(tag.id)
            item = QTagItem(tag, count)
            tagRoot.appendRow(item)

            if select_tag_id and tag.id == select_tag_id:
                selected_item = item

        self.ui.tagsList.expandAll()
        if selected_item and not select_tag_id == SELECT_NONE:
            index = self.tagsModel.indexFromItem(selected_item)
            self.ui.tagsList.setCurrentIndex(index)
            self.tag_selected(index)
Пример #22
0
    def __init__(self, repoDict):
        QStandardItemModel.__init__(self)

        self.item = self.invisibleRootItem()
        self.item.setEnabled(True)

        self.__repoDict = repoDict
        self.__profileList = self.__repoDict.keys()
        self.__profileList.sort()

        if "general" in self.__profileList:
            self.__selectedRepo = "general"
        else:
            if len(self.__profileList) > 0:
                self.__selectedRepo = self.__profileList[0]

        for p in self.__profileList:
            profile = QStandardItem(p)
            for rName, rUrl in self.__repoDict[p]:
                st = rName + " (" + rUrl + ")"
                profile.appendRow(QStandardItem(st))
            self.item.appendRow(profile)
Пример #23
0
    def __init__(self,parent= None):
#        QMainWindow.__init__(self)
        super(client, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.userModel = QStandardItemModel()
        self.itemHeadFriend=QStandardItem()
        self.itemHeadFriend.setData("linkMan",QtCore.Qt.DisplayRole)
        self.itemHeadStatis=QStandardItem()
        self.itemHeadStatis.setData("status",QtCore.Qt.DisplayRole)
        self.userModel.setHorizontalHeaderItem(0,self.itemHeadFriend)
        self.userModel.setHorizontalHeaderItem(1,self.itemHeadStatis)

                
        self.itemFriend=QStandardItem()
        self.itemFriend.setData("friend",QtCore.Qt.DisplayRole)
        self.userModel.insertRow(0,self.itemFriend)
        self.ui.linkManTreeView.setModel(self.userModel)

        self.connecting=None
        QtCore.QObject.connect(self.ui.linkManTreeView, QtCore.SIGNAL("clicked(QModelIndex)"), self,QtCore.SLOT("createMessageFrame(QModelIndex)"))
        self.messageFrame={}
Пример #24
0
    def addLinkMan(self,linkMan,status):
        '''添加联系人'''
        itemLinkMan=QStandardItem()
        itemLinkMan.setData(linkMan,QtCore.Qt.DisplayRole)
        itemLinkManStatus=QStandardItem()
        itemLinkManStatus.setData(status,QtCore.Qt.DisplayRole)

        self.itemFriend.appendRow([itemLinkMan,itemLinkManStatus])
Пример #25
0
 def addToDataSets(self):#{{{
     """ Adds the currently selected listWidget item to the dataListView and plots the current listWidget item.
     """
     self.listGetItem()
     item = QStandardItem(self.currentListSelection)
     item.setCheckable(True)
     item.setCheckState(QtCore.Qt.CheckState(QtCore.Qt.Checked)) # set the item to checked
     self.main_frame.checkableList.appendRow(item)
     self.main_frame.dataListView.setModel(self.main_frame.checkableList)
     self.calculateFits()
     self.makePlot()#}}}
Пример #26
0
 def __init__(self, parent=None):
     QMainWindow.__init__(self, parent)
     self.setupUi()
     # setup a sample model
     self.model = QStandardItemModel(self)
     self.model.setHorizontalHeaderLabels(self.COLUMNS)
     for row, item in enumerate(self.ITEMS):
         for column, cell in enumerate(item):
             self.model.setItem(row, column, QStandardItem(cell))
     self.proxy = QSortFilterProxyModel(self)
     self.proxy.setSourceModel(self.model)
     # filter all columns (use 0, 1, etc. to only filter by a specific column)
     self.proxy.setFilterKeyColumn(-1)
     # filter text case insensitively
     self.proxy.setFilterCaseSensitivity(Qt.CaseInsensitive)
     self.view.setModel(self.proxy)
     for column, _ in enumerate(self.COLUMNS):
         self.view.resizeColumnToContents(column)
     self.searchBox.textChanged.connect(self.updateFilter)
Пример #27
0
 def _AddDictToTree(self, data, parent, columnWidth=0):
     sortedKeys = sorted(data.keys())
     for key in sortedKeys:
         value = self.ConvertDataToString(data[key])
         if value == '':
             item = QStandardItem(str(key))
         else:
             item = QStandardItem(str(key) + ': ' + value)
             if len(value) > 10:
                 item.setToolTip(value)
         self._MakeItemUneditable(item)
         parent.appendRow(item)
         if type(data[key]) in (dict, list):
             self.AddItems(item, data[key], columnWidth=columnWidth)
Пример #28
0
    def testOperators(self):
        model = QStandardItemModel()
        for i in range(100):
            model.appendRow(QStandardItem("Item: %d"%i))

        first = model.index(0, 0)
        second = model.index(10, 0)
        third = model.index(20, 0)
        fourth = model.index(30, 0)

        sel = QItemSelection(first, second)
        sel2 = QItemSelection()
        sel2.select(third, fourth)

        sel3 = sel + sel2 #check operator +
        self.assertEqual(len(sel3), 2)
        sel4 = sel
        sel4 += sel2 #check operator +=
        self.assertEqual(len(sel4), 2)
        self.assertEqual(sel4, sel3)
Пример #29
0
        self.completer.setModel(self.pFilterModel)

    def setModelColumn(self, column):
        self.completer.setCompletionColumn(column)
        self.pFilterModel.setFilterKeyColumn(column)
        super(ComboBoxWithTypingSearch, self).setModelColumn(column)

    def view(self):
        return self.completer.popup()

    def index(self):
        return self.currentIndex()

    def setTextIfCompleterIsClicked(self, text):
        if text:
            index = self.findText(text)
            self.setCurrentIndex(index)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    model = QStandardItemModel()
    for i, word in enumerate(['hola', 'adios', 'hello', 'good bye']):
        item = QStandardItem(word)
        model.setItem(i, 0, item)
    combo = ComboBoxWithTypingSearch()
    combo.setModel(model)
    combo.setModelColumn(0)
    combo.show()
    sys.exit(app.exec_())
Пример #30
0
    def _search_results_to_array(self,search_results):
        array = []
        
        for res in search_results:
            # mainlog.debug("_search_results_to_array {}".format(res.creation_date))

            i = QStandardItem(res.preorder_part_label)
            row = [i,
                   QStandardItem(res.accounting_part_label),
                   QStandardItem(res.customer_order_name),
                   QStandardItem(res.fullname)]

            if 'order_part_id' in res.__dict__:
                # It's an order part

                i.setData( res.order_part_id, Qt.UserRole)
                i.setData( 'order_part', Qt.UserRole+1)
                row.append( QStandardItem(res.description))
            else:
                # It's an order

                i.setData( res.order_id, Qt.UserRole)
                i.setData( 'order', Qt.UserRole+1)
                row.append( QStandardItem())

            array.append(row)

        return array
Пример #31
0
def get_album_item(album):
    item = QStandardItem()
    item.setData(album.title, ModelToItemStrat.ALBUM)
    item.setData(album.artist.name, ModelToItemStrat.ARTIST)
    item.setData(album, ModelToItemStrat.FILTER)
    item.setData(album, ModelToItemStrat.PLAY)
    item.setText(album.title)
    item.setSizeHint(QSize(128,148))
    return item
Пример #32
0
def get_artist_item(artist):
    item = QStandardItem()
    item.setData(artist, ModelToItemStrat.FILTER)
    item.setData(artist, ModelToItemStrat.PLAY)
    item.setText(artist.name)
    return item
Пример #33
0
 def _AddListToTree(self, data, parent):
     for attribute in data:
         item = QStandardItem(str(attribute))
         self._MakeItemUneditable(item)
         parent.appendRow(item)
Пример #34
0
def get_song_item(song):
    if not song:
        return get_song_sorts
    item = QStandardItem()
    item.setData(song.track_info['title'], ModelToItemStrat.TRACK_TITLE)
    item.setData(song.track_info['track_nb'], ModelToItemStrat.TRACK_NB)
    item.setData(song.track_info['artist'], ModelToItemStrat.ARTIST)
    item.setData(song.track_info['album'], ModelToItemStrat.ALBUM)
    item.setData(song, ModelToItemStrat.FILTER)
    item.setData(song, ModelToItemStrat.PLAY)
    item.setText(song.track_info['title'])
    song.item = item
    return item
Пример #35
0
def get_album_item(album):
    if not album:
        return get_album_sorts
    item = QStandardItem()
    item.setData(album.title, ModelToItemStrat.ALBUM)
    item.setData(album.songs[0].track_info['date'], ModelToItemStrat.DATE)
    item.setData(album.artist.name, ModelToItemStrat.ARTIST)
    item.setData(album, ModelToItemStrat.FILTER)
    item.setData(album, ModelToItemStrat.PLAY)
    item.setText(album.title)
    item.setSizeHint(QSize(128,148))
    album.item = item
    return item
Пример #36
0
    def __init__(self, parent=None):
        """Initialize the parent class of this instance."""
        super(window, self).__init__(parent)
        app.aboutToQuit.connect(self.myExitHandler)

        self.style_sheet = self.styleSheet('style')
        # app.setStyle(QStyleFactory.create('Macintosh'))
        #app.setStyleSheet(self.style_sheet)
        self.layout().setSpacing(0)
        self.layout().setContentsMargins(0,0,0,0)

        app.setOrganizationName("Eivind Arvesen")
        app.setOrganizationDomain("https://github.com/eivind88/raskolnikov")
        app.setApplicationName("Raskolnikov")
        app.setApplicationVersion("0.0.1")
        settings = QSettings()

        self.data_location = QDesktopServices.DataLocation
        self.temp_location = QDesktopServices.TempLocation
        self.cache_location = QDesktopServices.CacheLocation

        self.startpage = "https://duckduckgo.com/"
        self.new_tab_behavior = "insert"

        global bookmarks

        global saved_tabs
        print "Currently saved_tabs:\n", saved_tabs

        global menubar
        menubar = QMenuBar()

        # Initialize a statusbar for the window
        self.statusbar = self.statusBar()
        self.statusbar.setFont(QFont("Helvetica Neue", 11, QFont.Normal))
        self.statusbar.setStyleSheet(self.style_sheet)
        self.statusbar.setMinimumHeight(15)

        self.pbar = QProgressBar()
        self.pbar.setMaximumWidth(100)
        self.statusbar.addPermanentWidget(self.pbar)

        self.statusbar.hide()

        self.setMinimumSize(504, 235)
        # self.setWindowModified(True)
        # app.alert(self, 0)
        self.setWindowTitle("Raskolnikov")
        # toolbar = self.addToolBar('Toolbar')
        # toolbar.addAction(exitAction)
        # self.setUnifiedTitleAndToolBarOnMac(True)
        self.setWindowIcon(QIcon(""))

        # Create input widgets
        self.bbutton = QPushButton(u"<")
        self.fbutton = QPushButton(u">")
        self.hbutton = QPushButton(u"⌂")
        self.edit = QLineEdit("")
        self.edit.setFont(QFont("Helvetica Neue", 12, QFont.Normal))
        self.edit.setPlaceholderText("Enter URL")
        # self.edit.setMinimumSize(400, 24)
        self.rbutton = QPushButton(u"↻")
        self.dbutton = QPushButton(u"☆")
        self.tbutton = QPushButton(u"⁐")
        # ↆ ⇧ √ ⌘ ⏎ ⏏ ⚠ ✓ ✕ ✖ ✗ ✘ ::: ❤ ☮ ☢ ☠ ✔ ☑ ♥ ✉ ☣ ☤ ✘ ☒ ♡ ツ ☼ ☁ ❅ ✎
        self.nbutton = QPushButton(u"+")
        self.nbutton.setObjectName("NewTab")
        self.nbutton.setMinimumSize(35, 30)
        self.nbutton.setSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum)

        self.edit.setTextMargins(2, 1, 2, 0)

        # create a horizontal layout for the input
        input_layout = QHBoxLayout()
        input_layout.setSpacing(4)
        input_layout.setContentsMargins(0, 0, 0, 0)

        # add the input widgets to the input layout
        input_layout.addWidget(self.bbutton)
        input_layout.addWidget(self.fbutton)
        input_layout.addWidget(self.hbutton)
        input_layout.addWidget(self.edit)
        input_layout.addWidget(self.rbutton)
        input_layout.addWidget(self.dbutton)
        input_layout.addWidget(self.tbutton)

        # create a widget to hold the input layout
        self.input_widget = QFrame()
        self.input_widget.setObjectName("InputWidget")
        self.input_widget.setStyleSheet(self.style_sheet)

        # set the layout of the widget
        self.input_widget.setLayout(input_layout)
        self.input_widget.setVisible(True)

        # CREATE BOOKMARK-LINE HERE
        self.bookmarks_layout = QHBoxLayout()
        self.bookmarks_layout.setSpacing(0)
        self.bookmarks_layout.setContentsMargins(0, 0, 0, 0)

        for i in bookmarks:
            link = QToolButton()
            link.setDefaultAction(QAction(unicode(i), link))
            link.setObjectName(unicode(i))
            link.setFont(QFont("Helvetica Neue", 11, QFont.Normal))
            link.clicked.connect(self.handleBookmarks)

            self.bookmarks_layout.addWidget(link)

        self.bookmarks_widget = QFrame()
        self.bookmarks_widget.setObjectName("BookmarkWidget")
        self.bookmarks_widget.setStyleSheet(self.style_sheet)
        self.bookmarks_widget.setLayout(self.bookmarks_layout)

        if not bookmarks:
            self.bookmarks_widget.hide()

        # Task list
        self.tasklist = QStandardItemModel()
        #parentItem = self.tasklist.invisibleRootItem()
        #self.tasklist.header().hide()
        self.tasklist.setHorizontalHeaderItem(0, QStandardItem('Tasks'))
        parentItem = QStandardItem("Parent")
        self.tasklist.appendRow(parentItem)
        for i in range(4):
            item = QStandardItem("Item %d" % i)
            parentItem.appendRow(item)
            #parentItem = item

        #self.list.activated[str].connect(self.handleBookmarks)
        #self.list.view().setSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum)

        # create tabs
        self.tabs = QTabWidget()
        self.tabs.setDocumentMode(True)
        self.tabs.setTabsClosable(True)
        self.tabs.setMovable(True)
        self.tabs.tabBar().hide()
        self.tabs.setFont(QFont("Helvetica Neue", 11, QFont.Normal))
        self.tabs.setCornerWidget(self.nbutton)
        self.tabs.cornerWidget().setObjectName("CornerWidget")
        self.tabs.cornerWidget().setMinimumSize(10, 24)
        self.tabs.cornerWidget().setSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum)

        if saved_tabs:
            for tab in saved_tabs['tabs']:
                tasklist = QTreeView()
                tasklist.hide()
                tasklist.setObjectName('taskList')
                tasklist.setMinimumWidth(100)
                tasklist.setMaximumWidth(250)

                new_tab = QWebView()
                new_tab.setObjectName('webView')

                inspector = QWebInspector(self)
                inspector.setObjectName('webInspector')
                inspector.hide()

                page_layout = QVBoxLayout()
                page_layout.setSpacing(0)
                page_layout.setContentsMargins(0, 0, 0, 0)
                page_layout.addWidget(new_tab)
                page_layout.addWidget(inspector)
                page_widget = QFrame()
                page_widget.setObjectName('pageWidget')
                page_widget.setLayout(page_layout)

                complete_tab_layout = QHBoxLayout()
                complete_tab_layout.setSpacing(0)
                complete_tab_layout.setContentsMargins(0, 0, 0, 0)
                complete_tab_layout.addWidget(tasklist)
                complete_tab_layout.addWidget(page_widget)
                complete_tab_widget = QFrame()
                complete_tab_widget.setLayout(complete_tab_layout)

                #for page in tab['history']:
                #    new_tab.load(QUrl(page['url']))
                #print tab['current_history']
                #for item in new_tab.history().items():
                #    print item
                #new_tab.history().goToItem(new_tab.history().itemAt(tab['current_history']))
                new_tab.load(QUrl(tab['history'][tab['current_history']]['url']))
                tab['current_history']
                self.tabs.setUpdatesEnabled(False)
                if self.new_tab_behavior == "insert":
                    self.tabs.insertTab(self.tabs.currentIndex()+1, complete_tab_widget,
                                        unicode(new_tab.title()))
                elif self.new_tab_behavior == "append":
                    self.tabs.appendTab(complete_tab_widget, unicode(new_tab.title()))
                self.tabs.setUpdatesEnabled(True)
                new_tab.titleChanged.connect(self.change_tab)
                new_tab.urlChanged.connect(self.change_tab)
                new_tab.loadStarted.connect(self.load_start)
                new_tab.loadFinished.connect(self.load_finish)
                new_tab.loadProgress.connect(self.pbar.setValue)
                new_tab.page().linkHovered.connect(self.linkHover)
                inspector.setPage(new_tab.page())

            for index, tab in enumerate(saved_tabs['tabs']):
                self.tabs.setTabText(index, tab['history'][tab['current_history']]['title'])

            self.tabs.setCurrentIndex(saved_tabs['current_tab'])
        else:
            self.new_tab()

        tabs_layout = QVBoxLayout()
        tabs_layout.setSpacing(0)
        tabs_layout.setContentsMargins(0, 0, 0, 0)
        tabs_layout.addWidget(self.tabs)

        self.tabs_widget = QFrame()
        self.tabs_widget.setObjectName("TabLine")
        self.tabs_widget.setStyleSheet(self.style_sheet)
        self.tabs_widget.setLayout(tabs_layout)
        self.tabs_widget.setVisible(True)

        # Webkit settings
        gsettings = self.tabs.currentWidget().findChild(QFrame, unicode('pageWidget')).findChild(QWebView, unicode('webView')).settings().globalSettings()
        # Basic settings
        gsettings.setAttribute(QWebSettings.AutoLoadImages, True)
        gsettings.setAttribute(QWebSettings.JavascriptEnabled, True)
        gsettings.setAttribute(QWebSettings.JavascriptCanOpenWindows, False)
        gsettings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, False)
        gsettings.setAttribute(QWebSettings.PluginsEnabled, False) # Flash isn't stable at present
        gsettings.setAttribute(QWebSettings.JavaEnabled, False) # Java applet's aren't supported by PySide
        gsettings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
        gsettings.setAttribute(QWebSettings.AcceleratedCompositingEnabled,
            True)
        # Performace settings
        gsettings.setAttribute(QWebSettings.DnsPrefetchEnabled, True)
        gsettings.setAttribute(QWebSettings.AcceleratedCompositingEnabled, True)
        gsettings.setAttribute(QWebSettings.DnsPrefetchEnabled, True)
        # Other settings
        gsettings.setAttribute(QWebSettings.PrivateBrowsingEnabled, False)

        # Create a vertical layout and add widgets
        vlayout = QVBoxLayout()
        vlayout.setSpacing(0)
        vlayout.setContentsMargins(0, 0, 0, 0)
        # toolbar.addWidget(self.input_widget)
        vlayout.addWidget(self.input_widget)
        vlayout.addWidget(self.bookmarks_widget)
        vlayout.addWidget(self.tabs_widget)

        # create a widget to hold the vertical layout
        wrapper_widget = QWidget()
        wrapper_widget.setLayout(vlayout)
        self.setCentralWidget(wrapper_widget)

        self.bbutton.clicked.connect(self.tabs.currentWidget().findChild(QFrame, unicode('pageWidget')).findChild(QWebView, unicode('webView')).back)
        self.fbutton.clicked.connect(self.tabs.currentWidget().findChild(QFrame, unicode('pageWidget')).findChild(QWebView, unicode('webView')).forward)
        self.hbutton.clicked.connect(self.goHome)
        self.edit.returnPressed.connect(self.set_url)
        # Add button signal to "go" slot
        self.rbutton.clicked.connect(self.tabs.currentWidget().findChild(QFrame, unicode('pageWidget')).findChild(QWebView, unicode('webView')).reload)
        self.dbutton.clicked.connect(self.bookmark)
        self.tbutton.clicked.connect(self.toggleTaskBar)
        self.nbutton.clicked.connect(self.new_tab)
        self.tabs.tabCloseRequested.connect(self.tabs.removeTab)
        self.tabs.currentChanged.connect(self.change_tab)

        widgets = (input_layout.itemAt(i).widget() for i in range(
            input_layout.count()))
        for widget in widgets:
            if isinstance(widget, QPushButton):
                widget.setFixedSize(33, 21)
                widget.setFont(QFont("Helvetica Neue", 12, QFont.Normal))
                widget.pressed.connect(self.press_button)
                widget.released.connect(self.release_button)

        # make a ctrl+q quit
        sequence = QKeySequence(Qt.CTRL + Qt.Key_Q)
        QShortcut(sequence, self, SLOT("close()"))

        # make an accelerator to toggle fullscreen
        sequence = QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_F)
        QShortcut(sequence, self, self.toggle_fullscreen)

        # make an accelerator to toggle input visibility
        sequence = QKeySequence(Qt.CTRL + Qt.ALT + Qt.Key_L)
        QShortcut(sequence, self, self.toggle_input)

        # make an accelerator to focus adress-bar
        sequence = QKeySequence(Qt.CTRL + Qt.Key_L)
        QShortcut(sequence, self, self.focus_adress)

        # make an accelerator to reload page
        sequence = QKeySequence(Qt.CTRL + Qt.Key_R)
        QShortcut(sequence, self, self.tabs.currentWidget().findChild(QFrame, unicode('pageWidget')).findChild(QWebView, unicode('webView')).reload)

        # make an accelerator to create new tab
        sequence = QKeySequence(Qt.CTRL + Qt.Key_T)
        QShortcut(sequence, self, self.new_tab)

        # make an accelerator to close tab
        sequence = QKeySequence(Qt.CTRL + Qt.Key_W)
        QShortcut(sequence, self, self.close_tab)

        # make an accelerator to navigate tabs
        sequence = QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_Left)
        QShortcut(sequence, self, self.previous_tab)
        sequence = QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_Right)
        QShortcut(sequence, self, self.next_tab)

        # make an accelerator to toggle inspector
        sequence = QKeySequence(Qt.CTRL + Qt.ALT + Qt.Key_U)
        QShortcut(sequence, self, self.handleShowInspector)

        # make an accelerator to toggle bookmark
        sequence = QKeySequence(Qt.CTRL + Qt.Key_D)
        QShortcut(sequence, self, self.bookmark)

        # make an accelerator to toggle task/project-list
        sequence = QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_L)
        QShortcut(sequence, self, self.toggleTaskBar)

        # finally set the attribute need to rotate
        # try:
        #     self.setAttribute(Qt.WA_Maemo5AutoOrientation, True)
        # except:
        #     print "not maemo"

        self.statusbar.show()
Пример #37
0
    def __init__(self, parent, dao):
        super(ReprintDeliverySlipDialog, self).__init__(parent)
        self.dao = dao

        title = _("Print a delivery slip")
        self.setWindowTitle(title)
        top_layout = QVBoxLayout()
        self.title_widget = TitleWidget(title, None)

        self.buttons = QDialogButtonBox()
        self.buttons.addButton(QDialogButtonBox.StandardButton.Cancel)
        self.buttons.addButton(QDialogButtonBox.Ok)

        hlayout = QHBoxLayout()
        hlayout.addWidget(QLabel(_("Slip number")))
        self.slip_number = QLineEdit()
        hlayout.addWidget(self.slip_number)
        hlayout.addStretch()

        self.search_results_view = QTableView()
        self.search_results_model = QStandardItemModel()
        self.search_results_model.setHorizontalHeaderLabels(
            [_("Slip Nr"), _("Date"),
             _("Customer"), _("Order")])

        self.search_results_view.setModel(self.search_results_model)
        # self.search_results_view.setHorizontalHeader(self.headers_view)
        self.search_results_view.setEditTriggers(
            QAbstractItemView.NoEditTriggers)

        self.search_results_view.horizontalHeader().setResizeMode(
            1, QHeaderView.ResizeToContents)
        self.search_results_view.horizontalHeader().setResizeMode(
            2, QHeaderView.Stretch)
        self.search_results_view.verticalHeader().hide()

        self.slip_part_view = DeliverySlipViewWidget(self)

        hlayout_results = QHBoxLayout()
        hlayout_results.addWidget(self.search_results_view)
        hlayout_results.addWidget(self.slip_part_view)

        self.search_results_model.removeRows(
            0, self.search_results_model.rowCount())
        delivery_slips = self.dao.delivery_slip_part_dao.find_recent()
        for slip in delivery_slips:
            self.search_results_model.appendRow([
                QStandardItem(str(slip[0])),
                QStandardItem(date_to_dmy(slip[1])),
                QStandardItem(slip[2]),
                QStandardItem(slip[3])
            ])

        top_layout.addWidget(self.title_widget)
        top_layout.addLayout(hlayout)
        top_layout.addLayout(hlayout_results)
        top_layout.addWidget(self.buttons)
        top_layout.setStretch(2, 100)
        self.setLayout(top_layout)

        self.search_results_view.setSelectionBehavior(
            QAbstractItemView.SelectRows)
        self.search_results_view.setSelectionMode(
            QAbstractItemView.SingleSelection)

        self.buttons.accepted.connect(self.accept)
        self.buttons.rejected.connect(self.reject)
        self.search_results_view.activated.connect(self.row_activated)
        self.search_results_view.selectionModel().currentRowChanged.connect(
            self.row_selected)
Пример #38
0
 def _newItem(self, text):
     item = QStandardItem(text)
     item.setEditable(False)
     return item
Пример #39
0
 def __init__(self,parent=None):
     super(MyItemModel,self).__init__(parent)
     self.appendRow([QStandardItem('Item 1'),])
Пример #40
0
class client(QMainWindow):   
    def __init__(self,parent= None):
#        QMainWindow.__init__(self)
        super(client, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.userModel = QStandardItemModel()
        self.itemHeadFriend=QStandardItem()
        self.itemHeadFriend.setData("linkMan",QtCore.Qt.DisplayRole)
        self.itemHeadStatis=QStandardItem()
        self.itemHeadStatis.setData("status",QtCore.Qt.DisplayRole)
        self.userModel.setHorizontalHeaderItem(0,self.itemHeadFriend)
        self.userModel.setHorizontalHeaderItem(1,self.itemHeadStatis)

                
        self.itemFriend=QStandardItem()
        self.itemFriend.setData("friend",QtCore.Qt.DisplayRole)
        self.userModel.insertRow(0,self.itemFriend)
        self.ui.linkManTreeView.setModel(self.userModel)

        self.connecting=None
        QtCore.QObject.connect(self.ui.linkManTreeView, QtCore.SIGNAL("clicked(QModelIndex)"), self,QtCore.SLOT("createMessageFrame(QModelIndex)"))
        self.messageFrame={}



    def addLinkMan(self,linkMan,status):
        '''添加联系人'''
        itemLinkMan=QStandardItem()
        itemLinkMan.setData(linkMan,QtCore.Qt.DisplayRole)
        itemLinkManStatus=QStandardItem()
        itemLinkManStatus.setData(status,QtCore.Qt.DisplayRole)

        self.itemFriend.appendRow([itemLinkMan,itemLinkManStatus])

    def createTempMessageFrame(self,user,friend):
        uiDebug(self.messageFrame)
        if self.messageFrame.has_key(friend):
            self.messageFrame[friend].show()
        else:    
            try:        
                frame = messageWin(self,user,friend)
                frame.setWindowTitle(friend)
                self.messageFrame[friend]=frame
                frame.show()
                #pylint: disable=W0702 
            except:
                pass
        
        uiDebug("mainPanelUi createMessageFrame()")
        
    
    def createMessageFrame(self,QModelIndex):
        '''创建对话窗口'''
        friend= self.userModel.data(QModelIndex)

        if self.userModel.indexFromItem(self.itemFriend) == QModelIndex:
            return
        
        if friend == "":
            return
        
        if friend == "inline":
            return
        
        uiDebug(self.messageFrame)
        if self.messageFrame.has_key(friend):
            self.messageFrame[friend].show()
        else:    
            try:        
                frame = messageWin(self,self.user,friend)
                frame.setWindowTitle(friend)
                self.messageFrame[friend]=frame
                frame.show()
                #pylint: disable=W0702 
            except:
                pass
        
        uiDebug("mainPanelUi createMessageFrame()")