關於給ride增加open location功能的想法

昨天打開ride,想看看自己項目源文件存放位置,奈何ride並沒有直接打開目標位置的功能,在本地找了半天無果,於是就萌發了在ride增加open location這個實用功能的想法,並花了半下午時間實現,在此記錄實現的過程。


首先,單步調試ride.py,找到右鍵各個功能label位置,這樣就可以添加自己想要的label了,定位到..robotide\ui\tree.py的OnRightClick函數:


然後繼續F7往下調試,找到定義label的真正位置treenodehandlers.py的self._actions


由於代碼很長,使用Ctrl+F查找_actions,這裏要說明一下,tree上不同類型的節點的右鍵功能肯定不一樣,所以在設計上都是分開設計的,也就是說會分多個類,而我只需要在我想要添加open location功能的節點上添加就好了,這裏我是在所有文件及文件夾上添加功能,定位到類就是TestDataDirectoryHandler和ResourceFileHandler,以前者爲例,如下圖:

在基類_ActionHandler中添加label定義:


在子類中將label加入self._action中:


以爲添加了label就完了???繼續F7你會發現還有操作,在popupmenu中還要獲取label屬性


所以,在基類中添加一個"OnOpenLocation"的方法


再次嘗試一下,OK


到這裏,可以說是完成了一半,接下來,就是要實現使用資源管理器打開選擇文件/文件夾,主要思路還是從樹節點出發,看看有沒有path之類的屬性,沒有的話只有去找ride的緩存,因爲ride會記住上次打開的工程,不過經過一番折騰,還真被我找到了,item的Directory和source屬性都有path:


最後一步就是修改OnOpenLocation方法,實現打開資源管理器,注意中文字符轉碼


至此,就完成了添加Open Location功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章