« first day (1318 days earlier)      last day (1862 days later) » 
00:00 - 22:0022:00 - 00:00

10:00 PM
BTW, I see they did post your post on the forums, so there's that, too. :)
 
I'm a little concerned at the user on PMADN that reported crashes on open, not shutdown.
 
@WaynePhillipsEA do we have a stack trace for it?
 
but if we've had no other such reports, I'm inclined to think it might be an isolated case
No, I don't think he's yet replied to @this
 
@WaynePhillipsEA got a link for it?
crash on open might be related to installing to a folder where a non-admin user doesn't have write access
 
it's a closed group have to "apply" to join
I will comment about that
 
10:05 PM
sounds plausible.
 
FWIW the reason is because the installer isn't creating the \Plug-ins folder, and RD is creating it at run-time assuming it has permission to do so
i.e. it's a legit bug, trivial to fix
other than that, we used to have crashes on open given incompatible configuration settings between versions - not likely if that was a first-timer install
> Pending
 
I posted anyway
and linked to the issue
 
thanks
 
thanks @this
night all
 
'night!
 
10:12 PM
night
 
morning
 
nirgning
 
I have an OOP question. I'm (still) working on Controls, and I want to mimic the obect model of a UserForm, whereby, UserForm.Controls returns all of the controls on a form, but if one of those controls is a "container" like a Frame, then UserForm.Controls("Frame1").Controls returns all of the controls in that container. A container can contain another container (and so on), so you might end up with UserForm.Controls("Frame1").Controls("MultiPage").Controls("Frame2").Controls
I'm wondering about the best way of structuring that.
 
are you writing a LINQ provider for the VBIDE API?
</sarcasm>
 
I think I need to expose a Controls method on the container object, that recursively enumerates all of the child containers and controls
 
10:23 PM
Were it me, I'd have only single collection of controls, then for each container controls, another collection that references controls contained in the original collection.
IOW, the containers' collection points back to the single collection.
 
@Mat'sMug might be overkill ;-)
 
I think I'd go with some IControlContainer : IControl interface that exposes a Controls collection, where items are IControl
 
@Mat'sMug isn't it legal to have Me.Controls("Frame2") and Me.Controls("Frame1").Controls("Mulitpage").Controls("Frame2"), though?
 
yeah, I think that would support it, no?
 
10:25 PM
e.g. two different way to access the same control.
 
assuming Frame : IControlContainer and MultiPage : IControlContainer
and of course UserForm : IControlContainer
 
but you end up storing all the the IControlContainer's controls in the parent IControlContainer? That's not what we wwant, right?
 
huh, no
 
actually, userForm is indistinguishable from IContainer
 
10:27 PM
Let me back up - do we need to support accessing via both Me.Controls("Frame2") and Me.Controls("Frame1").Controls("Multipage").Controls("Frame2") ?
 
you can't have dot-dot-dot like VBA code
that's all late-bound
can't have that and type safety
i.e. it only works if everything is dynamic, which makes a rather shitty C# API
 
so we're saying Just Say No to dots then.
 
@this ?userform1.Controls("Frame1").controls("Frame1").Name throws an error in VBE
 
Is it legal to have 2 controls with same name like that on UF? Not so on Access forms.
 
the Controls property only returns children
 
10:30 PM
Probably explains why I'm going off on the tangent, ignore me.
Ah ok.
Just ignore this little man behind curtain, then. :)
 
@this yes, it's illegal. You can't use a control identifier that isn't a child of the container. That is, you can't do ChildFrame.Controls("ParentFrame"), but you can do ParentFrame.Controls("GreatGeatGrandChildControl")
 
waitaminute -- I'm not talking about reaching the parent controls. I'm talking about reaching the grandchildren....
My concern was that if reaching grandchildren are legal, you might need to provide access to the grandchildren (and further down) to make API more "familiar".
 
the "familiar" API relies on late-bound calls...
 
@this yeah, so storing controls at the container level, and if you request the controls of a parent container, the property recursively enumerates all of the child controls and containers.
VBE also allows userform1.controls("Frame2").Parent
 
FWIW, I'm fine with not allowing grandchildren access but implementing API like so may field lot of question "why can't I do this like I do in VBA".
 
10:38 PM
because VBA and type safety are two things
 
FWIW x2: my rule when I need to access the parent or child Access.Form is to use a explicit variable, so that I can get compile-time validation of member access to the forms' controls. If API encourage that, all the better, I think.
 
encourages mandates
 
@Mat'sMug yep - that's why userform1.controls("Textbox1").controls.countfails
 
Fun question: how deep could a typical userform get?
 
2 levels, I'd say
 
10:41 PM
@this he asks, like I haven't tried
 
i.e. Form > Frame > Children
 
@ThunderFrame as in typical usage
 
Form > Frame > MultiPage > Frame.....
 
hmm.. Form > MultiPage > Frame > Children
 
not let's add more until it reaches China usage.
 
10:42 PM
so 2-3 levels
@ThunderFrame admittedly I don't MultiPage much :)
 
I forget if the spec imposes a limit
 
Cool - pretty similar to how I do on Access (form -> tab controls -> subform is the most common pattern)
@ThunderFrame I think if they did, the all-vba treeview would be dead
AIUI, they implement each "node" as a frame or something.
 
@this interesting that you'll cast for parent/child access, but not for Textbox.Value as per 3694 ;-P
 
If there were a common interface like EditableControl that I can use instead, I'd be over it.
But no, all I have is Control interface that includes all editable control that can contain Value and other non-editable controls. :\
With Access form, there are explicit instances so that it's easy to cast and thus achieve compile-time validation of its member access. I personally despise those fugly Forms!MyForm!MyControl syntax used by everyone else.
 
OK, so if I keep all controls in a collection at the top-most container I'll need to pass that collection by ref, as I recursively parse the child containers?
 
10:50 PM
My earlier suggestion was only that each children collection refer to the controls already stored in a single collection at the top level. So the children controls' collection only need to store a ref back to the parent. Not sure if that's the best thing to do.
 
11:00 PM
bbl
 
11:20 PM
Hey @IvenBach just for reference: Updating the severity of a code inspection throws an exception since this commit: github.com/rubberduck-vba/Rubberduck/commit/…...
 
> This PR removes the Component property from QualifiedModuleName. This means that the QMNs no longer carry any reference to a COM wrapper and can be freely used as a keys corresponding to modules. To still provide access to componants given a QMN, I introduced the ProjectsRepositoryimplementing the interfaces ÌProjectsProvider` (readonly access) and ÌProjectsRepository` (aditional refresh capabilities). It saves a reference to the VBProjects COM wrapper aquired from the ÌVBE`passed...
to it through the contructor. Then, it loads dictionaries of all VBProjects, VBCompoonents collections, VBComponents and ICodeModules in the VBE. Several methods provide access to the entire collections with the projectIds/qmns attached or per projectId/qmn. On refresh and disposal, the appropriate wrappers get disposed. I refactores the RubberduckParserState to use an IProjectsRepository passed in through the constructor to perform its projects management. (The same is true for...
the IProjectsManager.) Moreover, I expused the repository as an IProjectsProvider on the RubberduckParserState for easier access by other functionality. Using the IProjectsProvider, I went on and replaced all uses of QualifiedModuleName.Component. (In a few places, accessing the component was actually unnessesary.) In order to make the tests for the repository work I had to perform some changes on the mock wrappers. In particular, the code module mocks can now be accessed on the...
MockProjectBuilder and the Equals and GetHashCode methods have been set up to mean reference equality instead of only retorning the default value of the return type. This PR is still WIP since I still have to merge the latest changes to next. This may take a while since I first have to update VS to be able to compile again after the merge. Moreover, there are some binding exceptions now whenever I parse. I would like to find out what broke there before merging this PR. Since this PR...
touches a lot of parts of RD, I would very much appreciate a review.
[rubberduck-vba/Rubberduck] build for commit 4e66cf3c on unknown branch: AppVeyor was unable to build non-mergeable pull request
BUILD FAILURE!
 
I think I got all the backticks righz now...
I think I got all the backticks right now...
Ffs mobile is a PITA
 
00:00 - 22:0022:00 - 00:00

« first day (1318 days earlier)      last day (1862 days later) »