예제 #1
0
    def testMime(self):
        l1 = create_layer('l1')
        l2 = create_layer('l2')
        QgsProject.instance().addMapLayers([l1, l2])
        m = QgsMapLayerModel()
        self.assertEqual(m.mimeTypes(), ['application/qgis.layermodeldata'])

        data = m.mimeData([m.index(0, 0)])
        self.assertTrue(data)

        self.assertFalse(
            m.canDropMimeData(data, Qt.MoveAction, 0, 0, QModelIndex()))
        m.setItemsCanBeReordered(True)
        self.assertTrue(
            m.canDropMimeData(data, Qt.MoveAction, 0, 0, QModelIndex()))

        self.assertTrue(
            m.dropMimeData(data, Qt.MoveAction, 2, 0, QModelIndex()))
        self.assertEqual(m.rowCount(), 3)
        self.assertEqual(m.data(m.index(0, 0), QgsMapLayerModel.LayerIdRole),
                         l1.id())
        self.assertEqual(m.data(m.index(1, 0), QgsMapLayerModel.LayerIdRole),
                         l2.id())
        self.assertEqual(m.data(m.index(2, 0), QgsMapLayerModel.LayerIdRole),
                         l1.id())

        QgsProject.instance().removeMapLayers([l1.id(), l2.id()])