From: Doug B. <dou...@gm...> - 2013-09-27 19:59:56
|
On Fri, Sep 27, 2013 at 2:04 PM, Nick Hall <nic...@ho...> wrote: > On 27/09/13 18:02, Doug Blank wrote: >> >> I think the option to change log level (which might be related to >> --debug) is beside the point: we need to: >> >> 1) inform the user that something is not working at full capacity >> because of a missing, optional, dependency >> >> 2) how can they fulfill the missing dependency? >> >> 3) make this information only visible when needed/requested (run >> quietly, without a ton of technical gibberish spewn to the screen) >> >> 4) give option to disable plugins that are missing such dependencies >> >> Yes, we could maybe do some of this with a verbose flag, but I'd >> rather see this type of information saved, and made visible in some >> kind of dialog. We have a dialog (the info button) but I think you can >> only write to it via the log level. > > > Yes, the info button displays messages generated using the logging system. > You probably want to use a different mechanism here. It would be easy to > add another button to the status bar. > > >> Maybe if we had an API that >> allowed us to write to the info window without having to spew on the >> command-line, that would be enough. (Especially, if we could put URL >> links in there, and maybe even "links" to be able to disable the >> plugin). > > > Instead of generating a warning we should display a warning button in the > status bar. Clicking this button should display a dialog which gives the > detailed information you suggest, and an option to allow the user to > hide/disable the plugin. I like this idea! Do you think we need both the Info dialog, and this new dialog? It seems that they do very similar things (report an issue, provide a link to more info, and possibly allow user to disable something). Now, we need an API... something like: user.report_issue(filename, message, URL, plugin_id=None) where None means that there is no plugin to be hidden (such as things using pyICU or spelling checker). It could be used something like: user.report_issue("/home/name/gramps/gramps40/.plugins/myaddon/myaddon.py", _("MyAddon needs the package XYZ."), "http://gramps-project.org/additional-detail.html", "myaddon") After gramps gtk starts up, the "issue" button when be shown; clicking it will show: 1. MyAddon needs the package XYZ. Click here for more info. [Disable Button] 2. OtherAddon needs the package ABC. Click here for more info. [Disable Button] 3. Spelling Checking needs the package python-ispell. Click here for more info. Disabling a plugin will mark it "hidden" with the message to use the Program Manager to re-enable it. The CLI (and webapp) would have a report_issue method that did nothing, or reported to the logger? Anything else? -Doug > Nick. > |