fix(vnote): use folder ids for notebook operations#402
Conversation
There was a problem hiding this comment.
Sorry @dengzhongyuan365-dev, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
Unify notebook operations across QML/C++ on stable folderId semantics instead of mixing UI indexes with internal sort indexes.\n\nAlso reset empty-folder startup/delete state to the initial create page and add a regression checklist for affected PMS bugs.\n\nLog: 修复记事本删除、移动和空状态下 folderId/index 语义错位问题\nInfluence: 记事本删除、移动笔记数量、快速创建笔记归属、空列表初始页和相关回归清单。 pms: BUG-320469
e2f57c1 to
fd74a91
Compare
|
Note
详情{
"src/common/VNoteMainManager.cpp": [
{
"line": " url = \"https://www.deepin.org/zh/agreement/privacy/\";",
"line_number": 1676,
"rule": "S35",
"reason": "Url link | 20e2eab189"
},
{
"line": " url = \"https://www.uniontech.com/agreement/privacy-cn\";",
"line_number": 1678,
"rule": "S35",
"reason": "Url link | 4850a00dd7"
},
{
"line": " url = \"https://www.deepin.org/en/agreement/privacy/\";",
"line_number": 1682,
"rule": "S35",
"reason": "Url link | 38d42f63bf"
},
{
"line": " url = \"https://www.uniontech.com/agreement/privacy-en\";",
"line_number": 1684,
"rule": "S35",
"reason": "Url link | f82409d3b5"
}
]
} |
deepin pr auto review★ 总体评分:93分■ 【总体评价】
■ 【详细分析】
■ 【改进建议代码示例】 // 修复renameFolderById重复日志
void VNoteMainManager::renameFolderById(const int &folderId, const QString &name)
{
qDebug() << "Renaming folder with ID" << folderId << "to:" << name;
VNoteFolder *folder = getFloderById(folderId);
if (folder && name != folder->name) {
VNoteFolderOper folderOper(folder);
folderOper.renameVNoteFolder(name);
} else {
qWarning() << "Invalid folder rename operation";
}
qInfo() << "Folder rename by ID finished";
}
// 修复doCreateNote中addNoteAtHead信号条件
void VNoteMainManager::doCreateNote(int folderId)
{
VNoteFolder *currentFolder = getFloderById(folderId);
if (currentFolder == nullptr) {
qWarning() << "Cannot create note: target folder not found for ID:" << folderId;
return;
}
qDebug() << "Creating new note in folder ID:" << folderId;
VNoteItem tmpNote;
tmpNote.folderId = folderId;
tmpNote.noteType = VNoteItem::VNT_Text;
tmpNote.htmlCode = "<p><br></p>";
VNoteItemOper noteOper;
VNoteItem *newNote = noteOper.addNote(tmpNote);
if (!newNote) {
qWarning() << "Create note failed: addNote returned null";
return;
}
const bool isCurrentFolder = (folderId == m_currentFolderIndex);
if (isCurrentFolder) {
m_currentNoteId = newNote->noteId;
m_noteItems.append(newNote);
}
QVariantMap data;
data.insert(NOTE_NAME_KEY, newNote->noteTitle);
data.insert(NOTE_COUNT_KEY, QString::number(newNote->noteId));
data.insert(NOTE_TIME_KEY, newNote->noteCreateTime);
data.insert(NOTE_FOLDER_ID_KEY, QString::number(currentFolder->id));
data.insert(NOTE_FOLDER_ICON_KEY, QString::number(currentFolder->defaultIcon));
data.insert(NOTE_FOLDER_NAME_KEY, currentFolder->name);
data.insert(NOTE_ID_KEY, newNote->noteId);
data.insert(FOLDER_ID_KEY, folderId);
if (isCurrentFolder) {
emit addNoteAtHead(data);
if (m_richTextManager)
m_richTextManager->initData(newNote, "", true);
}
qInfo() << "Note creation finished";
} |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: dengzhongyuan365-dev, lzwind The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/forcemerge |
|
This pr force merged! (status: unstable) |
1fe678a
into
linuxdeepin:develop/snipe
Unify notebook operations across QML/C++ on stable folderId semantics instead of mixing UI indexes with internal sort indexes.\n\nAlso reset empty-folder startup/delete state to the initial create page and add a regression checklist for affected PMS bugs.\n\nLog: 修复记事本删除、移动和空状态下 folderId/index 语义错位问题\nInfluence: 记事本删除、移动笔记数量、快速创建笔记归属、空列表初始页和相关回归清单。
pms: BUG-320469