コード例 #1
0
 internal void NotifyPackageRemovedFromProject(ProjectPackage package)
 {
     if (null != PackageRemovedFromProject)
     {
         PackageRemovedFromProject(this, new ProjectPackageEventArgs(this, package));
     }
 }
コード例 #2
0
        /// <summary>
        /// Add dependencies of project packages to current project,
        /// and add cflags for project package and LD_LIBRARY_PATH
        /// </summary>
        private void AddDependencies(object obj, ProjectPackageEventArgs args)
        {
            ProjectPackage package = args.Package;

            if (!package.IsProject)
            {
                return;
            }

            string depsfile = Path.ChangeExtension(package.File, ".deps");

            try {
                if (File.Exists(depsfile))
                {
                    string[] lines             = File.ReadAllLines(depsfile);
                    List <ProjectPackage> deps = new List <ProjectPackage>();
                    foreach (string line in lines)
                    {
                        deps.Add(new ProjectPackage(Path.Combine(vapidir, line) + ".vapi"));
                    }                    // add package for each dep
                    packages.AddRange(deps);
                }

                // Currently, we need to add include directory and linker flags - this should be obsoleted
                string ccargs      = string.Format(" --Xcc=\\\\\\\"-I{0}\\\\\\\" --Xcc=\\\\\\\"-L{0}\\\\\\\" --Xcc=\\\\\\\"-l{1}\\\\\\\" ", Path.GetDirectoryName(depsfile), package.Name);
                string ldpath      = string.Empty;
                string packagePath = Path.GetDirectoryName(package.File);

                foreach (ItemConfiguration pc in Configurations)
                {
                    ValaProjectConfiguration valapc = pc as ValaProjectConfiguration;
                    if (null == valapc)
                    {
                        continue;
                    }

                    ValaCompilationParameters vcp = (ValaCompilationParameters)valapc.CompilationParameters;
                    if (!vcp.ExtraCompilerArguments.Contains(ccargs))
                    {
                        vcp.ExtraCompilerArguments += ccargs;
                    }

                    if (valapc.EnvironmentVariables.TryGetValue("LD_LIBRARY_PATH", out ldpath))
                    {
                        if (!ldpath.Contains(packagePath))
                        {
                            ldpath += Path.PathSeparator + packagePath;
                        }
                    }
                    else
                    {
                        ldpath = packagePath;
                    }

                    valapc.EnvironmentVariables["LD_LIBRARY_PATH"] = ldpath;
                } // add compilation parameters and LD_LIBRARY_PATH
            } catch { /* Do anything here? */ }
        }         // AddDependencies
コード例 #3
0
 internal void NotifyPackageAddedToProject(ProjectPackage package)
 {
     if (null != PackageAddedToProject)
     {
         PackageAddedToProject(this, new ProjectPackageEventArgs(this, package));
     }
     if (!package.IsProject)
     {
         ProjectInformationManager.Instance.Get(this).AddPackage(package.Name);
     }
 }
コード例 #4
0
        public override bool Equals(object o)
        {
            ProjectPackage other = o as ProjectPackage;

            if (other == null)
            {
                return(false);
            }

            return(other.File.Equals(file));
        }
コード例 #5
0
        protected virtual void OnDetailsButtonClicked(object sender, System.EventArgs e)
        {
            Gtk.TreeIter iter;
            Gtk.Widget   active_tab = notebook1.Children [notebook1.Page];
            string       tab_label  = notebook1.GetTabLabelText(active_tab);
            string       name       = string.Empty;
            // string version = string.Empty;
            ProjectPackage package = null;

            if (tab_label == "System Packages")
            {
                normalPackageTreeView.Selection.GetSelected(out iter);
                name = (string)normalPackageListStore.GetValue(iter, NormalPackageNameID);
                // version = (string)normalPackageListStore.GetValue (iter, NormalPackageVersionID);
            }
            else if (tab_label == "Project Packages")
            {
                projectPackageTreeView.Selection.GetSelected(out iter);
                name = (string)projectPackageListStore.GetValue(iter, ProjectPackageNameID);
                // version = (string)projectPackageListStore.GetValue (iter, ProjectPackageVersionID);
            }
            else
            {
                return;
            }

            foreach (ProjectPackage p in packages)
            {
                if (p.Name == name /* && p.Version == version */)
                {
                    package = p;
                    break;
                }
            }

            if (package == null)
            {
                return;
            }

            PackageDetails details = new PackageDetails(package);

            details.Modal = true;
            details.Show();
        }
コード例 #6
0
//		Gtk.ListStore libPathsStore = new Gtk.ListStore (typeof(string));
//		Gtk.ListStore libsStore = new Gtk.ListStore (typeof(string));
//		Gtk.ListStore cflagsStore = new Gtk.ListStore (typeof(string));

        public PackageDetails(ProjectPackage package)
        {
            this.Build();

            package = new ProjectPackage(package.File);

            Gtk.CellRendererText textRenderer = new Gtk.CellRendererText();

            requiresTreeView.Model = requiresStore;
            requiresTreeView.AppendColumn("Requires", textRenderer, "text", 0);
            requiresTreeView.HeadersVisible = false;

//			libPathsTreeView.Model = libPathsStore;
//			libPathsTreeView.AppendColumn ("LibPaths", textRenderer, "text", 0);
//			libPathsTreeView.HeadersVisible = false;
//
//			libsTreeView.Model = libsStore;
//			libsTreeView.AppendColumn ("Libs", textRenderer, "text", 0);
//			libsTreeView.HeadersVisible = false;
//
//			cflagsTreeView.Model = cflagsStore;
//			cflagsTreeView.AppendColumn ("CFlags", textRenderer, "text", 0);
//			cflagsTreeView.HeadersVisible = false;
//
            nameLabel.Text = package.Name;

            descriptionLabel.Text = package.Description;
            versionLabel.Text     = package.Version;

            foreach (string req in package.Requires)
            {
                requiresStore.AppendValues(req);
            }

//			foreach (string libpath in package.LibPaths)
//				libPathsStore.AppendValues (libpath);
//
//			foreach (string lib in package.Libs)
//				libsStore.AppendValues (lib);
//
//			foreach (string cflag in package.CFlags)
//				cflagsStore.AppendValues (cflag);
        }
コード例 #7
0
ファイル: PackageDetails.cs プロジェクト: Kalnor/monodevelop
//		Gtk.ListStore libPathsStore = new Gtk.ListStore (typeof(string));
//		Gtk.ListStore libsStore = new Gtk.ListStore (typeof(string));
//		Gtk.ListStore cflagsStore = new Gtk.ListStore (typeof(string));
		
		public PackageDetails (ProjectPackage package)
		{
			this.Build();
			
			package = new ProjectPackage(package.File);
			
			Gtk.CellRendererText textRenderer = new Gtk.CellRendererText ();
			
			requiresTreeView.Model = requiresStore;
			requiresTreeView.AppendColumn ("Requires", textRenderer, "text", 0);
			requiresTreeView.HeadersVisible = false;
			
//			libPathsTreeView.Model = libPathsStore;
//			libPathsTreeView.AppendColumn ("LibPaths", textRenderer, "text", 0);
//			libPathsTreeView.HeadersVisible = false;
//			
//			libsTreeView.Model = libsStore;
//			libsTreeView.AppendColumn ("Libs", textRenderer, "text", 0);
//			libsTreeView.HeadersVisible = false;
//			
//			cflagsTreeView.Model = cflagsStore;
//			cflagsTreeView.AppendColumn ("CFlags", textRenderer, "text", 0);
//			cflagsTreeView.HeadersVisible = false;
//			
			nameLabel.Text = package.Name;
			
			descriptionLabel.Text = package.Description;
			versionLabel.Text = package.Version;
			
			foreach (string req in package.Requires)
				requiresStore.AppendValues (req);
			
//			foreach (string libpath in package.LibPaths)
//				libPathsStore.AppendValues (libpath);
//			
//			foreach (string lib in package.Libs)
//				libsStore.AppendValues (lib);
//			
//			foreach (string cflag in package.CFlags)
//				cflagsStore.AppendValues (cflag);
		}
コード例 #8
0
        private List <ProjectPackage> GetPackagesOfProjects(Project project)
        {
            List <ProjectPackage> packages = new List <ProjectPackage>();
            ProjectPackage        package;

            foreach (Project c in IdeApp.Workspace.GetAllProjects())
            {
                if (c is ValaProject)
                {
                    ValaProject proj = c as ValaProject;
                    ValaProjectConfiguration conf = proj.GetConfiguration(IdeApp.Workspace.ActiveConfiguration) as ValaProjectConfiguration;
                    if (conf.CompileTarget != CompileTarget.Bin)
                    {
                        proj.WriteMDPkgPackage(conf.Selector);
                        package = new ProjectPackage(proj);
                        packages.Add(package);
                    }
                }
            }

            return(packages);
        }
コード例 #9
0
        public EditPackagesDialog(ValaProject project)
        {
            this.Build();

            this.project = project;

            selectedPackages.Project = project;
            selectedPackages.AddRange(project.Packages);

            Gtk.CellRendererText textRenderer = new Gtk.CellRendererText();

            Gtk.CellRendererPixbuf pixbufRenderer = new Gtk.CellRendererPixbuf();
            pixbufRenderer.StockId = "md-package";

            normalPackageListStore.DefaultSortFunc   = NormalPackageCompareNodes;
            projectPackageListStore.DefaultSortFunc  = ProjectPackageCompareNodes;
            selectedPackageListStore.DefaultSortFunc = SelectedPackageCompareNodes;

            normalPackageListStore.SetSortColumnId(NormalPackageNameID, Gtk.SortType.Ascending);
            projectPackageListStore.SetSortColumnId(ProjectPackageNameID, Gtk.SortType.Ascending);
            selectedPackageListStore.SetSortColumnId(SelectedPackageNameID, Gtk.SortType.Ascending);

            normalPackageTreeView.SearchColumn   = NormalPackageNameID;
            projectPackageTreeView.SearchColumn  = ProjectPackageNameID;
            selectedPackageTreeView.SearchColumn = SelectedPackageNameID;

            // <!-- Normal packages -->

            Gtk.CellRendererToggle normalPackageToggleRenderer = new Gtk.CellRendererToggle();
            normalPackageToggleRenderer.Activatable = true;
            normalPackageToggleRenderer.Toggled    += OnNormalPackageToggled;
            normalPackageToggleRenderer.Xalign      = 0;

            Gtk.TreeViewColumn normalPackageColumn = new Gtk.TreeViewColumn();
            normalPackageColumn.Title = "Package";
            normalPackageColumn.PackStart(pixbufRenderer, false);
            normalPackageColumn.PackStart(textRenderer, true);
            normalPackageColumn.AddAttribute(textRenderer, "text", NormalPackageNameID);

            normalPackageTreeView.Model          = normalPackageListStore;
            normalPackageTreeView.HeadersVisible = true;
            normalPackageTreeView.AppendColumn("", normalPackageToggleRenderer, "active", NormalPackageToggleID);
            normalPackageTreeView.AppendColumn(normalPackageColumn);
            normalPackageTreeView.AppendColumn("Version", textRenderer, "text", NormalPackageVersionID);

            // <!-- Project packages -->

            Gtk.CellRendererToggle projectPackageToggleRenderer = new Gtk.CellRendererToggle();
            projectPackageToggleRenderer.Activatable = true;
            projectPackageToggleRenderer.Toggled    += OnProjectPackageToggled;
            projectPackageToggleRenderer.Xalign      = 0;

            Gtk.TreeViewColumn projectPackageColumn = new Gtk.TreeViewColumn();
            projectPackageColumn.Title = "Package";
            projectPackageColumn.PackStart(pixbufRenderer, false);
            projectPackageColumn.PackStart(textRenderer, true);
            projectPackageColumn.AddAttribute(textRenderer, "text", ProjectPackageNameID);

            projectPackageTreeView.Model          = projectPackageListStore;
            projectPackageTreeView.HeadersVisible = true;
            projectPackageTreeView.AppendColumn("", projectPackageToggleRenderer, "active", ProjectPackageToggleID);
            projectPackageTreeView.AppendColumn(projectPackageColumn);
            projectPackageTreeView.AppendColumn("Version", textRenderer, "text", ProjectPackageVersionID);


            // <!-- Selected packages -->

            Gtk.TreeViewColumn selectedPackageColumn = new Gtk.TreeViewColumn();
            selectedPackageColumn.Title = "Package";
            selectedPackageColumn.PackStart(pixbufRenderer, false);
            selectedPackageColumn.PackStart(textRenderer, true);
            selectedPackageColumn.AddAttribute(textRenderer, "text", SelectedPackageNameID);

            selectedPackageTreeView.Model          = selectedPackageListStore;
            selectedPackageTreeView.HeadersVisible = true;
            selectedPackageTreeView.AppendColumn(selectedPackageColumn);
            selectedPackageTreeView.AppendColumn("Version", textRenderer, "text", SelectedPackageVersionID);

            // Fill up the project tree view
            packagesOfProjects = GetPackagesOfProjects(project);

            foreach (ProjectPackage p in packagesOfProjects)
            {
                if (p.Name == project.Name)
                {
                    continue;
                }

                packages.Add(p);
                string version   = p.Version;
                bool   inProject = selectedPackages.Contains(p);

                if (!IsPackageInStore(projectPackageListStore, p.Name, version, ProjectPackageNameID, ProjectPackageVersionID))
                {
                    projectPackageListStore.AppendValues(inProject, p.Name, version);

                    if (inProject)
                    {
                        selectedPackageListStore.AppendValues(p.Name, version);
                    }
                }
            }

            // Fill up the normal tree view
            foreach (string dir in ScanDirs())
            {
                if (Directory.Exists(dir))
                {
                    DirectoryInfo di = new DirectoryInfo(dir);
                    FileInfo[]    availablePackages = di.GetFiles("*.vapi");

                    foreach (FileInfo f in availablePackages)
                    {
                        if (!IsValidPackage(f.FullName))
                        {
                            continue;
                        }

                        string packagename = f.FullName;

                        GLib.Idle.Add(delegate {
                            ProjectPackage package = new ProjectPackage(packagename);

                            packages.Add(package);

                            string name    = package.Name;
                            string version = package.Version;
                            bool inProject = selectedPackages.Contains(package);

                            if (!IsPackageInStore(normalPackageListStore, name, version, NormalPackageNameID, NormalPackageVersionID))
                            {
                                normalPackageListStore.AppendValues(inProject, name, version);

                                if (inProject)
                                {
                                    selectedPackageListStore.AppendValues(name, version);
                                }
                            }
                            return(false);
                        });
                    }
                }
            }
        }
コード例 #10
0
ファイル: ValaProject.cs プロジェクト: Kalnor/monodevelop
		internal void NotifyPackageAddedToProject (ProjectPackage package)
		{
			if(null != PackageAddedToProject) {
				PackageAddedToProject (this, new ProjectPackageEventArgs (this, package));
			}
			if (!package.IsProject){ ProjectInformationManager.Instance.Get (this).AddPackage (package.Name); }
		}
コード例 #11
0
ファイル: ValaProject.cs プロジェクト: Kalnor/monodevelop
		internal void NotifyPackageRemovedFromProject (ProjectPackage package)
		{
			if (null != PackageRemovedFromProject) {
				PackageRemovedFromProject (this, new ProjectPackageEventArgs (this, package));
			}
		}
コード例 #12
0
		public EditPackagesDialog(ValaProject project)
		{
			this.Build();
			
			this.project = project;
			
			selectedPackages.Project = project;
			selectedPackages.AddRange (project.Packages);
			
			Gtk.CellRendererText textRenderer = new Gtk.CellRendererText ();
			
			Gtk.CellRendererPixbuf pixbufRenderer = new Gtk.CellRendererPixbuf ();
			pixbufRenderer.StockId = "md-package";
			
			normalPackageListStore.DefaultSortFunc = NormalPackageCompareNodes;
			projectPackageListStore.DefaultSortFunc = ProjectPackageCompareNodes;
			selectedPackageListStore.DefaultSortFunc = SelectedPackageCompareNodes;
			
			normalPackageListStore.SetSortColumnId (NormalPackageNameID, Gtk.SortType.Ascending);
			projectPackageListStore.SetSortColumnId (ProjectPackageNameID, Gtk.SortType.Ascending);
			selectedPackageListStore.SetSortColumnId (SelectedPackageNameID, Gtk.SortType.Ascending);
			
			normalPackageTreeView.SearchColumn = NormalPackageNameID;
			projectPackageTreeView.SearchColumn = ProjectPackageNameID;
			selectedPackageTreeView.SearchColumn = SelectedPackageNameID;
			
			// <!-- Normal packages -->
			
			Gtk.CellRendererToggle normalPackageToggleRenderer = new Gtk.CellRendererToggle ();
			normalPackageToggleRenderer.Activatable = true;
			normalPackageToggleRenderer.Toggled += OnNormalPackageToggled;
			normalPackageToggleRenderer.Xalign = 0;
			
			Gtk.TreeViewColumn normalPackageColumn = new Gtk.TreeViewColumn ();
			normalPackageColumn.Title = "Package";
			normalPackageColumn.PackStart (pixbufRenderer, false);
			normalPackageColumn.PackStart (textRenderer, true);
			normalPackageColumn.AddAttribute (textRenderer, "text", NormalPackageNameID);
			
			normalPackageTreeView.Model = normalPackageListStore;
			normalPackageTreeView.HeadersVisible = true;
			normalPackageTreeView.AppendColumn ("", normalPackageToggleRenderer, "active", NormalPackageToggleID);
			normalPackageTreeView.AppendColumn (normalPackageColumn);
			normalPackageTreeView.AppendColumn ("Version", textRenderer, "text", NormalPackageVersionID);
			
			// <!-- Project packages -->
			
			Gtk.CellRendererToggle projectPackageToggleRenderer = new Gtk.CellRendererToggle ();
			projectPackageToggleRenderer.Activatable = true;
			projectPackageToggleRenderer.Toggled += OnProjectPackageToggled;
			projectPackageToggleRenderer.Xalign = 0;
			
			Gtk.TreeViewColumn projectPackageColumn = new Gtk.TreeViewColumn ();
			projectPackageColumn.Title = "Package";
			projectPackageColumn.PackStart (pixbufRenderer, false);
			projectPackageColumn.PackStart (textRenderer, true);
			projectPackageColumn.AddAttribute (textRenderer, "text", ProjectPackageNameID);
			
			projectPackageTreeView.Model = projectPackageListStore;
			projectPackageTreeView.HeadersVisible = true;
			projectPackageTreeView.AppendColumn ("", projectPackageToggleRenderer, "active", ProjectPackageToggleID);
			projectPackageTreeView.AppendColumn (projectPackageColumn);
			projectPackageTreeView.AppendColumn ("Version", textRenderer, "text", ProjectPackageVersionID);
			
			
			// <!-- Selected packages -->
			
			Gtk.TreeViewColumn selectedPackageColumn = new Gtk.TreeViewColumn ();
			selectedPackageColumn.Title = "Package";
			selectedPackageColumn.PackStart (pixbufRenderer, false);
			selectedPackageColumn.PackStart (textRenderer, true);
			selectedPackageColumn.AddAttribute (textRenderer, "text", SelectedPackageNameID);
			
			selectedPackageTreeView.Model = selectedPackageListStore;
			selectedPackageTreeView.HeadersVisible = true;
			selectedPackageTreeView.AppendColumn (selectedPackageColumn);
			selectedPackageTreeView.AppendColumn ("Version", textRenderer, "text", SelectedPackageVersionID);
			
			// Fill up the project tree view
			packagesOfProjects = GetPackagesOfProjects (project);
			
			foreach (ProjectPackage p in packagesOfProjects) {
				if (p.Name == project.Name) continue;
				
				packages.Add (p);
				string version = p.Version;
				bool inProject = selectedPackages.Contains (p);

				if (!IsPackageInStore (projectPackageListStore, p.Name, version, ProjectPackageNameID, ProjectPackageVersionID)) {
				    projectPackageListStore.AppendValues (inProject, p.Name, version);
				
					if (inProject)
						selectedPackageListStore.AppendValues (p.Name, version);
				}
			}
			
			// Fill up the normal tree view
			foreach (string dir in ScanDirs ()) {
				if (Directory.Exists (dir)) {	
					DirectoryInfo di = new DirectoryInfo (dir);
					FileInfo[] availablePackages = di.GetFiles ("*.vapi");
					
					foreach (FileInfo f in availablePackages) {
						if (!IsValidPackage (f.FullName)) { 
							continue;
						}

						string packagename = f.FullName;

						GLib.Idle.Add (delegate {
							ProjectPackage package = new ProjectPackage (packagename);
							
							packages.Add (package);
							
							string name = package.Name;
							string version = package.Version;
							bool inProject = selectedPackages.Contains (package);
							
							if (!IsPackageInStore (normalPackageListStore, name, version, NormalPackageNameID, NormalPackageVersionID)) {
								normalPackageListStore.AppendValues (inProject, name, version);
							
								if (inProject)
									selectedPackageListStore.AppendValues (name, version);
							}
							return false;
						});
					}
				}
			}
		}
コード例 #13
0
		private List<ProjectPackage> GetPackagesOfProjects (Project project)
		{
			List<ProjectPackage> packages = new List<ProjectPackage>();
			ProjectPackage package;
			
			foreach (Project c in IdeApp.Workspace.GetAllProjects()) {
				if (c is ValaProject) {
					ValaProject proj = c as ValaProject;
					ValaProjectConfiguration conf = proj.GetConfiguration (IdeApp.Workspace.ActiveConfiguration) as ValaProjectConfiguration;
					if (conf.CompileTarget != CompileTarget.Bin) {
						proj.WriteMDPkgPackage (conf.Selector);
						package = new ProjectPackage (proj);
						packages.Add (package);
					}
				}
			}
			
			return packages;
		}
コード例 #14
0
 public ProjectPackageEventArgs(ValaProject project, ProjectPackage package)
 {
     this.project = project;
     this.package = package;
 }
コード例 #15
0
		public ProjectPackageEventArgs(ValaProject project, ProjectPackage package)
		{
			this.project = project;
			this.package = package;
		}