comparison demos/browser/modelmenu.d @ 74:37caa90ce503

more porting
author mandel
date Fri, 22 May 2009 23:43:58 +0000
parents 7bfd46c330dc
children 0654fc9bac95
comparison
equal deleted inserted replaced
73:7bfd46c330dc 74:37caa90ce503
50 50
51 // A QMenu that is dynamically populated from a QAbstractItemModel 51 // A QMenu that is dynamically populated from a QAbstractItemModel
52 class ModelMenu : public QMenu 52 class ModelMenu : public QMenu
53 { 53 {
54 54
55 mixin Signal!("activated", QModelIndex index); 55 mixin Signal!("activated", QModelIndex /*index*/);
56 mixin Signal!("hovered", QString text); 56 mixin Signal!("hovered", QString /*text*/);
57 57
58 public: 58 public:
59 59
60 this(QWidget parent = null) 60 this(QWidget parent = null)
61 { 61 {
127 int separatorRole() 127 int separatorRole()
128 { 128 {
129 return m_separatorRole; 129 return m_separatorRole;
130 } 130 }
131 131
132 QAction makeAction(QIcon icon, QString text, QObject parent); 132 QAction makeAction(QIcon icon, QString text, QObject parent)
133 { 133 {
134 QFontMetrics fm(font()); 134 auto fm = new QFontMetrics(font());
135 if (-1 == m_maxWidth) 135 if (-1 == m_maxWidth)
136 m_maxWidth = fm.width(QLatin1Char('m')) * 30; 136 m_maxWidth = fm.width(QLatin1Char('m')) * 30;
137 QString smallText = fm.elidedText(text, Qt.ElideMiddle, m_maxWidth); 137 QString smallText = fm.elidedText(text, Qt.ElideMiddle, m_maxWidth);
138 return new QAction(icon, smallText, parent); 138 return new QAction(icon, smallText, parent);
139 } 139 }
233 } 233 }
234 } 234 }
235 235
236 private: 236 private:
237 237
238 QAction makeAction(QModelIndex index); 238 QAction makeAction(QModelIndex index)
239 { 239 {
240 QIcon icon = qvariant_cast<QIcon>(index.data(Qt.DecorationRole)); 240 QIcon icon = cast(QIcon) index.data(Qt.DecorationRole);
241 QAction action = makeAction(icon, index.data().toString(), this); 241 QAction action = makeAction(icon, index.data().toString(), this);
242 QVariant v; 242 QVariant v;
243 v.setValue(index); 243 v.setValue(index);
244 action.setData(v); 244 action.setData(v);
245 return action; 245 return action;