bool ProjectContentComponent::perform (const InvocationInfo& info)
{
    switch (info.commandID)
    {
        case CommandIDs::saveProject:
        case CommandIDs::closeProject:
        case CommandIDs::saveDocument:
        case CommandIDs::saveDocumentAs:
        case CommandIDs::closeDocument:
        case CommandIDs::goToPreviousDoc:
        case CommandIDs::goToNextDoc:
        case CommandIDs::goToCounterpart:
        case CommandIDs::saveAndOpenInIDE:
            if (reinvokeCommandAfterCancellingModalComps (info))
            {
                grabKeyboardFocus(); // to force any open labels to close their text editors
                return true;
            }

            break;

        default:
            break;
    }

    if (isCurrentlyBlockedByAnotherModalComponent())
        return false;

    switch (info.commandID)
    {
        case CommandIDs::saveProject:               saveProject(); break;
        case CommandIDs::closeProject:              closeProject(); break;
        case CommandIDs::saveDocument:              saveDocument(); break;
        case CommandIDs::saveDocumentAs:            saveAs(); break;

        case CommandIDs::closeDocument:             closeDocument(); break;
        case CommandIDs::goToPreviousDoc:           goToPreviousFile(); break;
        case CommandIDs::goToNextDoc:               goToNextFile(); break;
        case CommandIDs::goToCounterpart:           goToCounterpart(); break;

        case CommandIDs::showFilePanel:             showFilesTab(); break;
        case CommandIDs::showConfigPanel:           showConfigTab(); break;
        case CommandIDs::showProjectSettings:       showProjectSettings(); break;
        case CommandIDs::showProjectModules:        showModules(); break;

        case CommandIDs::openInIDE:                 openInIDE (false); break;
        case CommandIDs::saveAndOpenInIDE:          openInIDE (true); break;

        case CommandIDs::createNewExporter:         showNewExporterMenu(); break;

        case CommandIDs::deleteSelectedItem:        deleteSelectedTreeItems(); break;

        case CommandIDs::showTranslationTool:       showTranslationTool(); break;

        default:
            return false;
    }

    return true;
}
Exemple #2
0
void CCmdCenter::onGetUserInput(std::string strInput )
{
	std::vector<std::string> vecSplit ;
	std::string strCur ;
	for ( char n : strInput )
	{
		if ( n != ' ' && n != '\t' )
		{
			strCur.push_back(n);
		}
		else
		{
			if ( strCur.empty() == false )
			{
				vecSplit.push_back(strCur) ;
			}
			strCur.clear() ;
		}
	}

	if ( strCur.empty() == false )
	{
		vecSplit.push_back(strCur) ;
	}
	strCur.clear() ;

	if ( vecSplit.empty() )
	{
		printf("parse input error , str = %s\n",strInput.c_str() ) ;
		return ;
	}

	// if is help commond 
	if ( "help" == vecSplit[0] )
	{
		vecSplit.erase(vecSplit.begin()) ;
		if ( vecSplit.empty() )
		{
			showModules();
			return;
		}

		if ( vecSplit.size() == 1 )
		{
			ShowModule(vecSplit[0]) ;
			return;
		}

		showCmd(vecSplit[0],vecSplit[1]) ;
		return ;
	}

	auto pcmd = getCmdByName(vecSplit[0]);
	if ( pcmd == nullptr )
	{
		printf("can not find cmd name = %s\n",vecSplit[0].c_str()) ;
		return ;
	}

	vecSplit.erase(vecSplit.begin()) ;

	stBufferItem * p = new stBufferItem(pcmd,vecSplit);
	m_tBufferLock.Lock() ;
	m_vWillSendBuffer.push_back(p) ;
	m_tBufferLock.Unlock() ;
}