I have read through numerous posts on this topic and have spend far too much time to try to get it right. So I finally decided to write yet another question on the topic.
What I want is to use the NAMESPACE file with import/importFrom correct. The problem is that I get a warning upon the RCMD check (which is not appreciated on CRAN):
Warning: replacing previous import by 'gtable::gtable' when loading 'strvalidator'
It is similar to this and this question but none of them make me any wiser.
My package (full code here) use the gtable function from both the gtable and the gWidgets package so the solutions to only import functions that you use or change the order of import does not solve the problem. I always use the double colon for the gtable functions (i.e. gtable::gtable and gWidgets::gtable) as pointed out in this and this post.
I use importFrom for all functions (as pointed out here) except for the packages where I use numerous functions (here I use import instead. I have tested with importFrom but it gives the same warning).
Any help is highly appreciated!
EDIT: So I will add what I ended up doing as requested by @catastrophic-failure. I think I can't add a proper answer because this question is a duplicate. Instead I add the solution as an edit:
I ended up removing all the importFrom from the NAMESPACE file. The four main packages that I use without :: has import in the NAMESPACE. Other package functions are used with :: and their packages are listed (together with the four main packages) as Imports in the DESCRIPTION file. This approach works (i.e. does not give me any errors), but does not make use of the importFrom.
 
    