[rkward-cvs] rkward/rkward/misc rkmenu.cpp,1.4,1.5 rkmenu.h,1.4,1.5 rkmenulist.cpp,1.3,1.4 rkmenulist.h,1.3,1.4 xmlhelper.cpp,1.2,1.3

Thomas Friedrichsmeier tfry at users.sourceforge.net
Sun Sep 11 22:06:33 UTC 2005


Update of /cvsroot/rkward/rkward/rkward/misc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27570/rkward/misc

Modified Files:
	rkmenu.cpp rkmenu.h rkmenulist.cpp rkmenulist.h xmlhelper.cpp 
Log Message:
Made standard-menus available to place plugins in. Set default debug level to DL_WARNING

Index: rkmenu.h
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/misc/rkmenu.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** rkmenu.h	11 Sep 2005 18:53:04 -0000	1.4
--- rkmenu.h	11 Sep 2005 22:06:31 -0000	1.5
***************
*** 46,49 ****
--- 46,50 ----
  	void addEntry (const QString &id, RKPluginHandle *plugin, const QString &label, int index=-1);
  private:
+ friend class RKMenuList;
  	QMap<QString, int> submenu_ids;
  	QMap<int, RKMenu*> submenus;
***************
*** 52,56 ****
  	QPopupMenu *menu;
  /** whether the QPopupMenu should be deleted along with the RKMenu. See constructor. */
! 	bool delete_q_menu;
  };
  
--- 53,57 ----
  	QPopupMenu *menu;
  /** whether the QPopupMenu should be deleted along with the RKMenu. See constructor. */
! 	bool pre_existing;
  };
  

Index: xmlhelper.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/misc/xmlhelper.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** xmlhelper.cpp	9 Sep 2005 13:02:57 -0000	1.2
--- xmlhelper.cpp	11 Sep 2005 22:06:31 -0000	1.3
***************
*** 136,140 ****
  	QString res = getStringAttribute (element, name, QString::number (def), debug_level);
  
! 	bool valid_number;
  	int ret = res.toInt (&valid_number);
  
--- 136,140 ----
  	QString res = getStringAttribute (element, name, QString::number (def), debug_level);
  
! 	bool valid_number;;
  	int ret = res.toInt (&valid_number);
  

Index: rkmenu.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/misc/rkmenu.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** rkmenu.cpp	11 Sep 2005 18:53:04 -0000	1.4
--- rkmenu.cpp	11 Sep 2005 22:06:31 -0000	1.5
***************
*** 29,33 ****
  
  	RKMenu::menu = menu;
! 	delete_q_menu = !pre_existing;
  }
  
--- 29,33 ----
  
  	RKMenu::menu = menu;
! 	RKMenu::pre_existing = pre_existing;
  }
  
***************
*** 40,44 ****
  	}
  
! 	if (delete_q_menu) {
  		delete menu;
  	} else{
--- 40,44 ----
  	}
  
! 	if (!pre_existing) {
  		delete menu;
  	} else{
***************
*** 71,74 ****
--- 71,75 ----
  	RK_TRACE (MISC);
  	int mid;
+ 
  	if (entry_ids.find (id) == entry_ids.end ()) {
  		mid = menu->insertItem (label, plugin, SLOT (activated ()), 0, -1, index);

Index: rkmenulist.h
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/misc/rkmenulist.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rkmenulist.h	11 Sep 2005 18:53:04 -0000	1.3
--- rkmenulist.h	11 Sep 2005 22:06:31 -0000	1.4
***************
*** 19,22 ****
--- 19,23 ----
  
  #include <qstring.h>
+ #include <qdict.h>
  #include <qmap.h>
  
***************
*** 48,52 ****
  	void clear ();
  private:
! 	typedef QMap<QString, RKMenu*> MenuMap;
  	MenuMap menu_map;
  	
--- 49,53 ----
  	void clear ();
  private:
! 	typedef QDict<RKMenu> MenuMap;
  	MenuMap menu_map;
  	

Index: rkmenulist.cpp
===================================================================
RCS file: /cvsroot/rkward/rkward/rkward/misc/rkmenulist.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rkmenulist.cpp	11 Sep 2005 18:53:04 -0000	1.3
--- rkmenulist.cpp	11 Sep 2005 22:06:31 -0000	1.4
***************
*** 42,50 ****
  	created_menu_ids.clear ();
  
! 	for (MenuMap::iterator it = menu_map.begin (); it != menu_map.end (); ++it) {
! 		delete it.data ();
  	}
- 
- 	menu_map.clear ();
  }
  
--- 42,55 ----
  	created_menu_ids.clear ();
  
! // remove only RKMenus, which were not pre-existing
! 	QDictIterator<RKMenu> it (menu_map);
! 	while (it.current ()) {
! 		if (!(it.current ()->pre_existing)) {
! 			delete it.current ();
! 			menu_map.remove (it.currentKey ());
! 		} else {
! 			++it;
! 		}
  	}
  }
  
***************
*** 52,60 ****
  	RK_TRACE (MISC);
  	RKMenu *ret;
! 	if (menu_map.find (id) == menu_map.end ()) {
  		ret = new RKMenu (qmenu, true);
  		menu_map.insert (id, ret);
- 	} else {
- 		ret = menu_map[id];
  	}
  	return ret;
--- 57,63 ----
  	RK_TRACE (MISC);
  	RKMenu *ret;
! 	if (!(ret = menu_map.find (id))) {
  		ret = new RKMenu (qmenu, true);
  		menu_map.insert (id, ret);
  	}
  	return ret;
***************
*** 64,74 ****
  	RK_TRACE (MISC);
  	RKMenu *ret;
! 	if (menu_map.find (id) == menu_map.end ()) {
  		QPopupMenu *qmenu = new QPopupMenu (menu_bar);
  		created_menu_ids.append (menu_bar->insertItem (label, qmenu, -1, index));
  		ret = new RKMenu (qmenu, false);
  		menu_map.insert (id, ret);
- 	} else {
- 		ret = menu_map[id];
  	}
  	return ret;
--- 67,76 ----
  	RK_TRACE (MISC);
  	RKMenu *ret;
! 
! 	if (!(ret = menu_map.find (id))) {
  		QPopupMenu *qmenu = new QPopupMenu (menu_bar);
  		created_menu_ids.append (menu_bar->insertItem (label, qmenu, -1, index));
  		ret = new RKMenu (qmenu, false);
  		menu_map.insert (id, ret);
  	}
  	return ret;





More information about the rkward-tracker mailing list