← Back to team overview

kicad-developers team mailing list archive

Re: [Patch] pcbnew clipboard support

 

That being said, I dont like the way the ref.pt is set now either, which is not at all. Personally I would like have the components added at the point of the cursor, but I also believe having a copy functionality that is not perfect as of now is better than none at all.

I do not have the time currently to look into the ref.pt properly.


On 09/17/2017 11:30 PM, Kristoffer Ödmark wrote:
I hope that the branch can be merged as is, and that the reference point can be marked as a wishlist.

I will think about the reference point. I do not know if I like the extra step of adding a reference point compared to having it set automatically.

On Sep 17, 2017 22:38, "Tomasz Wlostowski" <tomasz.wlostowski@xxxxxxx <mailto:tomasz.wlostowski@xxxxxxx>> wrote:

    On 17.09.2017 19:56, Kristoffer Ödmark wrote:
     > Thanks for taking the time to test this, I know testing takes time!
     >
     > I took a look at some of the things you mentioned.
     >
     >  - I fixed menu entries
     >  - I changed some names of functions ( still kept
    appendFromClipboard,
     > but made the action called pasteFromClipboard )
     >  - Footprints now render correctly
     >  - Added Cut functionality ( not thoroughly tested, just chained a
     > copyToClipboard and then a EDIT_TOOL::Remove action after that
     >
     > I am a bit unsure about how to proceed with the reference point you
     > mentioned, but I think I understand what you want there.
     >
    Hi Kristoffer,

    Thanks for your quick reaction. I agree with Simon's proposal concerning
    the reference point.

    Thx,
    Tom
     > Please have a look when appropriate, I rather not have to update the
     > entire branch in a few months though
     >
     > - Kristoffer
     >
     > On 09/17/2017 05:33 PM, Tomasz Wlostowski wrote:
     >> On 17.09.2017 17:06, Kristoffer Ödmark wrote:
     >>> Hey again, I needed this feature again when copying some tedious
     >>> silkscreen drawings that I have not made into a footprint.
     >>>
     >>> Updated my branch to fit into master. I do agree that adding
    context
     >>> menu entries should be done, but I do not feel it necessary for
    merging
     >>> this unless any other bugs are found.
     >>
     >> Hi Kristoffer,
     >>
     >> I tried your patch and I would really love to merge it after some
     >> polishing up. Few observations below:
     >> - Menu items are necessary. I consider the feature incomplete if
    it can
     >> be only invoked by a keyboard shortcut. We have a lot of users
     >> complaining that some functions can be only accessed by
    shortcuts, why
     >> add another item to their list of complaints?
     >> - Missing 'Cut' function (Ctrl-X). If we are to add copy-paste, it
     >> should work as in every other program.
     >> - Name internal events/actions correspondingly to the actions
    visible in
     >> the menus (e.g. copyToClipboard, pasteFromClipboard, etc.),
    using names
     >> like appendFromClipboard, etc. is IMHO confusing.
     >> - It would be useful to let the user select a reference point with a
     >> mouse when copying/cutting items. This point would become
    attached to
     >> the mouse cursor when the items are being pasted.
     >> - While pasting a footprint, it only appears when you click LMB.
    Other
     >> items are displayed while moving the mouse in paste mode.
     >>
     >> Cheers,
     >> Tom
     >>
     >>
     >>
     >>>
     >>> I am unsure what you mean with netlist-path. If that is that the
     >>> timestamp or unique identifier is not there, then from what i
    gather
     >>> that is the same as manually adding a component in pcbnew.
     >>>
     >>> - Kristoffer
     >>>
     >>> On 06/23/2017 07:00 PM, Wayne Stambaugh wrote:
     >>>> Kristoffer,
     >>>>
     >>>> I finally had a chance to test this and it seems to work
    fine.  You
     >>>> definitely need to add copy and paste to the context menu and
    probably
     >>>> to the main menu as well.  While ctrl-c and ctrl-v are will known,
     >>>> Pcbnew has never had a copy and paste feature so it may be
    wise to add
     >>>> the menu entries for existing users.  The only issue I see is
    that the
     >>>> netlist path is empty so I'm not sure how the this will effect the
     >>>> ratsnest and connectivity algorithms.  I'm OK with it as long
    as no one
     >>>> else objects.
     >>>>
     >>>> Orson,
     >>>>
     >>>> would you please take a look at this when you get a chance to
    see if
     >>>> this makes sense as far as the tool framework goes.
     >>>>
     >>>> Thanks
     >>>>
     >>>> Wayne
     >>>>
     >>>> On 5/21/2017 4:32 PM, Kristoffer Ödmark wrote:
     >>>>> Hello!
     >>>>>
     >>>>> I fixed the kicad clipboard code according to your comments,
    it is now
     >>>>> linked to ctrl+c and ctrl+v, utilizing different code paths
     >>>>> depending on
     >>>>> what frame they are invoked at.
     >>>>>
     >>>>> I also fixed the crashes when trying to paste strange stuff.
     >>>>>
     >>>>> The code is available for testing at:
     >>>>>
     >>>>>
    https://code.launchpad.net/~kristoffer-odmark/kicad/+git/kicad/+ref/copypasta
    <https://code.launchpad.net/~kristoffer-odmark/kicad/+git/kicad/+ref/copypasta>
     >>>>>
     >>>>>
     >>>>>
     >>>>>
     >>>>> One thing is missing since I am unsure how to proceed,
     >>>>> the context menu entries.
     >>>>>
     >>>>> Should I create a new clipboard_tool.cpp/h file and add context
     >>>>> entries
     >>>>> from there?
     >>>>>
     >>>>> Should I add the context entries in the files where they are now?
     >>>>> ( selection menu for copying to clipboard, pcbnew_control for
    pasting,
     >>>>> module editor tool for pasting in module editor )
     >>>>>
     >>>>> Should I do it someway enterily different?
     >>>>>
     >>>>> Please advice
     >>>>>
     >>>>> - Kristoffer
     >>>>>
     >>>>>
     >>>>>
     >>>>> On 2017-05-08 15:41, Maciej Sumiński wrote:
     >>>>>> Hi Kristoffer,
     >>>>>>
     >>>>>> It is a neat feature. Your application is a good
    application, but I
     >>>>>> think it would really shine in the footprint editor.
     >>>>>> Unfortunately, it
     >>>>>> crashes when I tried to copy and paste a bunch of pads.
    Could you
     >>>>>> check it?
     >>>>>>
     >>>>>> IMHO it would be better to keep standard Ctrl+C and Ctrl+V hot
     >>>>>> keys, as
     >>>>>> this is what people are likely to press when they want to
    copy or
     >>>>>> paste
     >>>>>> items. These two functions also deserve an entry in the
    right-click
     >>>>>> context menu. Let's not add more hidden features in KiCad.
     >>>>>>
     >>>>>> Speaking of which, you can also have a look at
     >>>>>> MODULE_EDITOR_TOOLS::{Copy,Paste}Items()
     >>>>>> (pcbnew/tools/module_editor_tools.cpp). Yes, you guessed it -
     >>>>>> there was
     >>>>>> already copy & paste for the module editor, but it was not
    properly
     >>>>>> exposed, mea culpa. We need to pick one way, and remove the
    other.
     >>>>>>
     >>>>>> There are also some code formatting violations that also
    should be
     >>>>>> handled before merging the patch. Tools like uncrustify or
     >>>>>> clang-format
     >>>>>> will do most of the boring work for you.
     >>>>>>
     >>>>>> If we decide to choose your way, then you need to add GPL
    license
     >>>>>> header
     >>>>>> for kicad_clipboard.{cpp,h} too.
     >>>>>>
     >>>>>> Regards,
     >>>>>> Orson
     >>>>>>
     >>>>>> On 05/04/2017 10:40 AM, Kristoffer Ödmark wrote:
     >>>>>>> Hello all!
     >>>>>>>
     >>>>>>> Last night I was doing some design that used a PCB antenna.
    I had
     >>>>>>> this
     >>>>>>> antenna design made in zones, It was very frustrating to
    try to copy
     >>>>>>> this between an old design and a new one since I had to use a
     >>>>>>> texteditor
     >>>>>>> ( very glad that I could though ).
     >>>>>>>
     >>>>>>> After this I figured that this should be able to be copy-pasted
     >>>>>>> between
     >>>>>>> pcbs.
     >>>>>>>
     >>>>>>> So I have now implemented a subclass of the PCB_IO, that can
     >>>>>>> format an
     >>>>>>> entire board or a selection to the clipboard in textformat,
    and then
     >>>>>>> created a subclass to the PCB_PARSER that parses from the
    clipboard
     >>>>>>> and
     >>>>>>> reuses the "append board" functionality to add them back.
    It also
     >>>>>>> does
     >>>>>>> remove the "path" properties of modules. This allows me to
     >>>>>>> copy-paste
     >>>>>>> things between different PCBs in kicad. The shortcut keys are
     >>>>>>> ctrl+shift+c and ctrl+shift+v so that people dont use this by
     >>>>>>> mistake :)
     >>>>>>>
     >>>>>>> I think that this might be useful for reusing designs in some
     >>>>>>> manner,
     >>>>>>> and if this is in Kicad, my next step would be to start
    looking into
     >>>>>>> some tool to link the pasted modules to symbols in the
    schematic.
     >>>>>>>
     >>>>>>> Give me some insight on what you think about this please :)
     >>>>>>>
     >>>>>>> video: https://youtu.be/4SuUzma0Ua4
     >>>>>>>
     >>>>>>> (only tested in linux)
     >>>>>>>
     >>>>>>> - Kristoffer
     >>>>>>>
     >>>>>>>
     >>>>>>> _______________________________________________
     >>>>>>> Mailing list: https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
     >>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>>>> More help   : https://help.launchpad.net/ListHelp
    <https://help.launchpad.net/ListHelp>
     >>>>>>>
     >>>>>>
     >>>>>>
     >>>>>>
     >>>>>>
     >>>>>> _______________________________________________
     >>>>>> Mailing list: https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
     >>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>>> More help   : https://help.launchpad.net/ListHelp
    <https://help.launchpad.net/ListHelp>
     >>>>>>
     >>>>>
     >>>>> _______________________________________________
     >>>>> Mailing list: https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
     >>>>> Unsubscribe : https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>>> More help   : https://help.launchpad.net/ListHelp
    <https://help.launchpad.net/ListHelp>
     >>>>
     >>>>
     >>>> _______________________________________________
     >>>> Mailing list: https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
     >>>> Unsubscribe : https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>>> More help   : https://help.launchpad.net/ListHelp
    <https://help.launchpad.net/ListHelp>
     >>>>
     >>>
     >>> _______________________________________________
     >>> Mailing list: https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
     >>> Unsubscribe : https://launchpad.net/~kicad-developers
    <https://launchpad.net/~kicad-developers>
     >>> More help   : https://help.launchpad.net/ListHelp
    <https://help.launchpad.net/ListHelp>
     >>




Follow ups

References