示例#1
0
void TaskPanel::OnEncodingSelected(wxCommandEvent& e)
{
    wxUnusedVar(e);

    TasksPanelData d;
    EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d);

    d.SetEncoding(m_choiceEncoding->GetStringSelection());
    EditorConfigST::Get()->WriteObject(wxT("TasksPanelData"), &d);
}
示例#2
0
SearchData TaskPanel::DoGetSearchData()
{
    SearchData data;
    data.SetDisplayScope(true);
    data.SetRegularExpression(true);
    data.SetMatchCase(false);
    data.SetMatchWholeWord(false);
    data.SetEncoding(m_choiceEncoding->GetStringSelection());
    data.SetOwner(this);

    wxString sfind;

    // Load all info from disk
    TasksPanelData d;
    EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d);

    std::map<wxString, wxString>::const_iterator iter = d.GetTasks().begin();
    for(; iter != d.GetTasks().end(); iter++) {
        wxString name = iter->first;
        wxString regex = iter->second;
        bool enabled = (d.GetEnabledItems().Index(iter->first) != wxNOT_FOUND);

        regex.Trim().Trim(false);
        wxRegEx re(regex);
        if(enabled && !regex.IsEmpty() && re.IsValid()) sfind << wxT("(") << regex << wxT(")|");
    }

    if(sfind.empty() == false) sfind.RemoveLast();

    data.SetFindString(sfind);

    wxString rootDir = m_scope->GetStringSelection();
    wxArrayString rootDirs;
    rootDirs.push_back(rootDir);
    data.SetRootDirs(rootDirs);

    wxArrayString files;
    if(rootDir == wxGetTranslation(SEARCH_IN_WORKSPACE)) {
        ManagerST::Get()->GetWorkspaceFiles(files);

    } else if(rootDir == wxGetTranslation(SEARCH_IN_PROJECT)) {
        ManagerST::Get()->GetActiveProjectFiles(files);

    } else if(rootDir == wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT)) {
        ManagerST::Get()->GetActiveFileProjectFiles(files);
    }
    data.SetFiles(files);
    data.SetExtensions(wxT("*.*"));

    return data;
}
TasksFindWhatDlg::TasksFindWhatDlg(wxWindow* parent)
    : TasksFindWhatDlgBase(parent)
{
    m_list->InsertColumn(0, _("Enabled"));
    m_list->InsertColumn(1, _("Task"));
    m_list->SetColumnWidth(1, 200);

    // Load all info from disk
    TasksPanelData data;
    EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &data);

    std::map<wxString, wxString>::const_iterator iter = data.GetTasks().begin();
    for(; iter != data.GetTasks().end(); iter++) {
        DoAddLine(iter->first, iter->second, data.GetEnabledItems().Index(iter->first) != wxNOT_FOUND);
    }
    SetName("TasksFindWhatDlg");
    WindowAttrManager::Load(this);
}
void TasksFindWhatDlg::DoSaveList()
{
    // Save all items
    TasksPanelData data;
    std::map<wxString, wxString> items;
    wxArrayString enabledItems;

    for(int i = 0; i < m_list->GetItemCount(); i++) {
        wxString name = m_list->GetText(i, 1);
        TaskData* clientData = (TaskData*)m_list->GetItemData(i);
        items[name] = clientData->m_regex;

        if(m_list->IsChecked(i)) enabledItems.Add(name);
    }

    data.SetEnabledItems(enabledItems);
    data.SetTasks(items);
    EditorConfigST::Get()->WriteObject(wxT("TasksPanelData"), &data);
}
示例#5
0
SearchData TaskPanel::DoGetSearchData()
{
    SearchData data;
    data.SetDisplayScope(true);
    data.SetRegularExpression(true);
    data.SetMatchCase(false);
    data.SetMatchWholeWord(false);
    data.SetEncoding(m_choiceEncoding->GetStringSelection());
    data.SetOwner(this);

    wxString sfind;

    // Load all info from disk
    TasksPanelData d;
    EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d);

    wxStringMap_t::const_iterator iter = d.GetTasks().begin();
    for(; iter != d.GetTasks().end(); iter++) {
        wxString name = iter->first;
        wxString regex = iter->second;
        bool enabled = (d.GetEnabledItems().Index(iter->first) != wxNOT_FOUND);

        regex.Trim().Trim(false);
        wxRegEx re(regex);
        if(enabled && !regex.IsEmpty() && re.IsValid()) sfind << wxT("(") << regex << wxT(")|");
    }

    if(sfind.empty() == false) sfind.RemoveLast();

    data.SetFindString(sfind);

    wxString rootDir = clWorkspaceManager::Get().GetWorkspace()->GetFileName().GetPath();
    wxArrayString rootDirs;
    rootDirs.push_back(rootDir);
    data.SetRootDirs(rootDirs);
    data.SetExtensions(wxT("*.*"));
    return data;
}
示例#6
0
TaskPanel::TaskPanel(wxWindow* parent, wxWindowID id, const wxString& name)
    : FindResultsTab(parent, id, name)
    , m_scope(NULL)
{
    wxArrayString scopes;
    scopes.Add(wxGetTranslation(SEARCH_IN_PROJECT));
    scopes.Add(wxGetTranslation(SEARCH_IN_WORKSPACE));
    scopes.Add(wxGetTranslation(SEARCH_IN_CURR_FILE_PROJECT));

    wxArrayString filters;
    filters.Add(wxString(wxT("C/C++ ")) + _("Sources"));
    m_extensions.Add(wxT("*.c;*.cpp;*.cxx;*.cc;*.h;*.hpp;*.hxx;*.hh;*.inl;*.inc;*.hh"));
    filters.Add(_("All Files"));
    m_extensions.Add(wxT("*.*"));
    
    m_tb->DeleteTool(XRCID("repeat_output"));
    m_tb->DeleteTool(XRCID("recent_searches"));
    m_tb->Realize();
    
    wxBoxSizer* verticalPanelSizer = new wxBoxSizer(wxVERTICAL);

    wxButton* btn = new wxButton(this, wxID_FIND, _("&Search"));
    verticalPanelSizer->Add(btn, 0, wxEXPAND | wxALL, 5);

    m_findWhat = new wxButton(this, XRCID("find_what"), _("Find What..."));
    verticalPanelSizer->Add(m_findWhat, 0, wxEXPAND | wxALL, 5);
    verticalPanelSizer->Add(new wxStaticLine(this), 0, wxEXPAND | wxALL, 5);

    m_scope = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, scopes);
    m_scope->SetSelection(0);
    m_scope->SetToolTip(_("Select the scope of the search"));
    verticalPanelSizer->Add(m_scope, 0, wxEXPAND | wxALL, 5);

    m_choiceEncoding = new wxChoice(this, wxID_ANY);
    verticalPanelSizer->Add(m_choiceEncoding, 0, wxEXPAND | wxALL, 5);
    m_choiceEncoding->SetToolTip(_("Encoding to use for the search"));

    TasksPanelData d;
    EditorConfigST::Get()->ReadObject(wxT("TasksPanelData"), &d);

    // Set encoding
    wxArrayString astrEncodings;
    wxFontEncoding fontEnc;
    int selection(0);

    size_t iEncCnt = wxFontMapper::GetSupportedEncodingsCount();
    for(size_t i = 0; i < iEncCnt; i++) {
        fontEnc = wxFontMapper::GetEncoding(i);
        if(wxFONTENCODING_SYSTEM == fontEnc) { // skip system, it is changed to UTF-8 in optionsconfig
            continue;
        }
        wxString encodingName = wxFontMapper::GetEncodingName(fontEnc);
        size_t pos = astrEncodings.Add(encodingName);

        if(d.GetEncoding() == encodingName) selection = static_cast<int>(pos);
    }

    m_choiceEncoding->Append(astrEncodings);
    if(m_choiceEncoding->IsEmpty() == false) m_choiceEncoding->SetSelection(selection);

    m_choiceEncoding->Connect(
        wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TaskPanel::OnEncodingSelected), NULL, this);

    wxBoxSizer* hSizer = new wxBoxSizer(wxHORIZONTAL);

    // grab the base class scintilla and put our sizer in its place
    wxSizer* mainSizer = m_vSizer;
    mainSizer->Detach(m_sci);
    hSizer->Add(m_sci, 1, wxEXPAND | wxALL, 1);
    hSizer->Add(verticalPanelSizer, 0, wxEXPAND | wxALL, 1);

    mainSizer->Add(hSizer, 1, wxEXPAND | wxALL, 1);
    mainSizer->Layout();
}