仿酷狗音乐播放器开发日志十一——CTreeNodeUI的bug修复

简介:  由于做播放列表控件,我的CMusicLength控件继承了CTreeVieWUI控件,在向分组控件中添加播放项目时,发现代码无法正常工作,调用CTreeNodeUI控件的Add方法后无反应,导致我的播放器无法动态增加项目。
 由于做播放列表控件,我的CMusicLength控件继承了CTreeVieWUI控件,在向分组控件中添加播放项目时,发现代码无法正常工作,调用CTreeNodeUI控件的Add方法后无反应,导致我的播放器无法动态增加项目。
    在对duilib源码调试后发现,CTreeNodeUI类的AddAt方法存在bug,AddAt的原型为

    long CTreeViewUI::AddAt( CTreeNodeUI* pControl, int iIndex );

    其中的iIndex参数代表希望插到的位置,在函数中做了多个判断来确保插入的正确性,但其中有一行代码存在bug,bug代码如下:

    CTreeNodeUI* pParent = static_cast<CTreeNodeUI*>(GetItemAt(iIndex));
if(!pParent)
return -1;

    函数用来在分组中插入子元素,插入时做判断,在指定的位置的是否是可以容纳元素的分组项目,但是分组项目的位置应该是将要被插入的位置的上一个位置。原函数直接检测在被插入位置是否是分组项目,理所当然会返回NULL,导致函数最终返回-1,而插入失败。
    修复的方法很简单,把  CTreeNodeUI* pParent = static_cast<CTreeNodeUI*>(GetItemAt(iIndex));改为  CTreeNodeUI* pParent = static_cast<CTreeNodeUI*>(GetItemAt(iIndex -1 )); 
 这样可以正确检索到分组项目,程序可以正常运行了。这个此次软件项目中发现duilib的第三个bug。mark。
2014.7.19  13:42  Redrain 
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
12天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
2月前
|
数据库
什么是计算机软件开发领域的 verbose 代码和日志
什么是计算机软件开发领域的 verbose 代码和日志
31 0
|
3月前
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
88 0
|
2月前
|
供应链 Java 测试技术
开发Java应用时如何用好Log
开发Java应用时如何用好Log
74 3
|
5月前
|
监控 Java
Springboot开发系统记录操作日志
Springboot开发系统记录操作日志
94 3
|
7月前
|
人工智能 运维 监控
在日常开发工作中,日志数据该如何利用?
在日常开发工作中,日志数据是一个宝贵的资源,它可以提供关于应用程序运行状态、错误报告、性能指标和用户行为等方面的重要信息。正确地利用和分析日志数据可以帮助开发人员更好地理解应用程序的运行情况,快速定位和解决问题,改进应用程序的性能,并为业务决策提供有力支持。尤其是在现代科技发展的背景下,日志数据作为一种重要的信息资源,对于运维工作具有极大的价值。然而,如何充分利用日志数据,并将其应用于运维和开发工作中,仍然是许多企业和运维和开发人员关注的问题。那么本文就来分享一下在日常开发中关于日志数据的利用方面的探讨。
130 1
在日常开发工作中,日志数据该如何利用?
|
9月前
|
XML SQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(二十、登录日志、用户、分类管理页面开发)2
Spring Boot + vue-element 开发个人博客项目实战教程(二十、登录日志、用户、分类管理页面开发)2
68 0
|
9月前
|
前端开发 NoSQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(二十、登录日志、用户、分类管理页面开发)1
Spring Boot + vue-element 开发个人博客项目实战教程(二十、登录日志、用户、分类管理页面开发)1
113 0
|
9月前
|
JSON 前端开发 NoSQL
Spring Boot + vue-element 开发个人博客项目实战教程(十九、日志中心页面接口对接)2
Spring Boot + vue-element 开发个人博客项目实战教程(十九、日志中心页面接口对接)2
53 0
Spring Boot + vue-element 开发个人博客项目实战教程(十九、日志中心页面接口对接)2
|
9月前
|
前端开发 JavaScript Java
Spring Boot + vue-element 开发个人博客项目实战教程(十九、日志中心页面接口对接)1
Spring Boot + vue-element 开发个人博客项目实战教程(十九、日志中心页面接口对接)1
132 0

热门文章

最新文章