Example #1
0
    def __init__( self, parent = None ):
        '''
        Constructor
        '''
        super( FrmCategorias, self ).__init__( parent )
        self.setupUi( self )
        QSqlDatabase.database().open()

        self.model = CategoriesModel()

        self.catproxymodel = TreeFilterProxyModel()
        self.catproxymodel.setSourceModel( self.model )
        self.catproxymodel.setFilterKeyColumn( 0 )
        self.catproxymodel.setFilterCaseSensitivity( Qt.CaseInsensitive )

        self.view.setModel( self.catproxymodel )
        self.view.setColumnWidth( 0, 200 )
        self.view.setColumnHidden( 1, True )
    view.setWindowIcon(
        QIcon(
            os.path.join(
                os.path.dirname(__file__),
                "../../../data/icons/scalable/apps/softwarecenter.svg")))
    view.setResizeMode(QtDeclarative.QDeclarativeView.SizeRootObjectToView)

    # if running locally, fixup softwarecenter.paths
    mangle_paths_if_running_in_local_checkout()

    # ideally this should be part of the qml by using a qmlRegisterType()
    # but that does not seem to be supported in pyqt yet(?) so we need
    # to cowboy it in here
    pkglistmodel = PkgListModel()
    reviewslistmodel = ReviewsListModel()
    categoriesmodel = CategoriesModel()
    rc = view.rootContext()
    rc.setContextProperty('pkglistmodel', pkglistmodel)
    rc.setContextProperty('reviewslistmodel', reviewslistmodel)
    rc.setContextProperty('categoriesmodel', categoriesmodel)

    # debug
    if len(sys.argv) > 1:
        # FIXME: we really should set the text entry here
        pkglistmodel.setSearchQuery(sys.argv[1])

    # load the main QML file into the view
    qmlpath = os.path.join(os.path.dirname(__file__), "sc.qml")
    view.setSource(QUrl.fromLocalFile(qmlpath))

    # show it
Example #3
0
class FrmCategorias( QMainWindow, Ui_FrmCategorias ):
    '''
    classdocs
    '''

    def __init__( self, parent = None ):
        '''
        Constructor
        '''
        super( FrmCategorias, self ).__init__( parent )
        self.setupUi( self )
        QSqlDatabase.database().open()

        self.model = CategoriesModel()

        self.catproxymodel = TreeFilterProxyModel()
        self.catproxymodel.setSourceModel( self.model )
        self.catproxymodel.setFilterKeyColumn( 0 )
        self.catproxymodel.setFilterCaseSensitivity( Qt.CaseInsensitive )

        self.view.setModel( self.catproxymodel )
        self.view.setColumnWidth( 0, 200 )
        self.view.setColumnHidden( 1, True )

    @pyqtSlot()
    def on_actionAddSub_triggered( self ):
        index = self.view.selectionModel().currentIndex()
        model = self.view.model()

        dlg = dlgCategoriesMod( self )
        if dlg.exec_() == QDialog.Accepted:
            if not model.insertRow( 0, index ):
                return QMessageBox.critical( self, qApp.organizationName(),
                                             "No se pudo insertar la categoria" )

            for column in range( model.columnCount( index ) ):
                child = model.index( 0, column, index )
                model.setData( child, [dlg.txtName.text(), 0], Qt.EditRole )

    @pyqtSlot()
    def on_actionAdd_triggered( self ):
        index = self.view.selectionModel().currentIndex()
        model = self.view.model()

        dlg = dlgCategoriesMod( self )
        if dlg.exec_() == QDialog.Accepted:
            if not model.insertRow( index.row() + 1, index.parent() ):
                return QMessageBox.critical( self, qApp.organizationName(),
                                             "No se pudo insertar la categoria" )


            for column in range( model.columnCount( index.parent() ) ):
                child = model.index( index.row() + 1, column, index.parent() )
                model.setData( child, [ dlg.txtName.text(), 0], Qt.EditRole )

    @pyqtSlot()
    def on_actionEditar_triggered( self ):
        index = self.view.selectionModel().currentIndex()
        model = self.view.model()

        dlg = dlgCategoriesMod( self )
        dlg.txtName.setText( index.data().toString() )
        if dlg.exec_() == QDialog.Accepted:
            if not model.setData( index, [dlg.txtName.text(), index.data()] ):
                raise Exception( "No se pudo editar la categoria" )





    @pyqtSlot()
    def on_actionDelete_triggered( self ):
        index = self.view.selectionModel().currentIndex()
        if not self.model.removeRow( index.row(), index.parent() ):
            QMessageBox.critical( self, qApp.organizationName(),
                                  "No se pudo borrar la categoria"\
                                  + "tenga en cuenta que no podra borrar"\
                                  + " categorias que el sistema ya"\
                                  + "este utilizando" )

    @pyqtSlot( "QString" )
    def on_txtSearch_textEdited( self , text ):
        self.catproxymodel.setFilterRegExp( text )