| Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/itemviews/qitemeditorfactory.cpp | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||
| 2 | - | |||||||
| 3 | - | |||||||
| 4 | - | |||||||
| 5 | - | |||||||
| 6 | - | |||||||
| 7 | - | |||||||
| 8 | - | |||||||
| 9 | - | |||||||
| 10 | class QBooleanComboBox : public QComboBox | - | ||||||
| 11 | { | - | ||||||
| 12 | public: template <typename ThisObject> inline void qt_check_for_QOBJECT_macro(const ThisObject &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } | - | ||||||
| 13 | #pragma GCC diagnostic push | - | ||||||
| 14 | static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } __attribute__ ((__deprecated__)) static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); | - | ||||||
| 15 | #pragma GCC diagnostic pop | - | ||||||
| 16 | struct QPrivateSignal {}; | - | ||||||
| 17 | - | |||||||
| 18 | - | |||||||
| 19 | public: | - | ||||||
| 20 | QBooleanComboBox(QWidget *parent); | - | ||||||
| 21 | void setValue(bool); | - | ||||||
| 22 | bool value() const; | - | ||||||
| 23 | }; | - | ||||||
| 24 | - | |||||||
| 25 | - | |||||||
| 26 | - | |||||||
| 27 | - | |||||||
| 28 | - | |||||||
| 29 | - | |||||||
| 30 | class QUIntSpinBox : public QSpinBox | - | ||||||
| 31 | { | - | ||||||
| 32 | public: template <typename ThisObject> inline void qt_check_for_QOBJECT_macro(const ThisObject &_q_argument) const { int i = qYouForgotTheQ_OBJECT_Macro(this, &_q_argument); i = i + 1; } | - | ||||||
| 33 | #pragma GCC diagnostic push | - | ||||||
| 34 | static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); static inline QString tr(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } __attribute__ ((__deprecated__)) static inline QString trUtf8(const char *s, const char *c = nullptr, int n = -1) { return staticMetaObject.tr(s, c, n); } private: __attribute__((visibility("hidden"))) static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); | - | ||||||
| 35 | #pragma GCC diagnostic pop | - | ||||||
| 36 | struct QPrivateSignal {}; | - | ||||||
| 37 | - | |||||||
| 38 | public: | - | ||||||
| 39 | explicit QUIntSpinBox(QWidget *parent = 0) | - | ||||||
| 40 | : QSpinBox(parent) | - | ||||||
| 41 | { | - | ||||||
| 42 | connect(this, qFlagLocation("2""valueChanged(int)" "\0" __FILE__ ":" "79"), qFlagLocation("2""uintValueChanged()" "\0" __FILE__ ":" "79")); | - | ||||||
| 43 |     } never executed:  end of block | 0 | ||||||
| 44 | - | |||||||
| 45 | uint uintValue() | - | ||||||
| 46 | { | - | ||||||
| 47 |         return never executed:   value();return value();never executed:  return value(); | 0 | ||||||
| 48 | } | - | ||||||
| 49 | - | |||||||
| 50 | void setUIntValue(uint value_) | - | ||||||
| 51 | { | - | ||||||
| 52 |         return never executed:   setValue(value_);return setValue(value_);never executed:  return setValue(value_); | 0 | ||||||
| 53 | } | - | ||||||
| 54 | - | |||||||
| 55 | public : | - | ||||||
| 56 | void uintValueChanged(); | - | ||||||
| 57 | }; | - | ||||||
| 58 | QWidget *QItemEditorFactory::createEditor(int userType, QWidget *parent) const | - | ||||||
| 59 | { | - | ||||||
| 60 | QItemEditorCreatorBase *creator = creatorMap.value(userType, 0); | - | ||||||
| 61 |     if (!creator
  | 0 | ||||||
| 62 | const QItemEditorFactory *dfactory = defaultFactory(); | - | ||||||
| 63 |         return never executed:   dfactory == thisreturn dfactory == this ? 0 : dfactory->createEditor(userType, parent);
 never executed:  return dfactory == this ? 0 : dfactory->createEditor(userType, parent); | 0 | ||||||
| 64 | } | - | ||||||
| 65 |     return never executed:   creator->createWidget(parent);return creator->createWidget(parent);never executed:  return creator->createWidget(parent); | 0 | ||||||
| 66 | } | - | ||||||
| 67 | - | |||||||
| 68 | - | |||||||
| 69 | - | |||||||
| 70 | - | |||||||
| 71 | QByteArray QItemEditorFactory::valuePropertyName(int userType) const | - | ||||||
| 72 | { | - | ||||||
| 73 | QItemEditorCreatorBase *creator = creatorMap.value(userType, 0); | - | ||||||
| 74 |     if (!creator
  | 0 | ||||||
| 75 | const QItemEditorFactory *dfactory = defaultFactory(); | - | ||||||
| 76 |         return never executed:   dfactory == thisreturn dfactory == this ? QByteArray() : dfactory->valuePropertyName(userType);
 never executed:  return dfactory == this ? QByteArray() : dfactory->valuePropertyName(userType); | 0 | ||||||
| 77 | } | - | ||||||
| 78 |     return never executed:   creator->valuePropertyName();return creator->valuePropertyName();never executed:  return creator->valuePropertyName(); | 0 | ||||||
| 79 | } | - | ||||||
| 80 | - | |||||||
| 81 | - | |||||||
| 82 | - | |||||||
| 83 | - | |||||||
| 84 | QItemEditorFactory::~QItemEditorFactory() | - | ||||||
| 85 | { | - | ||||||
| 86 | - | |||||||
| 87 | - | |||||||
| 88 | QSet<QItemEditorCreatorBase*> set = creatorMap.values().toSet(); | - | ||||||
| 89 | qDeleteAll(set); | - | ||||||
| 90 | } never executed:  end of block | 0 | ||||||
| 91 | void QItemEditorFactory::registerEditor(int userType, QItemEditorCreatorBase *creator) | - | ||||||
| 92 | { | - | ||||||
| 93 | QHash<int, QItemEditorCreatorBase *>::iterator it = creatorMap.find(userType); | - | ||||||
| 94 |     if (it != creatorMap.end()
  | 0 | ||||||
| 95 | QItemEditorCreatorBase *oldCreator = it.value(); | - | ||||||
| 96 | ((!(oldCreator)) ? qt_assert("oldCreator",__FILE__,203) : qt_noop()); | - | ||||||
| 97 | creatorMap.erase(it); | - | ||||||
| 98 |         if (!creatorMap.values().contains(oldCreator)
  | 0 | ||||||
| 99 |             delete oldCreator; never executed:  delete oldCreator; | 0 | ||||||
| 100 |     } never executed:  end of block | 0 | ||||||
| 101 | - | |||||||
| 102 | creatorMap[userType] = creator; | - | ||||||
| 103 | } never executed:  end of block | 0 | ||||||
| 104 | - | |||||||
| 105 | class QDefaultItemEditorFactory : public QItemEditorFactory | - | ||||||
| 106 | { | - | ||||||
| 107 | public: | - | ||||||
| 108 | inline QDefaultItemEditorFactory() {} | - | ||||||
| 109 | QWidget *createEditor(int userType, QWidget *parent) const override; | - | ||||||
| 110 | QByteArray valuePropertyName(int) const override; | - | ||||||
| 111 | }; | - | ||||||
| 112 | - | |||||||
| 113 | QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent) const | - | ||||||
| 114 | { | - | ||||||
| 115 | switch (userType) { | - | ||||||
| 116 | - | |||||||
| 117 |     case never executed:   QVariant::Bool:case QVariant::Bool:never executed:   {case QVariant::Bool: | 0 | ||||||
| 118 | QBooleanComboBox *cb = new QBooleanComboBox(parent); | - | ||||||
| 119 | cb->setFrame(false); | - | ||||||
| 120 |         return never executed:   cb;return cb;never executed:   }return cb; | 0 | ||||||
| 121 | - | |||||||
| 122 | - | |||||||
| 123 |     case never executed:   QVariant::UInt:case QVariant::UInt:never executed:   {case QVariant::UInt: | 0 | ||||||
| 124 | QSpinBox *sb = new QUIntSpinBox(parent); | - | ||||||
| 125 | sb->setFrame(false); | - | ||||||
| 126 | sb->setMinimum(0); | - | ||||||
| 127 | sb->setMaximum(2147483647); | - | ||||||
| 128 |         return never executed:   sb;return sb;never executed:   }return sb; | 0 | ||||||
| 129 |     case never executed:   QVariant::Int:case QVariant::Int:never executed:   {case QVariant::Int: | 0 | ||||||
| 130 | QSpinBox *sb = new QSpinBox(parent); | - | ||||||
| 131 | sb->setFrame(false); | - | ||||||
| 132 | sb->setMinimum((-2147483647 - 1)); | - | ||||||
| 133 | sb->setMaximum(2147483647); | - | ||||||
| 134 |         return never executed:   sb;return sb;never executed:   }return sb; | 0 | ||||||
| 135 | - | |||||||
| 136 | - | |||||||
| 137 |     case never executed:   QVariant::Date:case QVariant::Date:never executed:   {case QVariant::Date: | 0 | ||||||
| 138 | QDateTimeEdit *ed = new QDateEdit(parent); | - | ||||||
| 139 | ed->setFrame(false); | - | ||||||
| 140 |         return never executed:   ed;return ed;never executed:   }return ed; | 0 | ||||||
| 141 |     case never executed:   QVariant::Time:case QVariant::Time:never executed:   {case QVariant::Time: | 0 | ||||||
| 142 | QDateTimeEdit *ed = new QTimeEdit(parent); | - | ||||||
| 143 | ed->setFrame(false); | - | ||||||
| 144 |         return never executed:   ed;return ed;never executed:   }return ed; | 0 | ||||||
| 145 |     case never executed:   QVariant::DateTime:case QVariant::DateTime:never executed:   {case QVariant::DateTime: | 0 | ||||||
| 146 | QDateTimeEdit *ed = new QDateTimeEdit(parent); | - | ||||||
| 147 | ed->setFrame(false); | - | ||||||
| 148 |         return never executed:   ed;return ed;never executed:   }return ed; | 0 | ||||||
| 149 | - | |||||||
| 150 |     case never executed:   QVariant::Pixmap:case QVariant::Pixmap:never executed:  case QVariant::Pixmap: | 0 | ||||||
| 151 |         return never executed:   new QLabel(parent);return new QLabel(parent);never executed:  return new QLabel(parent); | 0 | ||||||
| 152 | - | |||||||
| 153 |     case never executed:   QVariant::Double:case QVariant::Double:never executed:   {case QVariant::Double: | 0 | ||||||
| 154 | QDoubleSpinBox *sb = new QDoubleSpinBox(parent); | - | ||||||
| 155 | sb->setFrame(false); | - | ||||||
| 156 | sb->setMinimum(-double(1.79769313486231570815e+308L)); | - | ||||||
| 157 | sb->setMaximum(double(1.79769313486231570815e+308L)); | - | ||||||
| 158 |         return never executed:   sb;return sb;never executed:   }return sb; | 0 | ||||||
| 159 | - | |||||||
| 160 | - | |||||||
| 161 |     case never executed:   QVariant::String:case QVariant::String:never executed:  case QVariant::String: | 0 | ||||||
| 162 |     default never executed:  :default:never executed:   {default: | 0 | ||||||
| 163 | - | |||||||
| 164 | QExpandingLineEdit *le = new QExpandingLineEdit(parent); | - | ||||||
| 165 | le->setFrame(le->style()->styleHint(QStyle::SH_ItemView_DrawDelegateFrame, 0, le)); | - | ||||||
| 166 |         if (!le->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, 0, le)
  | 0 | ||||||
| 167 |             le->setWidgetOwnsGeometry(true); never executed:  le->setWidgetOwnsGeometry(true); | 0 | ||||||
| 168 |         return never executed:   le;return le;never executed:   }return le; | 0 | ||||||
| 169 | - | |||||||
| 170 | - | |||||||
| 171 | - | |||||||
| 172 | - | |||||||
| 173 | } | - | ||||||
| 174 |     return dead code:   0;return 0;dead code:  return 0; | - | ||||||
| 175 | } | - | ||||||
| 176 | - | |||||||
| 177 | QByteArray QDefaultItemEditorFactory::valuePropertyName(int userType) const | - | ||||||
| 178 | { | - | ||||||
| 179 | switch (userType) { | - | ||||||
| 180 | - | |||||||
| 181 |     case never executed:   QVariant::Bool:case QVariant::Bool:never executed:  case QVariant::Bool: | 0 | ||||||
| 182 |         return never executed:   "currentIndex";return "currentIndex";never executed:  return "currentIndex"; | 0 | ||||||
| 183 | - | |||||||
| 184 | - | |||||||
| 185 |     case never executed:   QVariant::UInt:case QVariant::UInt:never executed:  case QVariant::UInt: | 0 | ||||||
| 186 |     case never executed:   QVariant::Int:case QVariant::Int:never executed:  case QVariant::Int: | 0 | ||||||
| 187 |     case never executed:   QVariant::Double:case QVariant::Double:never executed:  case QVariant::Double: | 0 | ||||||
| 188 |         return never executed:   "value";return "value";never executed:  return "value"; | 0 | ||||||
| 189 | - | |||||||
| 190 | - | |||||||
| 191 |     case never executed:   QVariant::Date:case QVariant::Date:never executed:  case QVariant::Date: | 0 | ||||||
| 192 |         return never executed:   "date";return "date";never executed:  return "date"; | 0 | ||||||
| 193 |     case never executed:   QVariant::Time:case QVariant::Time:never executed:  case QVariant::Time: | 0 | ||||||
| 194 |         return never executed:   "time";return "time";never executed:  return "time"; | 0 | ||||||
| 195 |     case never executed:   QVariant::DateTime:case QVariant::DateTime:never executed:  case QVariant::DateTime: | 0 | ||||||
| 196 |         return never executed:   "dateTime";return "dateTime";never executed:  return "dateTime"; | 0 | ||||||
| 197 | - | |||||||
| 198 |     case never executed:   QVariant::String:case QVariant::String:never executed:  case QVariant::String: | 0 | ||||||
| 199 |     default never executed:  :default:never executed:  default: | 0 | ||||||
| 200 | - | |||||||
| 201 |         return never executed:   "text";return "text";never executed:  return "text"; | 0 | ||||||
| 202 | } | - | ||||||
| 203 | } | - | ||||||
| 204 | - | |||||||
| 205 | static QItemEditorFactory *q_default_factory = 0; | - | ||||||
| 206 | struct QDefaultFactoryCleaner | - | ||||||
| 207 | { | - | ||||||
| 208 | inline QDefaultFactoryCleaner() {} | - | ||||||
| 209 |     ~QDefaultFactoryCleaner() { delete q_default_factory; q_default_factory = 0; } never executed:  end of block | 0 | ||||||
| 210 | }; | - | ||||||
| 211 | - | |||||||
| 212 | - | |||||||
| 213 | - | |||||||
| 214 | - | |||||||
| 215 | - | |||||||
| 216 | - | |||||||
| 217 | const QItemEditorFactory *QItemEditorFactory::defaultFactory() | - | ||||||
| 218 | { | - | ||||||
| 219 | static const QDefaultItemEditorFactory factory; | - | ||||||
| 220 |     if (q_default_factory
  | 0 | ||||||
| 221 |         return never executed:   q_default_factory;return q_default_factory;never executed:  return q_default_factory; | 0 | ||||||
| 222 |     return never executed:   &factory;return &factory;never executed:  return &factory; | 0 | ||||||
| 223 | } | - | ||||||
| 224 | - | |||||||
| 225 | - | |||||||
| 226 | - | |||||||
| 227 | - | |||||||
| 228 | - | |||||||
| 229 | - | |||||||
| 230 | - | |||||||
| 231 | void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory) | - | ||||||
| 232 | { | - | ||||||
| 233 | static const QDefaultFactoryCleaner cleaner; | - | ||||||
| 234 | delete q_default_factory; | - | ||||||
| 235 | q_default_factory = factory; | - | ||||||
| 236 | } never executed:  end of block | 0 | ||||||
| 237 | QItemEditorCreatorBase::~QItemEditorCreatorBase() | - | ||||||
| 238 | { | - | ||||||
| 239 | - | |||||||
| 240 | } | - | ||||||
| 241 | QExpandingLineEdit::QExpandingLineEdit(QWidget *parent) | - | ||||||
| 242 | : QLineEdit(parent), originalWidth(-1), widgetOwnsGeometry(false) | - | ||||||
| 243 | { | - | ||||||
| 244 | connect(this, qFlagLocation("2""textChanged(QString)" "\0" __FILE__ ":" "525"), this, qFlagLocation("1""resizeToContents()" "\0" __FILE__ ":" "525")); | - | ||||||
| 245 | updateMinimumWidth(); | - | ||||||
| 246 | } never executed:  end of block | 0 | ||||||
| 247 | - | |||||||
| 248 | void QExpandingLineEdit::changeEvent(QEvent *e) | - | ||||||
| 249 | { | - | ||||||
| 250 | switch (e->type()) | - | ||||||
| 251 | { | - | ||||||
| 252 |     case never executed:   QEvent::FontChange:case QEvent::FontChange:never executed:  case QEvent::FontChange: | 0 | ||||||
| 253 |     case never executed:   QEvent::StyleChange:case QEvent::StyleChange:never executed:  case QEvent::StyleChange: | 0 | ||||||
| 254 |     case never executed:   QEvent::ContentsRectChange:case QEvent::ContentsRectChange:never executed:  case QEvent::ContentsRectChange: | 0 | ||||||
| 255 | updateMinimumWidth(); | - | ||||||
| 256 |         break; never executed:  break; | 0 | ||||||
| 257 |     default never executed:  :default:never executed:  default: | 0 | ||||||
| 258 |         break; never executed:  break; | 0 | ||||||
| 259 | } | - | ||||||
| 260 | - | |||||||
| 261 | QLineEdit::changeEvent(e); | - | ||||||
| 262 | } never executed:  end of block | 0 | ||||||
| 263 | - | |||||||
| 264 | void QExpandingLineEdit::updateMinimumWidth() | - | ||||||
| 265 | { | - | ||||||
| 266 | int left, right; | - | ||||||
| 267 | getTextMargins(&left, 0, &right, 0); | - | ||||||
| 268 | int width = left + right + 4 ; | - | ||||||
| 269 | getContentsMargins(&left, 0, &right, 0); | - | ||||||
| 270 | width += left + right; | - | ||||||
| 271 | - | |||||||
| 272 | QStyleOptionFrame opt; | - | ||||||
| 273 | initStyleOption(&opt); | - | ||||||
| 274 | - | |||||||
| 275 | int minWidth = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, QSize(width, 0). | - | ||||||
| 276 | expandedTo(QApplication::globalStrut()), this).width(); | - | ||||||
| 277 | setMinimumWidth(minWidth); | - | ||||||
| 278 | } never executed:  end of block | 0 | ||||||
| 279 | - | |||||||
| 280 | void QExpandingLineEdit::resizeToContents() | - | ||||||
| 281 | { | - | ||||||
| 282 | int oldWidth = width(); | - | ||||||
| 283 |     if (originalWidth == -1
  | 0 | ||||||
| 284 |         originalWidth = oldWidth; never executed:  originalWidth = oldWidth; | 0 | ||||||
| 285 |     if (QWidget *parent = parentWidget()
  | 0 | ||||||
| 286 | QPoint position = pos(); | - | ||||||
| 287 | int hintWidth = minimumWidth() + fontMetrics().width(displayText()); | - | ||||||
| 288 | int parentWidth = parent->width(); | - | ||||||
| 289 |         int maxWidth = isRightToLeft()
  | 0 | ||||||
| 290 | int newWidth = qBound(originalWidth, hintWidth, maxWidth); | - | ||||||
| 291 |         if (widgetOwnsGeometry
  | 0 | ||||||
| 292 |             setMaximumWidth(newWidth); never executed:  setMaximumWidth(newWidth); | 0 | ||||||
| 293 |         if (isRightToLeft()
  | 0 | ||||||
| 294 |             move(position.x() - newWidth + oldWidth, position.y()); never executed:  move(position.x() - newWidth + oldWidth, position.y()); | 0 | ||||||
| 295 | resize(newWidth, height()); | - | ||||||
| 296 |     } never executed:  end of block | 0 | ||||||
| 297 | } never executed:  end of block | 0 | ||||||
| 298 | - | |||||||
| 299 | - | |||||||
| 300 | - | |||||||
| 301 | - | |||||||
| 302 | - | |||||||
| 303 | QBooleanComboBox::QBooleanComboBox(QWidget *parent) | - | ||||||
| 304 | : QComboBox(parent) | - | ||||||
| 305 | { | - | ||||||
| 306 | addItem(QComboBox::tr("False")); | - | ||||||
| 307 | addItem(QComboBox::tr("True")); | - | ||||||
| 308 | } never executed:  end of block | 0 | ||||||
| 309 | - | |||||||
| 310 | void QBooleanComboBox::setValue(bool value) | - | ||||||
| 311 | { | - | ||||||
| 312 | setCurrentIndex(value ? 1 : 0); | - | ||||||
| 313 | } never executed:  end of block | 0 | ||||||
| 314 | - | |||||||
| 315 | bool QBooleanComboBox::value() const | - | ||||||
| 316 | { | - | ||||||
| 317 |     return never executed:   (currentIndex() == 1);return (currentIndex() == 1);never executed:  return (currentIndex() == 1); | 0 | ||||||
| 318 | } | - | ||||||
| 319 | - | |||||||
| 320 | - | |||||||
| 321 | - | |||||||
| 322 | - | |||||||
| 323 | - | |||||||
| 324 | - | |||||||
| 325 | - | |||||||
| 326 | - | |||||||
| Switch to Source code | Preprocessed file |