Exemple #1
0
void LaunchyWidget::alternativesKeyPressEvent(QKeyEvent* event)
{
	if (event->key() == Qt::Key_Escape)
	{
		showAlternatives(false);
		event->ignore();
                this->input->setFocus();
	}
	else if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter || event->key() == Qt::Key_Tab)
	{
		if (searchResults.count() > 0)
		{
			int row = alternatives->currentRow();
			if (row > -1)
			{
				QString location = "History/" + input->text();
				QStringList hist;
				hist << searchResults[row].lowName << searchResults[row].fullPath;
				gSettings->setValue(location, hist);

				if (row > 0)
					searchResults.move(row, 0);

				if (event->key() == Qt::Key_Tab)
				{
					doTab();
					processKey();
				}
				else
				{
					// Load up the inputData properly before running the command
					/* commented out until I find a fix for it breaking the history selection
					inputData.last().setTopResult(searchResults[0]);
					doTab();
					inputData.parse(input->text());
					inputData.erase(inputData.end() - 1);*/

					updateOutputWidgets();
					keyPressEvent(event);
				}
			}
		}
	}
	else if (event->key() == Qt::Key_Delete && (event->modifiers() & Qt::ShiftModifier) != 0)
	{
		int row = alternatives->currentRow();
		if (row > -1)
		{
			if (searchResults[row].id == HASH_HISTORY)
			{
				// Delete selected history entry from the alternatives list
				history.removeAt(row);
				input->clear();
				processKey();
				alternativesRowChanged(alternatives->currentRow());
			}
			else
			{
				// Demote the selected item down the alternatives list
				catalog->demoteItem(searchResults[row]);
				searchOnInput();
				updateOutputWidgets(false);
			}
			showAlternatives(true, false);
		}
	}
	else if (event->key() == Qt::Key_Left || event->key() == Qt::Key_Right ||
			 event->text().length() > 0)
	{
		// Send text entry to the input control
		activateWindow();
		input->setFocus();
		event->ignore();
		input->keyPressEvent(event);
		keyPressEvent(event);
	}
        alternatives->setFocus();
}
Exemple #2
0
void LaunchyWidget::keyPressEvent(QKeyEvent* event)
{
#ifdef Q_WS_X11
    // ignore hotkey
    if (event->modifiers() + event->key() == getHotkey()) {
        return;
    }
#endif

	if (event->key() == Qt::Key_Escape)
	{
		if (alternatives->isVisible())
			showAlternatives(false);
		else
			hideLaunchy();
	}

	else if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter)
	{
		doEnter();
	}

	else if (event->key() == Qt::Key_Down || event->key() == Qt::Key_PageDown || 
			 event->key() == Qt::Key_Up || event->key() == Qt::Key_PageUp)
	{
		if (alternatives->isVisible())
		{
			if (!alternatives->isActiveWindow())
			{
				// Don't refactor the activateWindow outside the if, it won't work properly any other way!
				if (alternatives->currentRow() < 0 && alternatives->count() > 0)
				{
					alternatives->activateWindow();
					alternatives->setCurrentRow(0);
				}
				else
				{
					alternatives->activateWindow();
					qApp->sendEvent(alternatives, event);
				}
			}
		}
		else if (event->key() == Qt::Key_Down || event->key() == Qt::Key_PageDown)
		{
			// do a search and show the results, selecting the first one
			searchOnInput();
			if (searchResults.count() > 0)
			{
				showAlternatives();
				alternatives->activateWindow();
				if (alternatives->count() > 0)
					alternatives->setCurrentRow(0);
			}
		}
	}

	else if ((event->key() == Qt::Key_Tab || event->key() == Qt::Key_Backspace) && event->modifiers() == Qt::ShiftModifier)
	{
		doBackTab();
		processKey();
	}
	else if (event->key() == Qt::Key_Tab)
	{
		doTab();
		processKey();
	}
	/*
	else if (event->key() == Qt::Key_Slash || event->key() == Qt::Key_Backslash)
	{
		if (inputData.count() > 0 && inputData.last().hasLabel(LABEL_FILE))
			doTab();
		processKey();
	}
	*/
	else if (event->text().length() > 0)
	{
		// process any other key with character output
		event->ignore();
		processKey();
	}
}
Exemple #3
0
void CodeEditor::doCommand(uint32 cmd) {
	switch (cmd) {
		case CmdPrintFoo: {
			std::cerr << "Foo\n";
		} break;

		case CmdSave: {
			save();
		} break;

		case CmdReloadOpenDocument: {
			reload();
		} break;

		case CmdLoadTest: {
			loadTest();
		} break;

		case CmdMoveUpToBlank: {
			moveCursorUpToBlank();
		} break;

		case CmdMoveDownToBlank: {
			moveCursorDownToBlank();
		} break;

		case CmdMoveToDocumentBegin: {
			moveCursorToDocumentBegin();
		} break;

		case CmdMoveToDocumentEnd: {
			moveCursorToDocumentEnd();
		} break;

		case CmdMoveToLineBegin: {
			moveCursorToLineBegin();
		} break;

		case CmdMoveToLineEnd: {
			moveCursorToLineEnd();
		} break;

		case CmdSetMark: {
			setMark();
		} break;

		case CmdSwapCursorAndMark: {
			swapCursorAndMark();
		} break;

		case CmdMoveCursorToMark: {
			moveCursorToMark();
		} break;

		case CmdToggleMarkVisibility: {
			toggleMarkVisibility();
		} break;

		case CmdBackspace: {
			doBackspace();
		} break;

		case CmdDelete: {
			doDelete();
		} break;

		case CmdClearLine: {
			clearLine(mCurrentLine);
		} break;

		case CmdClearDocument: {
			clear();
		} break;

		case CmdTab: {
			doTab();
		} break;

		case CmdNewline: {
			addLine();
		} break;

		case CmdOpenConfig: {
			loadConfig();
		} break;

		case CmdOpenTheme: {
			loadCurrentTheme();
		} break;

		case CmdLoadHelp: {
			loadReadMe();
		} break;
	}
}