예제 #1
0
KexiDBDatePicker::KexiDBDatePicker(QWidget *parent)
        : KDatePicker(parent)
        , KexiFormDataItemInterface()
        , m_dateEditFocused(false)
{
    connect(this, SIGNAL(dateChanged(QDate)), this, SLOT(slotValueChanged()));
    connect(this, SIGNAL(dateEntered(QDate)), this, SLOT(slotValueChanged()));
}
예제 #2
0
KexiDBDateTimeEdit::KexiDBDateTimeEdit(const QDateTime &datetime, QWidget *parent)
        : QWidget(parent), KexiFormDataItemInterface()
{
    m_invalidState = false;
    m_cleared = false;
    m_readOnly = false;

    m_dateEdit = new Q3DateEdit(datetime.date(), this);
    m_dateEdit->setAutoAdvance(true);
    m_dateEdit->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
// m_dateEdit->setFixedWidth( QFontMetrics(m_dateEdit->font()).width("8888-88-88___") );
    connect(m_dateEdit, SIGNAL(valueChanged(QDate)), this, SLOT(slotValueChanged()));
    connect(m_dateEdit, SIGNAL(valueChanged(QDate)), this, SIGNAL(dateTimeChanged()));

    QToolButton* btn = new QToolButton(this);
    btn->setText("...");
    btn->setFixedWidth(QFontMetrics(btn->font()).width(" ... "));
    btn->setPopupDelay(1); //1 ms

    m_timeEdit = new Q3TimeEdit(datetime.time(), this);
    m_timeEdit->setAutoAdvance(true);
    m_timeEdit->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
    connect(m_timeEdit, SIGNAL(valueChanged(QTime)), this, SLOT(slotValueChanged()));
    connect(m_timeEdit, SIGNAL(valueChanged(QTime)), this, SIGNAL(dateTimeChanged()));

#ifdef QDateTimeEditor_HACK
    m_dte_date = KexiUtils::findFirstChild<QDateTimeEditor>(m_dateEdit, "QDateTimeEditor");
    m_dte_time = KexiUtils::findFirstChild<QDateTimeEditor>(m_timeEdit, "QDateTimeEditor");
#else
    m_dte_date = 0;
#endif

    m_datePickerPopupMenu = new QMenu(0, "date_popup");
    connect(m_datePickerPopupMenu, SIGNAL(aboutToShow()), this, SLOT(slotShowDatePicker()));
    m_datePicker = new KDatePicker(m_datePickerPopupMenu, QDate::currentDate(), 0);

    KDateTable *dt = KexiUtils::findFirstChild<KDateTable>(m_datePicker, "KDateTable");
    if (dt)
        connect(dt, SIGNAL(tableClicked()), this, SLOT(acceptDate()));
    m_datePicker->setCloseButton(true);
    m_datePicker->installEventFilter(this);
    m_datePickerPopupMenu->insertItem(m_datePicker);
    btn->setPopup(m_datePickerPopupMenu);

    QHBoxLayout* layout = new QHBoxLayout(this);
    layout->addWidget(m_dateEdit, 0);
    layout->addWidget(btn, 0);
    layout->addWidget(m_timeEdit, 0);
    //layout->addStretch(1);

    setFocusProxy(m_dateEdit);
}
MLocaleGConfConfigItem::MLocaleGConfConfigItem( const QString& key ) :
    ML10N::MLocaleAbstractConfigItem( key ),
    d_ptr( new MLocaleGConfConfigItemPrivate( key ) )
{
    connect( &d_ptr->gconfItem, SIGNAL( valueChanged() ),
             this, SLOT( slotValueChanged() ) );
}
예제 #4
0
bool InputPatch::set(QLCIOPlugin* plugin, quint32 input, QLCInputProfile* profile)
{
    bool result = false;

    if (m_plugin != NULL && m_input != QLCIOPlugin::invalidLine())
    {
        disconnect(m_plugin, SIGNAL(valueChanged(quint32,quint32,quint32,uchar,QString)),
                   this, SLOT(slotValueChanged(quint32,quint32,quint32,uchar,QString)));
        m_plugin->closeInput(m_input);
    }

    m_plugin = plugin;
    m_input = input;
    m_profile = profile;

    /* Open the assigned plugin input */
    if (m_plugin != NULL && m_input != QLCIOPlugin::invalidLine())
    {
        connect(m_plugin, SIGNAL(valueChanged(quint32,quint32,quint32,uchar,QString)),
                this, SLOT(slotValueChanged(quint32,quint32,quint32,uchar,QString)));
        result = m_plugin->openInput(m_input);

        if (m_profile != NULL)
        {
            QMapIterator <quint32,QLCInputChannel*> it(m_profile->channels());
            while (it.hasNext() == true)
            {
                it.next();
                QLCInputChannel *ch = it.value();
                if (ch != NULL)
                {
                    if (m_nextPageCh == USHRT_MAX && ch->type() == QLCInputChannel::NextPage)
                        m_nextPageCh = m_profile->channelNumber(ch);
                    else if (m_prevPageCh == USHRT_MAX && ch->type() == QLCInputChannel::PrevPage)
                        m_prevPageCh = m_profile->channelNumber(ch);
                    else if (m_pageSetCh == USHRT_MAX && ch->type() == QLCInputChannel::PageSet)
                        m_pageSetCh = m_profile->channelNumber(ch);
                }
            }
        }
    }
    return result;
}
예제 #5
0
void MidiPlugin::closeInput(quint32 input)
{
    qDebug() << Q_FUNC_INFO;

    MidiInputDevice* dev = inputDevice(input);
    if (dev != NULL && dev->isOpen() == true)
    {
        dev->close();
        disconnect(dev, SIGNAL(valueChanged(QVariant,ushort,uchar)),
                   this, SLOT(slotValueChanged(QVariant,ushort,uchar)));
    }
}
예제 #6
0
void MidiPlugin::openInput(quint32 input)
{
    qDebug() << "MIDI Plugin open Input: " << input;

    MidiInputDevice* dev = inputDevice(input);
    if (dev != NULL && dev->isOpen() == false)
    {
        dev->open();
        connect(dev, SIGNAL(valueChanged(QVariant,ushort,uchar)),
                this, SLOT(slotValueChanged(QVariant,ushort,uchar)));
    }
}
예제 #7
0
void InputPatch::set(QLCIOPlugin* plugin, quint32 input, QLCInputProfile* profile)
{
    if (m_plugin != NULL && m_input != QLCIOPlugin::invalidLine())
    {
        disconnect(m_plugin, SIGNAL(valueChanged(quint32,quint32,uchar,QString)),
                   this, SLOT(slotValueChanged(quint32,quint32,uchar,QString)));
        m_plugin->closeInput(m_input);
    }

    m_plugin = plugin;
    m_input = input;
    m_profile = profile;

    /* Open the assigned plugin input */
    if (m_plugin != NULL && m_input != QLCIOPlugin::invalidLine())
    {
        connect(m_plugin, SIGNAL(valueChanged(quint32,quint32,uchar,QString)),
                this, SLOT(slotValueChanged(quint32,quint32,uchar,QString)));
        m_plugin->openInput(m_input);
    }
}
예제 #8
0
bool InputPatch::set(QLCIOPlugin* plugin, quint32 input, QLCInputProfile* profile)
{
    bool result = false;

    if (m_plugin != NULL && m_pluginLine != QLCIOPlugin::invalidLine())
    {
        disconnect(m_plugin, SIGNAL(valueChanged(quint32,quint32,quint32,uchar,QString)),
                   this, SLOT(slotValueChanged(quint32,quint32,quint32,uchar,QString)));
        m_plugin->closeInput(m_pluginLine, m_universe);
    }

    m_plugin = plugin;
    m_pluginLine = input;
    m_profile = profile;

    if (m_plugin != NULL)
    {
        emit pluginNameChanged();
        if (m_pluginLine != QLCIOPlugin::invalidLine())
            emit inputNameChanged();
        if (m_profile != NULL)
            emit profileNameChanged();
    }

    /* Open the assigned plugin input */
    if (m_plugin != NULL && m_pluginLine != QLCIOPlugin::invalidLine())
    {
        connect(m_plugin, SIGNAL(valueChanged(quint32,quint32,quint32,uchar,QString)),
                this, SLOT(slotValueChanged(quint32,quint32,quint32,uchar,QString)));
        result = m_plugin->openInput(m_pluginLine, m_universe);

        if (m_profile != NULL)
            setProfilePageControls();
    }
    return result;
}
예제 #9
0
int GrandMasterSlider::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QFrame::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: slotValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 1: slotInputValueChanged((*reinterpret_cast< quint32(*)>(_a[1])),(*reinterpret_cast< quint32(*)>(_a[2])),(*reinterpret_cast< uchar(*)>(_a[3]))); break;
        default: ;
        }
        _id -= 2;
    }
    return _id;
}
예제 #10
0
void EWingInput::addDevice(EWing* device)
{
    Q_ASSERT(device != NULL);

    connect(device, SIGNAL(valueChanged(quint32,uchar)),
            this, SLOT(slotValueChanged(quint32,uchar)));

    m_devices.append(device);

    /* To maintain some persistency with the indices of multiple devices
       between sessions they need to be sorted according to some
       (semi-)permanent criteria. Their addresses shouldn't change too
       often, so let's use that. */
    qSort(m_devices.begin(), m_devices.end(), ewing_device_sort);

    emit configurationChanged();
}
예제 #11
0
int EWingInput::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QLCInPlugin::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: valueChanged((*reinterpret_cast< quint32(*)>(_a[1])),(*reinterpret_cast< quint32(*)>(_a[2])),(*reinterpret_cast< uchar(*)>(_a[3]))); break;
        case 1: configurationChanged(); break;
        case 2: slotReadSocket(); break;
        case 3: slotValueChanged((*reinterpret_cast< quint32(*)>(_a[1])),(*reinterpret_cast< uchar(*)>(_a[2]))); break;
        default: ;
        }
        _id -= 4;
    }
    return _id;
}
예제 #12
0
파일: inputmap.cpp 프로젝트: speakman/qlc
bool InputMap::appendPlugin(QLCInPlugin* inputPlugin)
{
    Q_ASSERT(inputPlugin != NULL);

    if (plugin(inputPlugin->name()) == NULL)
    {
        m_plugins.append(inputPlugin);
        connect(inputPlugin, SIGNAL(configurationChanged()),
                this, SLOT(slotConfigurationChanged()));
        connect(inputPlugin, SIGNAL(valueChanged(quint32,quint32,uchar)),
                this, SLOT(slotValueChanged(quint32,quint32,uchar)));
        emit pluginAdded(inputPlugin->name());
        return true;
    }
    else
    {
        qWarning() << Q_FUNC_INFO << "Input plugin" << inputPlugin->name()
                   << "is already loaded. Skipping.";
        return false;
    }
}