[concept] plugin launcher

[concept] plugin launcher

Postby Aerilius » Fri Jul 15, 2011 5:24 pm

I think that idea appeared in the Plugin-Installer thread.
At the moment, I often have to move plugins around between the standard folder and a "plugins archive" folder (where I have umpteen plugins). I have to do this before I start SketchUp and I have to take a good decision about what plugins I really use often.


The idea is a launcher with a quick search when you type. You search for any plugin/tool that you want to execute. If the plugin is not yet loaded (disabled), it will be loaded instantly.

The basic purpose is to keep only a small range of standard plugins (=> quicker start of SketchUp and uncluttered interface), but make it easy to load rarely used plugins when you need them. You don't have to bother anymore if a plugin is disabled/archived or not.


I created a prototype (that I will post later). It uses an index file that contains at least
  1. the name of the plugin
  2. the path from where to load it
  3. and eventually the command to execute
Edit: Here it is:
LaunchUp.gif

LaunchUp.zip

LaunchUp-0.2.1.zip


There are several things I'm worrying about:
It should be at least techinically possible to load any existing plugin that is disabled (since it isn't difficult to get the ruby file paths).

But how to get the commands that should be executed, a proper name, icons, eventually keywords?

There is no easy way to get such metadata for the index. Unfortunately SketchUp doesn't provide access to the menus or toolbars. The same was the challenge for Jim's Custom Toolbars, it works only with the buttons that he provided, and users have to dig much into code in order to manually add more buttons of other plugins.

So either I create the metadata manually for each plugin (...) or I parse all ruby files in order to extract something useful :roll: .
That would definitely not work with all plugins (since some plugins contain complex structures of classes and wrapper methods, not to speak of .rbs plugins) but with some. It could also be very error-prone and it had no good performance.

Is there a better solution?
Best would be if the API gave access to all commands created with UI::Command, then we had more control about how tools appear in the user interface (toolbar manager etc. or this quick launcher).


27.03.2013Update: This concept has been realized!
LaunchUp – A Quick Launcher for SketchUp

It is able to launch all loaded tools and plugins. Plugins that you want to turn temporarily off are best wrapped in "SketchUp Extensions" (contact the developer if a plugin is not yet an extension). In LaunchUp you can also do "load [extension name]".
0
Last edited by Aerilius on Thu Mar 28, 2013 11:28 pm, edited 8 times in total.

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby kyyu » Sat Jul 16, 2011 4:36 am

You are confusing loading and running. Once you have the plugin loaded, then you have access to his functions in the menu and/or toolbar. The toolbar could be hidden, so that will add another step. Jim's toolbar plugin is an alternate toolbar. So it would need to know and mimic the particular calls/commands.
0

kyyu 
 

Re: [concept] plugin launcher

Postby Aerilius » Sat Jul 16, 2011 12:02 pm

I believe I'm not confusing this, what I want is rather to combine the two. As I wrote, there are hundreds of plugins that could be useful, but many of us don't keep rarely used plugins in the main folder. It makes no sense to load hundreds of plugins at startup of SketchUp.
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby driven » Sat Jul 16, 2011 1:54 pm

hi Aerilius,

I'm keen for this, but first some questions,

are you using the mac version for your teaser... the webdialog looks like it has a modified nib file.

have you looked at Alex's load single plugin script, I use it all the time on macs.

Maybe as your web dialog loads the 'desired tools' ruby, it could parse it and display clones of the tools buttons and sym links to the 'originals' commands.

just thinking out load...

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby srx » Sat Jul 16, 2011 3:46 pm

:thumb: Good concept...Keep on, please
0
www.saurus.rs
User avatar
srx 
 

Re: [concept] plugin launcher

Postby Aerilius » Sat Jul 16, 2011 4:14 pm

I just found http://forums.sketchucation.com/viewtopic.php?t=22599. :shock: If I had found it before, maybe I wouldn't have realised this plugin. But on the other side it's similar but not really the same.

driven wrote:are you using the mac version

When I made the animation, I didn't have a windows or mac machine arround, but the webdialog should match automatically to the color scheme of any OS.

driven wrote:Maybe as your web dialog loads the 'desired tools' ruby,

I don't understand what you mean with "desire tools". I searchd for it, is that an existing plugin? Do you have a link for it? Or are you just referring to my index file?
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Jim » Mon Aug 15, 2011 1:02 am

Have been playing with this a little also and am starting to like it. A couple of I thoughts that I think would make it better:

1) Be able to use multiple index.txt files to help organize the commands. It's easier to edit smaller files, and easier to group related commands (Fredo tools could go in fredo.txt, for example.)
2) An option to close the dialog after a command is selected.

I think I can nearly do away with the Plugins menu using this - and that's a good thing!
0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby Jim » Sat Sep 24, 2011 2:01 pm

This topic might get more views if it were moved to the Plugins forum. It could be tagged as a "concept" there also. I understand why it's posted in the Dev forum, but it is too hard to find here because it is not listed in the index.
0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby driven » Sat Sep 24, 2011 3:17 pm

Hi,

I've had a play on the mac,
I can only get some of it to work if I use 'enable debug' in scripts mode on the WebDialog.

Once I've done that the Problems are:
auto resize is not taking the menu bar height into account.
when I have the WD menu with images, and click the image/area the commands to ruby don't run.

Attached is the actual output html as seen by Safari in SU.
Safari_LaunchUp.htm.zip


Maybe someone can spot the problem...

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Aerilius » Sat Sep 24, 2011 6:07 pm

Hi,
I think it could have been the problem with Safari+onload. I added my current version (0.2).

Note that that I added an index for demonstration purposes (it lists tools that are maybe not installed). That's because the fundamental obstacle is still that we don't have access to the commands of other plugins (I'm curious about Thomthom's aliasing or interception approach).

The plugin contains a method LaunchUp.build_index which parses the other plugins to find their UI:Commands but the resulting index can contain mistakes and it's not a solution that I want to publish for common use, so it's still experimental.

Actually a "search" user interface fits well in the scope of Google.
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby driven » Sat Sep 24, 2011 11:53 pm

Aerilius wrote:Hi,
I think it could have been the problem with Safari+onload. I added my current version (0.2).


hi,
I got some of it working, sort of, and I don't think the loading was the issue, on Safari.
It seems more to do with the focus function and works better if I comment out line 261
Code: Select all
// $("combo-input").focus();
otherwise you add to the placeholder text rather then replace it.
Tab and Return key codes are intermittent.
Mostly they appear to be locked into the input box, even after the arrows have worked as intended.

When I changed it to show_modal, JPP worked once. soap skin, a couple of times...


also
in the ruby:
there seems to be an error line 90 it has if width I changed to if height so it doesn't 'over' shrink now.
in html:
Input type "search" [with css- margin top:4px;] looks better and doesn't seem to add to the problems.

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Jim » Sun Sep 25, 2011 12:18 am

I don't know what's going on - it's probably my computer. LaunchUp used to work, but now I get this at first:

0087.png


And expanded:

0088.png


I do tend to have a lot of problems with WebDialogs. I've never been able to figure out what is happening.
0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby driven » Sun Sep 25, 2011 12:35 am

@Jim,
did you ever get the default text?
what happens if you type into the box?

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Jim » Sun Sep 25, 2011 1:27 pm

driven wrote:@Jim,
did you ever get the default text?
what happens if you type into the box?

john


LaunchUp worked when I first tried it a few weeks ago - now a get the dialog which only shows me the source for the html. No idea what I did.
0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby driven » Sun Sep 25, 2011 2:34 pm

Jim wrote: - now a get the dialog which only shows me the source for the html. No idea what I did.


I would check other WD's first to see if it's a 'LaunchUp' specific problem

If you haven't touched the files, I'd look at the IE settings.

have you disabled js or set it to 'show as plain text'.

can you set those type of things a PC?

sorry, not very helpful

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Aerilius » Sun Sep 25, 2011 5:22 pm

I have never seen this problem.
What happens when you create a webdialog on the console and then set_file(".../LaunchUp.htm") ?

I don't believe that, but could there be a reason that Internet Explorer thinks it's a plain text file and not html? (confused mime type, or is the encoding or file header wrong?)
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Jim » Sun Sep 25, 2011 6:06 pm

When I inspect the html in the dialog, I see it is incorrectly nested somehow..


Code: Select all
<HTML><HEAD></HEAD>
<BODY><PRE>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;!--
This file is required by LaunchUp.rb"

Copyright 2011, Andreas Eisenbarth
All Rights Reserved

0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby Aerilius » Sun Sep 25, 2011 9:23 pm

I'm not sure what is nested wrong? (I haven't found it yet)
I know many browsers internally prepend a <HTML><HEAD></HEAD><BODY><PRE> when they display plain text files, so maybe this is only the result instead of the cause why IE shows the plain text.

I found that the doctype makes no sense (transitional <-> strict). Can you try
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Jim » Sun Sep 25, 2011 9:47 pm

I tried the new doctype - nope. I got rid of the doctype and comment beginning the .htm file with <html> and it started working again.

I put the doctype back in and removed just the comment - it worked.
0
Hi

Jim 
Global Moderator
 

Re: [concept] plugin launcher

Postby driven » Sun Sep 25, 2011 10:48 pm

I've got v2 stable enough to start looking at it on Safari... Selection from the search results only works with new keycodes and not the mouse...

HTML Changes include:
added a break after 'form' and moved the js to below that break... so line numbers reflect this.

Line 01- DOCTYPE html
Line 22- added to body>> height:100%;
Line 23- changed in form>> top:4px;height:inherit;
Line 49- input type="search"
Line 57- [<]br /[>] ...without []
Line 59>>296- scripts
Line 210/211- // left-arrow: select first entry
if (keycode == 37) {
Line 222/223- // right-arrow: execute entry
if (keycode == 39) {
Line 275- // $("combo-input").focus(); #jb_mac

in the Rudy:
this forces it to only scroll down
Line 54- changed to @launchdlg = UI::WebDialog.new("LaunchUp", false, false, 0, 1140, 270, 50, true)
Line 92- added @launchdlg.set_position(1140,0)
to get it to show_modal
Line 98>>102 + Line 110>>102- if RUBY_PLATFORM.include?('darwin') # Do NOT 'do this if on a PC!
@launchdlg.show_modal
else
@launchdlg.show
end #mac _modal


I also set a shortcut key in 'system' preferences and have started updating the txt file.

john
0
learn from the mistakes of others, you may not live long enough to make them all yourself...

driven 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Aerilius » Mon Sep 26, 2011 12:02 am

Thank you so much for your efforts! I included it in the code. For me it used to work in my browsers/configurations, so otherwise I couldn't have found these solutions on my own.

I did some search about comments between doctype and <html>, but didn't find anything about issues. I probably leave the comment completely away (or does it work with the comment after <html> ?)

I was a bit hesitant about input type="search" because it's not standard (html4), but since unknown type defaults always to text, it shouldn't be a problem and doesn't break anything in Internet Explorer.
0

Aerilius 
PluginStore Author
PluginStore Author
 

Re: [concept] plugin launcher

Postby Dan Rathbun » Mon Sep 26, 2011 12:13 am

Jim wrote:I put the doctype back in and removed just the comment - it worked.

It IS a bit weird that the comment is outside the <html> block... I would put it inside the <head> block as well.
0
    I'm not here much anymore. But a PM will fire email notifications.
    User avatar
    Dan Rathbun 
    PluginStore Author
    PluginStore Author
     

    Re: [concept] plugin launcher

    Postby driven » Fri Dec 16, 2011 11:19 pm

    Hi all,

    I'm bumping this, because I want to modify it to work with 'on_off' http://forums.sketchucation.com/viewtopic.php?f=180&t=41994#p372262

    Using the option to open SU without rubies but with Ruby we have the ability to open individual .rb files or folders containing .rb files using Alex's + Jim's methods or load from RC, which is great.

    However if you want TIG's 2DTools [for example] you need to change all the 'requires' in all the scripts into 'load' + full the path before it will run with 'rubies' turned 'off'. I've got that working and it will still run as normal with them 'on', but would be a pain to do for each new version for all my rubies. I haven't worked out any of Fredo's yet, but I'm sure there's a way.

    So I'm thinking it would be a lot easier to parse the plugins each time you call one to 'load' and leave the originals intact,
    if it needs support files they can be added, but also need full path's.

    Basically, use 'LaunchUp' to select the 'standard' ruby rather then it's individual items,
    because you only need to have a few sets on at a time the toolbar count is still low.
    when you get to many you start again.

    I'm stumbling through so any feed back is appreciated.
    john
    0
    learn from the mistakes of others, you may not live long enough to make them all yourself...

    driven 
    PluginStore Author
    PluginStore Author
     

    Re: [concept] plugin launcher

    Postby Aerilius » Sat Dec 17, 2011 12:30 am

    Hi,
    This is very far from a proper plugin. Parsing other ruby files in order to get commands is not an ideal solution and needs always manual editing. I would not publish the current state as a plugin.

    I've played around with alternatives (should probably make my current version ready and post it here). I tried aliasing the UI::Command before all plugins load. Problem is that this way I modify core methods, I have to make sure that my plugin loads always first and it can be harmful if another plugin aliases UI::Command.

    Jim inspired me to get the commands with Objectspace, which works for all the command's metadata, but I haven't figured out how to call the proc.

    Third possibility is to continue hoping and begging for SU9 that we will have better access to commands (and maybe removing/modifying toolbars and menus).
    0

    Aerilius 
    PluginStore Author
    PluginStore Author
     

    Re: [concept] plugin launcher

    Postby lapx » Sat Dec 17, 2011 12:41 am

    This idea deserves an award! I spend too much time trying to find certain commands and dealing with grey out issue.
    Is it necessary to create another plugin folder or can I just check not load at start up.
    Have'nt tried yet but appears to be a winning concept if it can work smoothly.
    0

    lapx 
     

    Re: [concept] plugin launcher

    Postby driven » Sat Dec 17, 2011 1:07 am

    Hi Aerilius,

    thanks for replying

    I may have found a workaround for what I'm after using Fred's '000_AdditionalPluginFolders.rb' with 'on off.rb',

    I've made and registered some subfolders in SU, then when I launch with 'rubies OFF' and run '000_AdditionalPluginFolders.rb' I get asked which I want to instal, so I can choose 'Base Set', '2D', 'Fredo' or 'TIG', etc...

    This avoids having to look at or modify the rubies content at all and with a simple folder creator/sorter WebDialog this is almost doing what I want [on mac at least] and without any .rbs [but they can be accessed via a full startup].

    I'll keep digging
    john
    0
    learn from the mistakes of others, you may not live long enough to make them all yourself...

    driven 
    PluginStore Author
    PluginStore Author
     

    Re: [concept] plugin launcher

    Postby Jim » Sat Dec 17, 2011 2:49 pm

    Aerilius wrote: but I haven't figured out how to call the proc.


    Once you have a reference to a proc, call call on it.

    pr = Proc.new { puts "Hi" }
    pr.call
    Hi
    0
    Hi

    Jim 
    Global Moderator
     

    Re: [concept] plugin launcher

    Postby Aerilius » Sat Dec 17, 2011 4:36 pm

    But can I get the proc from Objectspace? I didn't get it to work...
    0

    Aerilius 
    PluginStore Author
    PluginStore Author
     

    Re: [concept] plugin launcher

    Postby Jim » Sat Dec 17, 2011 4:57 pm

    Aerilius wrote:But can I get the proc from Objectspace? I didn't get it to work...


    Oh yeah. You can get UI::Command objects from ObjectSpace, but you can't get a handle to a Command's associated Proc.

    You can get Proc objects from ObjectSpace

    ObjectSpace.each_object(Proc) {|pr| puts pr }

    But there is no handy way to know which command a Proc is associated with other than the String representation (which is the filename and line number where the command is created.)

    So no "good" solution. I have asked Google for a method to access the Proc of a Command. That would make things sooo much simpler.
    0
    Hi

    Jim 
    Global Moderator
     

    Re: [concept] plugin launcher

    Postby dukejazz » Sun Dec 18, 2011 8:13 am

    Your idea of a launcher with a quick search, is something Im looking for. Type a search for any plugin/tool that you want to execute. If the plugin is not yet loaded, it will be loaded instantly.

    "The basic purpose is to keep only a small range of standard plugins (=> quicker start of SketchUp and uncluttered interface), but make it easy to load rarely used plugins when you need them. You don't have to bother anymore if a plugin is disabled/archived or not."

    You created a prototype. It uses an index file that contains a list of info.
    This is your primiss. I did tryed your plugin and its a qood ideal.

    There are several things your are worrying about:
    " 1) It should be at least techinically possible to load any existing plugin that is disabled"

    2)"But how to get the commands that should be executed, a proper name, icons, eventually keywords?" Well this is to much work for me?. I try to useing SUTool: a new way to manager your RB script but it dosn't load every thing. You have to double buffer everything "(since some plugins contain complex structures of classes and wrapper methods, not to speak of .rbs plugins)"
    SUTool:
    These were my ini files
    01file.txt

    02edit.txt

    03toolbars.txt

    04view.txt

    05camera.txt

    06draw.txt

    07tool.txt

    08plugins.txt

    09context.txt


    (Stage 1)
    Is there a better solution? yes window/preferences_shortcuts,a dummy key, with a macro.ank, it would give API access to all commands created with UI::Command,

    (Stage 2)
    pic_0042.jpg


    I will tell you how at My tips about running more than one sketchup
    viewtopic.php?f=79&t=40254
    0
    User avatar
    dukejazz 
     

    SketchUcation One-Liner Adverts

    by Ad Machine » 5 minutes ago



    Ad Machine 
    Robot
     

    Next


     

    Return to Developers' Forum

    cron

    Who is online

    Users browsing this forum: No registered users and 13 guests

    Visit our sponsors: