[Lazarus] Package dialog ?

Michael Van Canneyt michael at freepascal.org
Tue Mar 24 16:39:09 CET 2015

On Tue, 24 Mar 2015, Juha Manninen wrote:

> On Tue, Mar 24, 2015 at 1:45 PM, Michael Van Canneyt
> <michael at freepascal.org> wrote:
>> Ehm, 'many other complaints' ? that is just your opinion :-)
> I opened the report partly because of other complaints and questions.
> It was not only my opinion.

OK, that was not clear :)

>>> What more, there was a filter which prevented adding some files, but
>>> didn't give any feedback.
>> Hm. Strange argument. If that is a problem, just give the ability to switch
>> filters. Not a reason to completely change the way of working ?
> No, the user selectable filter is another thing.
> There are hard-coded rules that prevent some files being added because
> they are not valid for the project/package.
> For some reason the rules are not needed when files are added by d'n'd
> or file open dlg.
> The code is inconsistent, I was planning to consult Mattias later about it.
> Now I see there is another inconsistency :
>  http://bugs.freepascal.org/view.php?id=27720
> The code needs refactoring so that logic for accepting / rejecting a
> file is in one place.
> Project and package have lots of common features and similar code. I
> have already created a common base class and an interface for them. I
> hope it can be extended to share code for these dialogs.

That makes sense :)

> Your plan looks good. You are clever!

Not clever, I simply like a simple dialog ;)

Like I wrote to Mattias: too many things are hidden behind 1 button.
By separating out functionality, things become more clear.

>> 3. Duplicate the 'New item' functionality in context menu.
>>    Context menu and button bar should be in sync, IMHO.
> What should be in sync? The Enabled state maybe?

I meant that IMHO items that appear in the button bar should also appear in the context menu.

>> 9. Rework dependencies management to something more sane. Multi-select etc.
> It could use the "Open Loaded Package" dialog after some modifications.

If you add an option to select a package that is not loaded, yes.

Use case: When doing e.g. a checkout or download, you may end up with a new 
package that is not yet loaded in the IDE. You need to be able to add that 
to depencencies.

Not all packages are installed in the IDE.

>> The "clean up dependencies" should IMHO be removed, but that is a separate
>> topic entirely.
> Why? It is a very useful feature.

I don't see how. 
IMHO it is even wrong, because I want to see explicitly all dependencies added to a package/project.

Package A (unitA) depends on Package B (UnitA uses unitB) and Package C (UnitA uses unitC).
Package B depends on Package C (unitB uses unitC).
Invoking the dialog in A will propose to remove the C from the dependencies of A (transitivity). 
That is IMHO not wanted. If I remove the depencency on B (no longer use UnitB) then the dependency 
on C is lost. Hence, C must remain in the dependencies of A.

Maybe there are other uses of this dialog that I am unaware of.
But as I said: that is another discussion entirely :)


More information about the Lazarus mailing list