Translation by Googlethank you very much for that.
but m_Files (the member-variable, that is returned) was never filled
not because I use it (see below)
I do not see how to implement the type 'FilesList', also waiting for your result, I added the method
'
virtual wxArrayString ProjectBuildTarget::GetFiles () const' svn> = 7588:
Index: src/include/projectbuildtarget.h
===================================================================
--- src/include/projectbuildtarget.h (révision 7622)
+++ src/include/projectbuildtarget.h (copie de travail)
@@ -115,6 +115,11 @@
/** Provides an easy way to iterate all the files belonging in this target.
* @return A list of files belonging in this target. */
virtual FilesList& GetFilesList(){ return m_Files; }
+
+ /** Provides an easy way to iterate all the files belonging in this target.
+ * @return An array of files belonging in this target.*/
+ virtual wxArrayString GetFiles() const;
+
private:
friend class ProjectFile; // to allow it to add/remove files in FilesList
cbProject* m_Project;
Index: src/sdk/projectbuildtarget.cpp
===================================================================
--- src/sdk/projectbuildtarget.cpp (révision 7622)
+++ src/sdk/projectbuildtarget.cpp (copie de travail)
@@ -44,6 +44,20 @@
return m_Project->GetTitle() + _T(" - ") + GetTitle();
}
+// get the list of files of this target
+wxArrayString ProjectBuildTarget::GetFiles() const
+{
+ wxArrayString filearray;
+ ProjectFile * pf;
+ FilesList::const_iterator it = m_Files.begin();
+ while (it != m_Files.end()) {
+ pf = *it++;
+ filearray.Add(pf->relativeFilename);
+ }
+
+ return filearray;
+}
+
const wxString & ProjectBuildTarget::GetExternalDeps() const
{
return m_ExternalDeps;
Index: src/sdk/scripting/bindings/scriptbindings.cpp
===================================================================
--- src/sdk/scripting/bindings/scriptbindings.cpp (révision 7622)
+++ src/sdk/scripting/bindings/scriptbindings.cpp (copie de travail)
@@ -482,6 +482,7 @@
func(&CompileTargetBase::MakeCommandsModified, "MakeCommandsModified");
SqPlus::SQClassDef<ProjectBuildTarget>("ProjectBuildTarget", "CompileTargetBase").
+ func(&ProjectBuildTarget::GetFiles, "GetFiles").
func(&ProjectBuildTarget::GetParentProject, "GetParentProject").
func(&ProjectBuildTarget::GetFullTitle, "GetFullTitle").
func(&ProjectBuildTarget::GetExternalDeps, "GetExternalDeps").
and svn6283 .. 7587 this:
Index: src/include/projectbuildtarget.h
===================================================================
--- src/include/projectbuildtarget.h (révision 6283)
+++ src/include/projectbuildtarget.h (copie de travail)
@@ -117,6 +117,10 @@
/** Provides an easy way to iterate all the files belonging in this target.
* @return A list of files belonging in this target. */
virtual FilesList& GetFilesList(){ return m_Files; }
+ /** Provides an easy way to iterate all the files belonging in this target.
+ * @return An array of files belonging in this target.*/
+ virtual wxArrayString GetFiles() const;
+
private:
friend class ProjectFile; // to allow it to add/remove files in FilesList
cbProject* m_Project;
Index: src/sdk/projectbuildtarget.cpp
===================================================================
--- src/sdk/projectbuildtarget.cpp (révision 6283)
+++ src/sdk/projectbuildtarget.cpp (copie de travail)
@@ -44,6 +44,20 @@
return m_Project->GetTitle() + _T(" - ") + GetTitle();
}
+// get the list of files of this target
+wxArrayString ProjectBuildTarget::GetFiles() const {
+ wxArrayString filearray;
+ ProjectFile * pf;
+ FilesList::Node * node = m_Files.GetFirst();
+ while (node) {
+ pf = node->GetData();
+ filearray.Add(pf->relativeFilename);
+ // the next
+ node = node->GetNext();
+ }
+ return filearray;
+}
+
const wxString & ProjectBuildTarget::GetExternalDeps() const
{
return m_ExternalDeps;
Index: src/sdk/scripting/bindings/scriptbindings.cpp
===================================================================
--- src/sdk/scripting/bindings/scriptbindings.cpp (révision 6283)
+++ src/sdk/scripting/bindings/scriptbindings.cpp (copie de travail)
@@ -482,6 +482,7 @@
func(&CompileTargetBase::MakeCommandsModified, "MakeCommandsModified");
SqPlus::SQClassDef<ProjectBuildTarget>("ProjectBuildTarget", "CompileTargetBase").
+ func(&ProjectBuildTarget::GetFiles, "GetFiles").
func(&ProjectBuildTarget::GetParentProject, "GetParentProject").
func(&ProjectBuildTarget::GetFullTitle, "GetFullTitle").
func(&ProjectBuildTarget::GetExternalDeps, "GetExternalDeps").
positive tests have been carried out with the script extension following:
///-----------------------------------------------------------------------------
/// ===> use a new method to 'wxArrayString ProjectBuildTarget::GetFiles()' <===
/// get the list of files of this target
///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
/// display all files project
// affiche tous les fichiers du projet
///-----------------------------------------------------------------------------
class DisplayAllFilesTargets extends cbScriptPlugin {
/// members
// membres
VERSION = _T("1.0.2");
///-----------------------------------------------------------------------------
/// mandatory to init script plugin
// obligatoire pour initialiser le script d'extension
///-----------------------------------------------------------------------------
constructor() {
/// constructor base class
// constructeur de la classe de base
cbScriptPlugin.constructor();
/// setup the plugin's info
// les informations de l'extension
info.name = _T("DisplayAllFilesTargets");
info.title = _("Display files targets");
info.version = VERSION;
info.license = _T("GPL");
}
///-----------------------------------------------------------------------------
/// to create context menu entries
// pour créer les entrées du menu de contexte
///-----------------------------------------------------------------------------
function GetModuleMenu(who, data) {
local entries = ::wxArrayString();
if (who == ::mtProjectManager) {
entries.Add(_("Display files targets"), 1);
}
return entries;
}
///-----------------------------------------------------------------------------
/// calback for context menu items clicking
// évènement lors d'une action sur les entrées du menu de contexte
///-----------------------------------------------------------------------------
function OnModuleMenuClicked(index) {
local result = main();
}
///-----------------------------------------------------------------------------
///displays all files of each target
//
function main() {
///
local Projet = GetProjectManager().GetActiveProject();
local Nt = Projet.GetBuildTargetsCount() ;
//----------------------------------------------
/// file relative name
// le nom relatif d'un fichier
local file;
local tabfile = ::wxArrayString();
local target ;
local i=0;
local good = false;
/// informations
local Mes = _T("Project : '") + Projet.GetTitle() + _T("' : ") ;
Mes += Projet.GetFilesCount().tostring() + _T(" files, ") ;
Mes += Nt.tostring() + _T(" targets : ") ;
::print(Mes );
/// all project targets
// toutes les cibles du projet
for (local ci=0; ci < Nt ; ci++ ) {
target = Projet.GetBuildTarget(ci) ;
::print(_T("\nTarget ") + ci.tostring() + _T(" : '") + target.GetFullTitle() + _T("'"));
/// the array of files name
// le tableau des noms de fichiers relatifs associés à cette cible
///------------- patch to 'ProjectBuildTarget' class ---------------------------
tabfile = target.GetFiles(ci);
///-----------------------------------------------------------------------------
/// all files target
// analyser tous les fichiers de la cible
for (local u=0; u < tabfile.GetCount(); u++) {
file = tabfile.Item(u);
::print (_T(" ") + u.tostring() + _T(" : '") + file + _T("'"));
i++;
}
}
::print(_T("\nTotal files associated to targets : ") + i.tostring());
}
///-----------------------------------------------------------------------------
} /// class end
///-----------------------------------------------------------------------------
/// this call actually registers the script plugin with Code::Blocks
// register le script d'extension dans Code::Blocks
///-----------------------------------------------------------------------------
RegisterPlugin(DisplayAllFilesTargets());
///-----------------------------------------------------------------------------
/// if you want to call this plugin's Execute() function, use this in a script:
// si vous désirez appeler, depuis un script, la fonction 'Execute' de l'extension
///-----------------------------------------------------------------------------
// ExecutePlugin(_T("QtPreBuildPlugin"));
///-----------------------------------------------------------------------------
because I needed to list the files of each target (not all files in the project)
soon.