def __init__(self):
        super(NavigatorDialog, self).__init__(None)

        self.currentRepo = None
        self.reposItem = None
        self.setupUi(self)

        self.repoTree.setContextMenuPolicy(Qt.CustomContextMenu)
        self.repoTree.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.repoTree.itemSelectionChanged.connect(self.selectionChanged)
        self.repoTree.customContextMenuRequested.connect(self.showPopupMenu)

        self.comboEndpoint.currentIndexChanged.connect(self.fillTree)

        self.btnAddServer.setIcon(icon("add-server.svg"))
        self.btnEditServer.setIcon(icon("edit-server.svg"))
        self.btnDeleteServer.setIcon(icon("delete-server.svg"))
        self.btnAddRepo.setIcon(icon("add-repository.svg"))
        self.btnRefresh.setIcon(icon("refresh.svg"))

        self.btnAddServer.clicked.connect(self.addGeoGigServer)
        self.btnEditServer.clicked.connect(self.editGeoGigServer)
        self.btnDeleteServer.clicked.connect(self.deleteGeoGigServer)
        self.btnAddRepo.clicked.connect(self.createRepo)
        self.btnRefresh.clicked.connect(self.fillTree)

        self._enableOrDisableButtons()

        if qtVersion < 5:
            self.repoTree.header().setResizeMode(0, QHeaderView.Stretch)
            self.repoTree.header().setResizeMode(1,
                                                 QHeaderView.ResizeToContents)

        self.versionsTree = HistoryViewer()
        layout = QVBoxLayout()
        layout.addWidget(QLabel("Repository history"))
        layout.addWidget(self.versionsTree)
        self.versionsWidget.setLayout(layout)

        def _repoChanged(repo):
            if self.currentRepo is not None and repo.url == self.currentRepo.url:
                self.updateCurrentRepo(repo, True)
            for i in range(self.repoTree.topLevelItemCount()):
                item = self.repoTree.topLevelItem(i)
                if item.repo == repo:
                    item.refreshContent()

        repoWatcher.repoChanged.connect(_repoChanged)

        self.updateNavigator()

        self.repoTree.itemExpanded.connect(self._itemExpanded)
    def __init__(self):
        super(NavigatorDialog, self).__init__(None)

        self.currentRepo = None
        self.currentRepoName = None
        self.reposItem = None
        self.setupUi(self)

        self.setAllowedAreas(QtCore.Qt.RightDockWidgetArea | QtCore.Qt.LeftDockWidgetArea)

        self.filterBox.adjustSize()
        tabHeight = self.filterBox.height() + self.filterBox.parent().layout().spacing()
        self.tabWidget.setStyleSheet("QTabWidget::pane {border: 0;} QTabBar::tab { height: %ipx}" % tabHeight);

        self.newRepoButton.clicked.connect(self.newRepo)
        self.openButton.clicked.connect(self.openRepo)
        self.filterBox.textChanged.connect(self.filterRepos)
        self.repoTree.itemClicked.connect(self.treeItemClicked)
        self.filterButton.clicked.connect(self.showFilterPopup)
        self.clearFilterButton.clicked.connect(self.clearFilter)
        self.tabWidget.currentChanged.connect(self.tabChanged)
        self.repoTree.customContextMenuRequested.connect(self.showRepoTreePopupMenu)
        self.repoDescription.setOpenLinks(False)
        self.repoDescription.anchorClicked.connect(self.descriptionLinkClicked)
        self.repoTree.setFocusPolicy(QtCore.Qt.NoFocus)

        with open(resourceFile("repodescription.css")) as f:
            sheet = "".join(f.readlines())
        self.repoDescription.document().setDefaultStyleSheet(sheet)
        self.repoTree.header().setResizeMode(0, QtGui.QHeaderView.Stretch)
        self.repoTree.header().setResizeMode(1, QtGui.QHeaderView.ResizeToContents)

        self.statusWidget = StatusWidget()
        layout = QtGui.QVBoxLayout()
        layout.setSpacing(0)
        layout.setMargin(0)
        layout.addWidget(self.statusWidget)
        self.repoWidget.setLayout(layout)

        self.versionsTree = HistoryViewer()
        layout = QtGui.QVBoxLayout()
        layout.setSpacing(0)
        layout.setMargin(0)
        layout.addWidget(self.versionsTree)
        self.versionsWidget.setLayout(layout)

        self.tabWidget.setCornerWidget(self.filterWidget)
        self.clearFilterButton.setEnabled(False)

        self.versionsTree.headChanged.connect(self.statusWidget.updateLabelText)
        self.versionsTree.repoChanged.connect(self.statusWidget.updateLabelText)
        self.statusWidget.repoChanged.connect(self.versionsTree.updateCurrentBranchItem)

        self.lastSelectedRepoItem = None

        def _updateDescription(repo):
            if self.currentRepo is not None and repo.url == self.currentRepo.repo().url:
                self.updateCurrentRepoDescription()
                self.versionsTree.updateCurrentBranchItem()
                self.statusWidget.updateLabelText()
        repoWatcher.repoChanged.connect(_updateDescription)

        self.updateNavigator()
Exemplo n.º 3
0
    def __init__(self):
        super(NavigatorDialog, self).__init__(None)

        self.currentRepo = None
        self.reposItem = None
        self.setupUi(self)

        self.filterWidget.hide()
        self.leFilter.setPlaceholderText(
            self.tr("Type here to filter repositories..."))

        self.actionAddGeoGigServer.setIcon(icon('geogig_server.svg'))
        self.actionCreateRepository.setIcon(icon('new-repo.png'))
        self.actionAddLayer.setIcon(icon('layer_group.svg'))
        self.actionManageRemotes.setIcon(icon('geogig.png'))
        self.actionEdit.setIcon(icon('edit.svg'))
        self.actionRefresh.setIcon(
            QgsApplication.getThemeIcon('/mActionDraw.svg'))
        self.actionShowFilter.setIcon(
            QgsApplication.getThemeIcon('/mActionFilter2.svg'))
        self.actionDelete.setIcon(
            QgsApplication.getThemeIcon('/mActionDeleteSelected.svg'))
        self.actionHelp.setIcon(
            QgsApplication.getThemeIcon('/mActionHelpContents.svg'))
        self.actionPull.setIcon(icon('pull.svg'))
        self.actionPush.setIcon(icon('push.svg'))

        self.actionAddGeoGigServer.triggered.connect(self.addGeoGigServer)
        self.actionCreateRepository.triggered.connect(self.createRepo)
        self.actionAddLayer.triggered.connect(self.addLayer)
        self.actionEdit.triggered.connect(self.editGeoGigServer)
        self.actionRefresh.triggered.connect(self.updateNavigator)
        self.actionShowFilter.triggered.connect(self.showFilterWidget)
        self.actionDelete.triggered.connect(self.deleteCurrentElement)
        self.actionHelp.triggered.connect(self.openHelp)
        self.actionManageRemotes.triggered.connect(self.manageRemotes)
        self.actionPull.triggered.connect(self.pull)
        self.actionPush.triggered.connect(self.push)

        self.leFilter.returnPressed.connect(self.filterRepos)
        self.leFilter.cleared.connect(self.filterRepos)
        self.leFilter.textChanged.connect(self.filterRepos)

        self.repoTree.itemSelectionChanged.connect(self.selectionChanged)
        self.repoDescription.anchorClicked.connect(self.descriptionLinkClicked)
        self.repoDescription.setOpenLinks(False)
        self.repoTree.setFocusPolicy(Qt.NoFocus)

        with open(resourceFile("repodescription.css")) as f:
            sheet = "".join(f.readlines())
        self.repoDescription.document().setDefaultStyleSheet(sheet)
        if qtVersion < 5:
            self.repoTree.header().setResizeMode(0, QHeaderView.Stretch)
            self.repoTree.header().setResizeMode(1,
                                                 QHeaderView.ResizeToContents)

        self.versionsTree = HistoryViewer()
        layout = QVBoxLayout()
        layout.setSpacing(0)
        layout.setMargin(0)
        layout.addWidget(self.versionsTree)
        self.versionsWidget.setLayout(layout)

        def _repoChanged(repo):
            if self.currentRepo is not None and repo.url == self.currentRepo.url:
                self.updateCurrentRepo(repo)
            for i in range(self.reposItem.childCount()):
                item = self.reposItem.child(i)
                for j in range(item.childCount()):
                    subitem = item.child(j)
                    if subitem.repo == repo:
                        subitem.refreshContent()

        repoWatcher.repoChanged.connect(_repoChanged)

        self.updateNavigator()

        self.repoTree.itemExpanded.connect(self._itemExpanded)