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()));
}
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();
}