| 777 | } |
| 778 | |
| 779 | FolderModel *FolderModel::getSubfoldersModel(const QModelIndex &mi) |
| 780 | { |
| 781 | qulonglong id = 1; |
| 782 | FolderItem *parent = nullptr; |
| 783 | if (mi.isValid()) { |
| 784 | auto item = static_cast<FolderItem *>(mi.internalPointer()); |
| 785 | parent = new FolderItem(item->getData(), item->parent()); |
| 786 | id = parent->id = item->id; |
| 787 | } |
| 788 | |
| 789 | if (id == 1) { |
| 790 | if (parent != nullptr) { |
| 791 | delete parent; |
| 792 | } |
| 793 | return this; |
| 794 | } |
| 795 | |
| 796 | auto model = new FolderModel(); |
| 797 | |
| 798 | QString connectionName = ""; |
| 799 | { |
| 800 | QSqlDatabase db = DataBaseManagement::loadDatabase(_databasePath); |
| 801 | |
| 802 | QSqlQuery selectQuery(db); // TODO check |
| 803 | selectQuery.prepare("SELECT * FROM folder WHERE parentId = :parentId and id <> 1"); |
| 804 | selectQuery.bindValue(":parentId", id); |
| 805 | selectQuery.exec(); |
| 806 | |
| 807 | if (parent != nullptr) { |
| 808 | model->setModelData(createModelData(selectQuery, parent)); |
| 809 | } |
| 810 | |
| 811 | connectionName = db.connectionName(); |
| 812 | } |
| 813 | QSqlDatabase::removeDatabase(connectionName); |
| 814 | |
| 815 | model->_databasePath = _databasePath; |
| 816 | |
| 817 | model->isSubfolder = true; |
| 818 | |
| 819 | return model; |
| 820 | } |
| 821 | |
| 822 | Folder FolderModel::getRootFolder() |
| 823 | { |
no test coverage detected