예제 #1
0
ButtonEditDialog::ButtonEditDialog(JoyButton *button, QWidget *parent) :
    QDialog(parent, Qt::Window),
    ui(new Ui::ButtonEditDialog)
{
    ui->setupUi(this);

#ifdef Q_OS_WIN
    setMinimumHeight(460);
#endif

    setAttribute(Qt::WA_DeleteOnClose);

    ignoreRelease = false;

    this->button = button;
    ui->virtualKeyMouseTabWidget->hide();
    ui->virtualKeyMouseTabWidget->deleteLater();
    ui->virtualKeyMouseTabWidget = new VirtualKeyboardMouseWidget(button, this);
    ui->virtualKeyMouseTabWidget->setFocus();

    ui->verticalLayout->insertWidget(1, ui->virtualKeyMouseTabWidget);
    ui->slotSummaryLabel->setText(button->getSlotsString());
    updateWindowTitleButtonName();

    ui->toggleCheckBox->setChecked(button->getToggleState());
    ui->turboCheckBox->setChecked(button->isUsingTurbo());

    if (!button->getActionName().isEmpty())
    {
        ui->actionNameLineEdit->setText(button->getActionName());
    }

    if (!button->getButtonName().isEmpty())
    {
        ui->buttonNameLineEdit->setText(button->getButtonName());
    }

    connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionCleared()), this, SLOT(refreshSlotSummaryLabel()));
    connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionFinished()), this, SLOT(close()));

    connect(this, SIGNAL(keyGrabbed(JoyButtonSlot*)), this, SLOT(processSlotAssignment(JoyButtonSlot*)));
    connect(this, SIGNAL(selectionCleared()), this, SLOT(clearButtonSlots()));
    connect(this, SIGNAL(selectionCleared()), this, SLOT(sendSelectionFinished()));
    connect(this, SIGNAL(selectionFinished()), this, SLOT(close()));

    connect(ui->toggleCheckBox, SIGNAL(clicked()), this, SLOT(changeToggleSetting()));
    connect(ui->turboCheckBox, SIGNAL(clicked()), this, SLOT(changeTurboSetting()));
    connect(ui->advancedPushButton, SIGNAL(clicked()), this, SLOT(openAdvancedDialog()));
    connect(this, SIGNAL(advancedDialogOpened()), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualKeyboardAdvancedSignalConnections()));
    connect(this, SIGNAL(advancedDialogOpened()), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualMouseAdvancedSignalConnections()));
    connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionMade(int)), this, SLOT(createTempSlot(int)));

    connect(ui->actionNameLineEdit, SIGNAL(textEdited(QString)), button, SLOT(setActionName(QString)));
    connect(ui->buttonNameLineEdit, SIGNAL(textEdited(QString)), button, SLOT(setButtonName(QString)));

    connect(button, SIGNAL(toggleChanged(bool)), ui->toggleCheckBox, SLOT(setChecked(bool)));
    connect(button, SIGNAL(turboChanged(bool)), this, SLOT(checkTurboSetting(bool)));
    connect(button, SIGNAL(slotsChanged()), this, SLOT(refreshSlotSummaryLabel()));
    connect(button, SIGNAL(buttonNameChanged()), this, SLOT(updateWindowTitleButtonName()));
}
예제 #2
0
void ButtonEditDialog::openAdvancedDialog(){
    ui->advancedPushButton->setEnabled(false);

    AdvanceButtonDialog *dialog = new AdvanceButtonDialog(button, this);
    dialog->show();

    // Disconnect event to allow for placing slot to AdvanceButtonDialog
    disconnect(this, SIGNAL(keyGrabbed(JoyButtonSlot*)), 0, 0);
    disconnect(this, SIGNAL(selectionCleared()), 0, 0);
    disconnect(this, SIGNAL(selectionFinished()), 0, 0);

    connect(dialog, SIGNAL(finished(int)), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualKeyboardSingleSignalConnections()));
    connect(dialog, SIGNAL(finished(int)), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualMouseSignalConnections()));
    connect(dialog, SIGNAL(finished(int)), this, SLOT(closedAdvancedDialog()));
    connect(dialog, SIGNAL(turboButtonEnabledChange(bool)), this, SLOT(setTurboButtonEnabled(bool)));

    connect(this, SIGNAL(sendTempSlotToAdvanced(JoyButtonSlot*)), dialog, SLOT(placeNewSlot(JoyButtonSlot*)));
    connect(this, SIGNAL(keyGrabbed(JoyButtonSlot*)), dialog, SLOT(placeNewSlot(JoyButtonSlot*)));
    connect(this, SIGNAL(selectionCleared()), dialog, SLOT(clearAllSlots()));
    connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionMade(JoyButtonSlot*)), dialog, SLOT(placeNewSlot(JoyButtonSlot*)));
    connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionCleared()), dialog, SLOT(clearAllSlots()));

    connect(this, SIGNAL(finished(int)), dialog, SLOT(close()));
    emit advancedDialogOpened();
}
예제 #3
0
void ButtonEditDialog::closedAdvancedDialog()
{
    ui->advancedPushButton->setEnabled(true);

    // Re-connect previously disconnected event
    connect(this, SIGNAL(keyGrabbed(JoyButtonSlot*)), this, SLOT(processSlotAssignment(JoyButtonSlot*)));
    connect(this, SIGNAL(selectionCleared()), this, SLOT(clearButtonSlots()));
    connect(this, SIGNAL(selectionCleared()), this, SLOT(sendSelectionFinished()));
    connect(this, SIGNAL(selectionFinished()), this, SLOT(close()));
}
IndexedSelectionModel::IndexedSelectionModel(QObject* parent)
  : QObject(parent),
    m_hadSelection(false)
{
  connect(this, SIGNAL(selectionCleared()), this, SIGNAL(selectionChanged()));
  connect(this, SIGNAL(itemToggled(int,bool)), this, SIGNAL(selectionChanged()));
}
예제 #5
0
void OSItemList::selectItem(OSItem* selectItem)
{
  if(!selectItem){
    if(m_selectedItem){
      // deselect
      m_selectedItem->setSelected(false);
    }
    m_selectedItem = nullptr;
    emit selectionCleared();
    return;
  }

  for (int i = 0; i < m_vLayout->count(); ++i){
    QLayoutItem * layoutItem = m_vLayout->itemAt(i);
    QWidget * widget = layoutItem->widget();
    OSItem * item = qobject_cast<OSItem*>(widget);

    if (item){
      if (selectItem->equal(item)){

        if(m_selectedItem){
          if (m_selectedItem->equal(item)){
            // already selected
            return;
          }else{
            // deselect
            m_selectedItem->setSelected(false);
          }
        }

        m_selectedItem = item;
        m_selectedItem->setSelected(true);
        emit itemSelected(m_selectedItem);
        return;
      }
    }
  }

  // selected object was not found
  if(m_selectedItem){
    // deselect
    m_selectedItem->setSelected(false);
  }
  m_selectedItem = nullptr;
  emit selectionCleared();
}
예제 #6
0
SubTabController::SubTabController(SubTabView* subTabView)
  : OSQObjectController(),
    m_subTabView(subTabView)
{
  addQObject(subTabView);

  bool isConnected = false;
  isConnected = connect(subTabView, SIGNAL(itemSelected(OSItem*)),
                        this, SLOT(selectItem(OSItem*)));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(itemRemoveClicked(OSItem*)),
                        this, SLOT(removeItem(OSItem*)));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(itemReplacementDropped(OSItem*, const OSItemId&)),
                        this, SLOT(replaceItem(OSItem*, const OSItemId&)));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(selectionCleared()),
                        this, SLOT(clearSelection()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(itemDropped(const OSItemId&)),
                        this, SLOT(handleDrop(const OSItemId&)));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(addClicked()),
                        this, SLOT(doAdd()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(copyClicked()),
                        this, SLOT(doCopy()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(removeClicked()),
                        this, SLOT(doRemove()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(purgeClicked()),
                        this, SLOT(doPurge()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(openBclDlgClicked()),
                        this, SIGNAL(openBclDlgClicked()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(openLibDlgClicked()),
                        this, SIGNAL(openLibDlgClicked()));
  BOOST_ASSERT(isConnected);

  isConnected = connect(subTabView, SIGNAL(dropZoneItemClicked(OSItem*)),
                        this, SLOT(inspectItem(OSItem*)));
  BOOST_ASSERT(isConnected);
}
예제 #7
0
//---------------------------------------------------------------------------
void CRenderWidget::clearSelection()
{
    for (QList<QGraphicsItem*>::iterator it = mSelectionRects.begin(); it != mSelectionRects.end(); ++it)
    {
        mScene.removeItem((*it));
    }

    mSelectionRects.clear();
    mSelectedItems.clear();

    emit selectionCleared();
}
예제 #8
0
void FileViewController::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
{
    switch (selected.length()) {
        case 0:
            emit selectionCleared();
            break;
        case 1:
            emit itemSelected(selected.indexes().at(0));
            break;
        default:
            emit itemsSelected(selected.indexes());
            break;
    }
}
KPrViewModeSlidesSorter::KPrViewModeSlidesSorter(KoPAView *view, KoPACanvasBase *canvas)
    : KoPAViewMode(view, canvas)
    , m_slidesSorterView(new KPrSlidesManagerView())
    , m_customSlideShowView(new KPrSlidesManagerView())
    , m_slidesSorterModel(new KPrSlidesSorterDocumentModel(this, view->parentWidget()))
    , m_centralWidget(new QWidget())
    , m_customSlideShowModel(new KPrCustomSlideShowsModel(static_cast<KPrDocument *>(view->kopaDocument()), view->parentWidget()))
    , m_iconSize(QSize(200, 200))
    , m_editCustomSlideShow(false)
{
    setName(i18n("Slides Sorter"));
    //Create customSlideShow GUI
    QWidget *m_customShowsToolBar = new QWidget();

    QHBoxLayout *toolBarLayout = new QHBoxLayout(m_customShowsToolBar);
    toolBarLayout->setMargin(0);
    QVBoxLayout *centralWidgetLayout = new QVBoxLayout(m_centralWidget);
    centralWidgetLayout->setMargin(0);
    centralWidgetLayout->setSpacing(0);

    QLabel *slideShowsLabel = new QLabel(i18n("Slide Show: "));
    m_customSlideShowsList = new QComboBox;
    m_customSlideShowsList->setEditable(false);
    m_customSlideShowsList->setInsertPolicy(QComboBox::NoInsert);
    m_customSlideShowsList->setMinimumContentsLength(30);
    slideShowsLabel->setBuddy(m_customSlideShowsList);

    m_buttonAddCustomSlideShow = new QToolButton();
    m_buttonAddCustomSlideShow->setIcon(koIcon("list-add"));
    m_buttonAddCustomSlideShow->setToolTip(i18n("Add a new custom slide show"));

    m_buttonDelCustomSlideShow = new QToolButton();
    m_buttonDelCustomSlideShow->setIcon(koIcon("list-remove"));
    m_buttonDelCustomSlideShow->setEnabled(false);
    m_buttonDelCustomSlideShow->setToolTip(i18n("Delete current custom slide show"));

    m_buttonAddSlideToCurrentShow = new QToolButton();
    m_buttonAddSlideToCurrentShow->setIcon(koIcon("arrow-down"));
    m_buttonAddSlideToCurrentShow->setToolTip(i18n("Add slides to current custom slide show"));
    m_buttonAddSlideToCurrentShow->setEnabled(false);

    m_buttonDelSlideFromCurrentShow = new QToolButton();
    m_buttonDelSlideFromCurrentShow->setIcon(koIcon("arrow-up"));
    m_buttonDelSlideFromCurrentShow->setToolTip(i18n("Remove slides from current custom slide show"));
    m_buttonDelSlideFromCurrentShow->setEnabled(false);

    QSplitter *viewsSplitter = new QSplitter(Qt::Vertical);

    //hide Custom Shows View
    m_customSlideShowView->setMaximumHeight(0);

    //Layout Widgets
    toolBarLayout->addWidget(slideShowsLabel);
    toolBarLayout->addWidget(m_customSlideShowsList);
    toolBarLayout->addWidget(m_buttonAddCustomSlideShow);
    toolBarLayout->addWidget(m_buttonDelCustomSlideShow);
    toolBarLayout->addStretch();
    toolBarLayout->addWidget(m_buttonAddSlideToCurrentShow);
    toolBarLayout->addWidget(m_buttonDelSlideFromCurrentShow);
    viewsSplitter->addWidget(m_slidesSorterView);
    viewsSplitter->addWidget(m_customSlideShowView);

    centralWidgetLayout->addWidget(viewsSplitter);
    centralWidgetLayout->addWidget(m_customShowsToolBar);

    //initialize widgets
    m_centralWidget->hide();
    m_slidesSorterView->setIconSize(m_iconSize);
    m_slidesSorterView->setAutoScroll(true);
    m_customSlideShowView->setIconSize(m_iconSize);
    m_customSlideShowView->setAutoScroll(true);

    //Populate ComboBox
    customShowChanged(0);
    updateCustomSlideShowsList();

    //Setup customSlideShows view
    m_customSlideShowView->setModel(m_customSlideShowModel);
    m_customSlideShowView->setSelectionBehavior(QAbstractItemView::SelectRows);
    m_customSlideShowView->setSelectionMode(QAbstractItemView::ExtendedSelection);
    m_customSlideShowView->setDragDropMode(QAbstractItemView::InternalMove);
    m_customSlideShowView->setSpacing(10);

    //Setup slides sorter view
    m_slidesSorterModel->setDocument(m_view->kopaDocument());
    m_slidesSorterView->setModel(m_slidesSorterModel);
    m_slidesSorterView->setSelectionBehavior(QAbstractItemView::SelectRows);
    m_slidesSorterView->setSelectionMode(QAbstractItemView::ExtendedSelection);
    m_slidesSorterView->setDragDropMode(QAbstractItemView::InternalMove);
    m_slidesSorterView->setSpacing(10);

    //setup signals
    connect(m_slidesSorterView, SIGNAL(requestContextMenu(QContextMenuEvent*)), this, SLOT(slidesSorterContextMenu(QContextMenuEvent*)));
    connect(m_customSlideShowView, SIGNAL(requestContextMenu(QContextMenuEvent*)), this, SLOT(customSlideShowsContextMenu(QContextMenuEvent*)));
    connect(m_slidesSorterView, SIGNAL(slideDblClick()), this, SLOT(activateNormalViewMode()));
    connect(m_buttonAddCustomSlideShow, SIGNAL(clicked()), this, SLOT(addCustomSlideShow()));
    connect(m_buttonDelCustomSlideShow, SIGNAL(clicked()), this, SLOT(removeCustomSlideShow()));
    connect(m_buttonAddSlideToCurrentShow, SIGNAL(clicked()), this, SLOT(addSlideToCustomShow()));
    connect(m_buttonDelSlideFromCurrentShow, SIGNAL(clicked()), this, SLOT(deleteSlidesFromCustomShow()));
    connect(m_customSlideShowModel, SIGNAL(customSlideShowsChanged()), this, SLOT(updateCustomSlideShowsList()));
    connect(m_customSlideShowModel, SIGNAL(selectPages(int,int)), this, SLOT(selectCustomShowPages(int,int)));

    //setup signals for manage edit actions
    connect(view->copyController(), SIGNAL(copyRequested()), this, SLOT(editCopy()));
    connect(view->cutController(), SIGNAL(copyRequested()), this, SLOT(editCut()));
    connect(view, SIGNAL(selectAllRequested()), m_slidesSorterView, SLOT(selectAll()));
    connect(view, SIGNAL(deselectAllRequested()), m_slidesSorterView, SLOT(clearSelection()));
    connect(m_slidesSorterView, SIGNAL(selectionCleared()), this, SLOT(disableEditActions()));
    connect(m_slidesSorterView, SIGNAL(itemSelected()), this, SLOT(enableEditActions()));
    connect(m_slidesSorterView, SIGNAL(focusLost()), SLOT(disableEditActions()));
    connect(m_slidesSorterView, SIGNAL(focusGot()), SLOT(manageAddRemoveSlidesButtons()));
    connect(m_slidesSorterView, SIGNAL(zoomIn()), m_view->zoomController()->zoomAction(), SLOT(zoomIn()));
    connect(m_slidesSorterView, SIGNAL(zoomOut()), m_view->zoomController()->zoomAction(), SLOT(zoomOut()));
    connect(m_customSlideShowView, SIGNAL(focusGot()), SLOT(disableEditActions()));
    connect(m_customSlideShowView, SIGNAL(focusGot()), SLOT(manageAddRemoveSlidesButtons()));

    //install selection manager for Slides Sorter View and Custom Shows View
    m_slidesSorterItemContextBar = new KoViewItemContextBar(m_slidesSorterView);
    new KoViewItemContextBar(m_customSlideShowView);
    QToolButton *duplicateButton = m_slidesSorterItemContextBar->addContextButton(i18n("Duplicate Slide"),QString("edit-copy"));
    QToolButton *deleteButton = m_slidesSorterItemContextBar->addContextButton(i18n("Delete Slide"),QString("edit-delete"));
    QToolButton *startPresentation = m_slidesSorterItemContextBar->addContextButton(i18n("Start Slideshow"),QString("view-presentation"));
    connect(view->kopaDocument(), SIGNAL(pageRemoved(KoPAPageBase*)), m_slidesSorterItemContextBar, SLOT(update()));

    //setup signals for item context bar buttons
    connect(duplicateButton, SIGNAL(clicked()), this, SLOT(contextBarDuplicateSlide()));
    connect(deleteButton, SIGNAL(clicked()), this, SLOT(contextBarDeleteSlide()));
    connect(startPresentation, SIGNAL(clicked()), this, SLOT(contextBarStartSlideshow()));

    //install delegate for Slides Sorter View
    KPrSlidesSorterItemDelegate *slidesSorterDelegate = new KPrSlidesSorterItemDelegate(m_slidesSorterView);
    m_slidesSorterView->setItemDelegate(slidesSorterDelegate);
}
예제 #10
0
void VirtualKeyboardMouseWidget::clearButtonSlots()
{
    button->clearSlotsEventReset();
    emit selectionCleared();
}
예제 #11
0
SubTabView::SubTabView(OSItemSelector* itemSelector,
                       OSInspectorView *inspectorView,
                       QWidget * parent)
  : QSplitter(parent),
    m_itemSelector(itemSelector),
    m_inspectorView(inspectorView)
{
  this->setObjectName("GrayWidgetWithLeftTopBorders");

  //QHBoxLayout * mainHLayout = new QHBoxLayout();
  //mainHLayout->setContentsMargins(1,1,0,0);
  //mainHLayout->setSpacing(0);
  //this->setLayout(mainHLayout);

  QWidget * leftWidget = new QWidget();
  //leftWidget->setFixedWidth(190);
  //mainHLayout->addWidget(leftWidget);
  addWidget(leftWidget);
  
  QVBoxLayout * outerLeftVLayout = new QVBoxLayout();
  outerLeftVLayout->setContentsMargins(0,0,0,0);
  outerLeftVLayout->setSpacing(0);
  leftWidget->setLayout(outerLeftVLayout);
  //mainHLayout->addLayout(outerLeftVLayout);

  // Item Selector
  outerLeftVLayout->addWidget(m_itemSelector, 10);

  bool isConnected = false;
  isConnected = QObject::connect(m_itemSelector,
                                 SIGNAL(itemSelected(OSItem*)),
                                 this,
                                 SIGNAL(itemSelected(OSItem*)));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelector,
                                 SIGNAL(itemRemoveClicked(OSItem*)),
                                 this,
                                 SIGNAL(itemRemoveClicked(OSItem*)));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelector,
                                 SIGNAL(itemReplacementDropped(OSItem*, const OSItemId&)),
                                 this,
                                 SIGNAL(itemReplacementDropped(OSItem*, const OSItemId&)));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelector,
                                 SIGNAL(selectionCleared()),
                                 this,
                                 SIGNAL(selectionCleared()));
  OS_ASSERT(isConnected);


  // Item Selector Buttons
  m_itemSelectorButtons = new OSItemSelectorButtons();
  outerLeftVLayout->addWidget(m_itemSelectorButtons);
  
  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(itemDropped(const OSItemId&)),
                                 this,
                                 SIGNAL(itemDropped(const OSItemId&)));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(addClicked()),
                                 this,
                                 SIGNAL(addClicked()));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(copyClicked()),
                                 this,
                                 SIGNAL(copyClicked()));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(removeClicked()),
                                 this,
                                 SIGNAL(removeClicked()));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(purgeClicked()),
                                 this,
                                 SIGNAL(purgeClicked()));
  OS_ASSERT(isConnected);

  isConnected = QObject::connect(m_itemSelectorButtons,
                                 SIGNAL(openBclDlgClicked()),
                                 this,
                                 SIGNAL(openBclDlgClicked()));
  OS_ASSERT(isConnected);

  //isConnected = QObject::connect(m_itemSelectorButtons,
  //                               SIGNAL(openLibDlgClicked()),
  //                               this,
  //                               SIGNAL(openLibDlgClicked()));
  //OS_ASSERT(isConnected); TODO

  // vertical separator
  //QWidget * vLine = new QWidget();
  //vLine->setObjectName("VLine");
  //vLine->setStyleSheet("QWidget#VLine { background: #445051;}");
  //vLine->setFixedWidth(2);
  //mainHLayout->addWidget(vLine);

  // Inspector View
  //mainHLayout->addWidget(m_inspectorView, 10);
  addWidget(m_inspectorView);
  setStretchFactor(1,100000);

  isConnected = QObject::connect(m_inspectorView,
                                 SIGNAL(dropZoneItemClicked(OSItem*)),
                                 this,
                                 SIGNAL(dropZoneItemClicked(OSItem*)));
  OS_ASSERT(isConnected);
}
예제 #12
0
void ButtonEditDialog::keyReleaseEvent(QKeyEvent *event)
{
    if (ui->actionNameLineEdit->hasFocus() || ui->buttonNameLineEdit->hasFocus())
    {
        QDialog::keyReleaseEvent(event);
    }
    else if (ui->virtualKeyMouseTabWidget->isKeyboardTabVisible())
    {
        int controlcode = event->nativeScanCode();
        int virtualactual = event->nativeVirtualKey();

#ifdef Q_OS_WIN
        // Find more specific virtual key (VK_SHIFT -> VK_LSHIFT)
        // by checking for extended bit in scan code.
        int finalvirtual = WinInfo::correctVirtualKey(controlcode, virtualactual);
        int checkalias = AntKeyMapper::returnQtKey(virtualactual, controlcode);

#else

    #if defined(WITH_X11)
        int finalvirtual = 0;
        int checkalias = 0;

        #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        if (QApplication::platformName() == QStringLiteral("xcb"))
        {
        #endif
        // Obtain group 1 X11 keysym. Removes effects from modifiers.
        finalvirtual = X11KeyCodeToX11KeySym(controlcode);
        #ifdef WITH_UINPUT
        // Find Qt Key corresponding to X11 KeySym.
        checkalias = x11KeyMapper.returnQtKey(finalvirtual);
        // Find corresponding Linux input key for the Qt key.
        finalvirtual = AntKeyMapper::returnVirtualKey(checkalias);
        #else
        // Check for alias against group 1 keysym.
        checkalias = AntKeyMapper::returnQtKey(finalvirtual);
        #endif

        #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        }
        else
        {
            // Not running on xcb platform.
            finalvirtual = controlcode;
            checkalias = AntKeyMapper::returnQtKey(finalvirtual);
        }
        #endif

    #else
        int finalvirtual = 0;
        int checkalias = 0;
        #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        if (QApplication::platformName() == QStringLiteral("xcb"))
        {
        #endif
        finalvirtual = AntKeyMapper::returnVirtualKey(event->key());
        checkalias = AntKeyMapper::returnQtKey(finalvirtual);
        #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
        }
        else
        {
            // Not running on xcb platform.
            finalvirtual = controlcode;
            checkalias = AntKeyMapper::returnQtKey(finalvirtual);
        }
        #endif

    #endif

#endif

        if (!ignoreRelease)
        {
            if ((event->modifiers() & Qt::ControlModifier) && event->key() == Qt::Key_X)
            {
                controlcode = 0;
                ignoreRelease = true;
                emit selectionCleared();
            }
            else if (controlcode <= 0)
            {
                controlcode = 0;
            }
        }
        else
        {
            controlcode = 0;
            ignoreRelease = false;
        }


        if (controlcode > 0)
        {
            if (checkalias > 0)
            {
                JoyButtonSlot *tempslot = new JoyButtonSlot(finalvirtual, checkalias, JoyButtonSlot::JoyKeyboard, this);
                emit keyGrabbed(tempslot);
            }
            else
            {
                JoyButtonSlot *tempslot = new JoyButtonSlot(virtualactual, JoyButtonSlot::JoyKeyboard, this);
                emit keyGrabbed(tempslot);
            }
        }
    }
    else
    {
        QDialog::keyReleaseEvent(event);
    }
}
예제 #13
0
void ButtonEditDialog::keyReleaseEvent(QKeyEvent *event)
{
    if (ui->actionNameLineEdit->hasFocus() || ui->buttonNameLineEdit->hasFocus())
    {
        QDialog::keyReleaseEvent(event);
    }
    else if (ui->virtualKeyMouseTabWidget->isKeyboardTabVisible())
    {
        int controlcode = event->nativeScanCode();
        int virtualactual = event->nativeVirtualKey();

        int checkalias = AntKeyMapper::returnQtKey(virtualactual);

        if (checkalias <= 0)
        {
            controlcode = 0;
        }

#ifndef Q_OS_WIN
        Q_UNUSED(virtualactual);
#endif


#ifdef Q_OS_WIN
        int finalvirtual = WinInfo::correctVirtualKey(controlcode, virtualactual);

#endif

        if (!ignoreRelease)
        {
            if ((event->modifiers() & Qt::ControlModifier) && event->key() == Qt::Key_X)
            {
                controlcode = 0;
                ignoreRelease = true;
                emit selectionCleared();
            }
            else if (controlcode < 0)
            {
                controlcode = 0;
            }
        }
        else
        {
            controlcode = 0;
            ignoreRelease = false;
        }


        if (controlcode > 0)
        {
#if defined (Q_OS_UNIX)
            JoyButtonSlot *tempslot = new JoyButtonSlot(virtualactual, JoyButtonSlot::JoyKeyboard, this);

#elif defined (Q_OS_WIN)
            JoyButtonSlot *tempslot = new JoyButtonSlot(finalvirtual, JoyButtonSlot::JoyKeyboard, this);

#endif
            emit keyGrabbed(tempslot);
        }
    }
    else
    {
        QDialog::keyReleaseEvent(event);
    }
}
void IndexedSelectionModel::endClear()
{
  if (m_hadSelection)
    emit selectionCleared();
}
예제 #15
0
void dtkComposerSceneView::setScene(dtkComposerScene *scene)
{
    d->scene = scene;

    connect(d->scene, SIGNAL(selectionCleared()), this, SLOT(clearSelection()));
}