void MColorComboBoxViewPrivate::_q_showPopup() { Q_Q(MColorComboBoxView); popupWidget()->setTitle(q->model()->title()); colorWidget()->setSelectedColor(q->model()->color()); q->connect(popupWidget(), SIGNAL(disappeared()), q, SLOT(_q_popupDisappeared())); q->connect(colorWidget(), SIGNAL(colorPicked()), q, SLOT(_q_colorPicked())); popupWidget()->appear(); }
void MColorComboBoxViewPrivate::_q_colorPicked() { Q_Q(MColorComboBoxView); q->model()->setColor(colorWidget()->selectedColor()); popupWidget()->disappear(); }
void MColorComboBoxViewPrivate::_q_popupDisappeared() { Q_Q(MColorComboBoxView); q->disconnect(popupWidget(), SIGNAL(disappeared()), q, SLOT(_q_popupDisappeared())); q->disconnect(colorWidget(), SIGNAL(colorPicked()), q, SLOT(_q_colorPicked())); }
void MColorComboBoxViewPrivate::_q_popupDisappeared() { Q_Q(MColorComboBoxView); QObject::disconnect(controller, SIGNAL(dismissed()), popupWidget(), SLOT(reject())); q->disconnect(popupWidget(), SIGNAL(disappeared()), q, SLOT(_q_popupDisappeared())); q->disconnect(colorWidget(), SIGNAL(colorPicked()), q, SLOT(_q_colorPicked())); }
MDialog *MColorComboBoxViewPrivate::popupWidget() { if (!popup) { popup = new MDialog(); popup->setCentralWidget(colorWidget()); } return popup; }