Example #1
0
void imageCompareBase::setConnections() {

  connect(switchAction_, SIGNAL(triggered()),
          this, SLOT(switchSides()));
  connect(centerSplitterAction_, SIGNAL(triggered()),
          this, SLOT(centerSplitter()));
  connect(leftFocusAction_, SIGNAL(triggered()),
          this, SLOT(focusLeft()));
  connect(leftImageMenu_, SIGNAL(triggered(QAction* )),
          this, SLOT(processLeftImageMenuTrigger(QAction* )));
  connect(leftImageListBox_, SIGNAL(activated(const QString& )),
          this, SLOT(processLeftBox(const QString& )));
  connect(leftShowHide_, SIGNAL(triggered(bool )),
          this, SLOT(showHideLeft(bool )));
  connect(leftDelete_, SIGNAL(triggered()),
          this, SLOT(deleteLeft()));
  connect(rightFocusAction_, SIGNAL(triggered()),
          this, SLOT(focusRight()));
  connect(rightImageMenu_, SIGNAL(triggered(QAction* )),
          this, SLOT(processRightImageMenuTrigger(QAction* )));
  connect(rightImageListBox_, SIGNAL(activated(const QString& )),
          this, SLOT(processRightBox(const QString& )));
  connect(rightShowHide_, SIGNAL(triggered(bool )),
          this, SLOT(showHideRight(bool )));
  connect(rightDelete_, SIGNAL(triggered()),
          this, SLOT(deleteRight()));
  connect(dualZoomingAction_, SIGNAL(triggered(bool )),
          this, SLOT(updateDualZooming(bool )));

  // connect scrolling on the two images
  setScrollingConnections(true);
}
Example #2
0
Tree deleteTree(Tree t, TreeEntry e, int *diminuiu) {
  // Node with entry e is supposed to exist. Before deleteTree, call searchTree.
  Tree aux, min;
  // step 1 - remove node with entry e
  if(e == t->entry) {
    if(isLeaf(t)) { // if node with entry e is a leaf, just (physically) remove it
      aux = t;
      t = NULL;
      free(aux);
      *diminuiu = 1;
    }
    else if(has1child(t)) {
      switch(t->bf) { // if node with entry e has only 1 child, check balance factor
        case LH: // overwrite node entry with left child entry and remove left child
          aux = t->left;
          t->entry = aux->entry;
          t->left = NULL;
          free(aux);
          break;
        case RH: // set node entry to right child entry and remove right child
          aux = t->right;
          t->entry = aux->entry;
          t->right = NULL;
          free(aux);
          break;
      }
      *diminuiu = 1;
    }
    else { // if node with entry e has both subtrees
      aux = minEntry(t->right);
      t->entry = aux->entry; // overwrite t's entry with the smallest entry in the right subtree
      t->right = deleteTree(t->right,aux->entry,diminuiu);
    }
  }
  else if(e < t->entry)
    t = deleteLeft(t, e, diminuiu);
  else
    t = deleteRight(t, e, diminuiu);

  // step 2 - rebalance the tree (if necessary)


  return t;
}
Example #3
0
int main(int argc, const char * argv[]) {
	
	DQUEUE_p_t queue = (DQUEUE_p_t)calloc(SIZE, sizeof(DQUEUE_t));
	initQueue (queue);
	
	char choice;
	
	do {
		printf("\n------------------------------------------------------------\n | 1. Insert Left\n | 2. Insert Right\n | 3. Delete Left\n | 4. Delete Right\n | 5. Display Queue.\n | Q. Quit\n | Enter choice : ");
		choice = getchar();
		getchar();
		
		char * item = (char *)malloc(SIZE * sizeof(char));
		
		if (choice == '1') {
			printf("\n | Enter item to be inserted: ");
			fgets(item, SIZE, stdin);
			insertLeft(queue, item);
		}
		else if (choice == '2') {
			printf("\n | Enter item to be inserted: ");
			fgets(item, SIZE, stdin);
			insertRight(queue, item);
		}
		else if (choice == '3') {
			item = deleteLeft(queue);
			if (item != UNDERFLOW_CHAR)
				printf("\n | Deleted item: %s\n", item);
		}
		else if (choice == '4') {
			item = deleteRight(queue);
			if (item != UNDERFLOW_CHAR)
				printf("\n | Deleted item: %s\n", item);
		}
		
		display(*queue);
		
	} while (choice >= '1' && choice <= '5');
	
	return 0;
}
Example #4
0
//Key press event: Does most of the things in this editor:
void CodeEditor::keyPressEvent(QKeyEvent *e)
{
    e->accept();
    /* Code Editor features:
        • Code completion
        • Auto Indentation
        • Autoclose for  () [] {} " ' and comments
    */

    //First: The keyboard controlling
    Qt::KeyboardModifiers mods =  e->modifiers();
    bool Shift = mods.testFlag(Qt::ShiftModifier);
    bool Ctrl  = mods.testFlag(Qt::ControlModifier);    // COMMAND key on Mac OS
    bool Alt   = mods.testFlag(Qt::AltModifier);

    switch(e->key())
    {
    //Movement & selection
    case Qt::Key_Right:
        moveRight(Ctrl,Shift);
        break;
    case Qt::Key_Left:
        moveLeft(Ctrl,Shift);
        break;
    case Qt::Key_Up:
        moveUp(Shift);
        break;
    case Qt::Key_Down:
        moveDown(Shift);
        break;
    case Qt::Key_Home:
        if(Ctrl)moveToBeginOfDocument(Shift);
        else moveToLineBegin(Shift);
        break;
    case Qt::Key_End:
        if(Ctrl)moveToEndOfDocument(Shift);
        else moveToLineEnd(Shift);
        break;

    //Deleting and clearing
    case Qt::Key_Backspace:
        deleteLeft(Ctrl);
        break;
    case Qt::Key_Delete:
        deleteRight(Ctrl);
        break;

    //Misc
    case Qt::Key_Escape:
        //Close the completer if it's shown
        break;
    case Qt::Key_Enter:
    case Qt::Key_Return:
        newLineAtCursor();
        break;

    //Function keys
    case Qt::Key_Tab:
        insertTextAtCursor("\t");
        break;
    case Qt::Key_Insert:
        if(Shift)paste();
        else if(Ctrl)copySelection();
        else insertMode=!insertMode;
        break;
    case Qt::Key_F3:
        //Search & replace functionality TODO: not important
        break;
    case Qt::Key_F1:
    case Qt::Key_F2:
    case Qt::Key_F4:
    case Qt::Key_F5:
    case Qt::Key_F6:
    case Qt::Key_F7:
    case Qt::Key_F8:
    case Qt::Key_F9:
    case Qt::Key_F10:
    case Qt::Key_F11:
    case Qt::Key_F12:
    case Qt::Key_F13:
    case Qt::Key_F14:
    case Qt::Key_F15:
    case Qt::Key_F16:
    case Qt::Key_F17:
    case Qt::Key_F18:
    case Qt::Key_F19:
    case Qt::Key_F20:
    case Qt::Key_F21:
    case Qt::Key_F22:
    case Qt::Key_F23:
    case Qt::Key_F24:
        //Just NO-OP for now!
        break;

    //NO-OPs:
    case Qt::Key_CapsLock:
    case Qt::Key_NumLock:
    case Qt::Key_ScrollLock:
    case Qt::Key_Pause:
    case Qt::Key_Print:
    case Qt::Key_SysReq:
    case Qt::Key_Control:
    case Qt::Key_Alt:
    case Qt::Key_AltGr:
    case Qt::Key_Super_L:
    case Qt::Key_Super_R:
    case Qt::Key_Meta:
        break;

    default:
             if(e->key()==Qt::Key_V && Ctrl)paste();
        else if(e->key()==Qt::Key_C && Ctrl)copySelection();
        else if(e->key()==Qt::Key_X && Ctrl){copySelection();clearSelection();}
        else if(e->key()==Qt::Key_Z && Ctrl)undo();
        else if(e->key()==Qt::Key_Y && Ctrl)redo();
        else if(e->key()==Qt::Key_A && Ctrl)selectAll();
        //Type the character:
        else if(!Ctrl)insertTextAtCursor(e->text());
    }
    cursorVisible=true;
    viewport()->repaint();
}