Hi,

There is a bug in the usermenu dialog (master branch). 

If you add a new menuentry and choose an executable file as its type, not all checkboxes of the parameter groupbox and warnings are set accordingly. As a workaround so far the user has to select another entry and then select the newly added entry again, which will set all available checkboxes and color warnings.

This small patch will change the files usermenudialog.cpp and usermenutree.cpp:

diff -u -r original/usermenudialog.cpp changed/usermenudialog.cpp
--- original/usermenudialog.cpp 2012-04-30 17:21:02.000000000 +0200
+++ changed/usermenudialog.cpp 2012-10-26 18:39:00.000000000 +0200
@@ -588,18 +588,21 @@
  setMenuentryFileChooser(current,false);
  setMenuentryFileParameter(current,false);
  setMenuentryTextEdit(current,true);
+ setMenuentryCheckboxes(current,false);
  }
  else if ( newtype == UserMenuData::FileContent ) {
  setMenuentryFileChooser(current,true);
  setMenuentryFileParameter(current,false);
  setMenuentryTextEdit(current,false);
+ setMenuentryCheckboxes(current,false);
  }
  else /* if ( newtype == UserMenuData::Program ) */ {
  setMenuentryFileChooser(current,true);
  setMenuentryFileParameter(current,true);
  setMenuentryTextEdit(current,false);
+ setMenuentryCheckboxes(current,true);
  }
-
+
  setModified();
 }
 
@@ -628,12 +631,12 @@
  QString color = "black";
  int type = current->menutype();
  if ( type == UserMenuData::FileContent ) {
- if ( !QFile::exists(file) || file.isEmpty() ) {
+ if ( file.isEmpty() || !QFile::exists(file) ) {
  color = "red";
  }
  }
  else if ( type == UserMenuData::Program ) {
- if ( !m_menutree->isItemExecutable(file) ) {
+ if ( file.isEmpty() || !m_menutree->isItemExecutable(file) ) {
  color= "red";
  }
  }
diff -u -r original/usermenutree.cpp changed/usermenutree.cpp
--- original/usermenutree.cpp 2012-04-30 17:21:02.000000000 +0200
+++ changed/usermenutree.cpp 2012-10-26 18:45:56.000000000 +0200
@@ -133,6 +133,10 @@
 
 bool UserMenuTree::isItemExecutable(const QString &filename)
 {
+ if ( filename.isEmpty() ) {
+ return false;
+ }
+
  // absolute paths can be checked immediately
  QFileInfo fi(filename);
  if ( fi.isAbsolute() ) {