Mercurial > projects > qtd
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; |