Qt Code:
  1. class genericTaskList : public QListWidget
  2. {
  3. Q_OBJECT
  4. public:
  5. unsigned int rowCounter;
  6.  
  7. genericTaskList (QWidget *parentWidget)
  8. {
  9. setParent (parentWidget);
  10. setFixedSize (445, 445);
  11.  
  12. QListWidgetItem *defaultText = new QListWidgetItem ("Double click here to compose the new task.");
  13. defaultText->setFlags (defaultText->flags () | Qt :: ItemIsEditable);
  14.  
  15. rowCounter = 0;
  16. insertItem (rowCounter, defaultText);
  17.  
  18. QObject :: connect (this, SIGNAL (itemDoubleClicked (QListWidgetItem*)), this, SLOT (addDefaultText (QListWidgetItem*)));
  19. QObject :: connect (this, SIGNAL (itemChanged (QListWidgetItem*)), this, SLOT (addDefaultText (QListWidgetItem*)));
  20. }
  21.  
  22. public slots:
  23. void addDefaultText (QListWidgetItem*f)
  24. {
  25. // Returns the current row number.
  26. unsigned int currentRow = row (f);
  27. // Returns the current row text.
  28. QString textOfCurrentRow = f->text ();
  29.  
  30. // The new default row should get inserted if and only if, the last row created has been double clicked and its default text has been changed.
  31. if ((currentRow == rowCounter)
  32. && (textOfCurrentRow.toStdString () != "Double click here to compose the new task.")
  33. && (textOfCurrentRow.toStdString () != ""))
  34. {
  35. ++rowCounter;
  36.  
  37. QListWidgetItem *defaultText = new QListWidgetItem ("Double click here to compose the new task.");
  38. defaultText->setFlags (defaultText->flags () | Qt :: ItemIsEditable);
  39.  
  40. insertItem (rowCounter, defaultText);
  41. setCurrentRow (rowCounter);
  42. }
  43. else if (textOfCurrentRow.toStdString () == "")
  44. {
  45. takeItem (rowCounter);
  46.  
  47. QListWidgetItem *defaultText = new QListWidgetItem ("Double click here to compose the new task.");
  48. defaultText->setFlags (defaultText->flags () | Qt :: ItemIsEditable);
  49. insertItem (rowCounter, defaultText);
  50. setCurrentRow (rowCounter);
  51. }
  52. }
  53. };
To copy to clipboard, switch view to plain text mode 

The problem here is that I can edit the text if and only if I double click the text. Single click or anything else doesn't work. I tried changing that signal from double click to single click, didn't help.

Please guide - Double clicking all the time is a pain.