Merge branch 'develop' into feature/JAL-1713_overviewInProject
[jalview.git] / src / jalview / gui / Finder.java
index 0bf4600..2756b14 100755 (executable)
@@ -254,6 +254,17 @@ public class Finder extends GFinder
     new FeatureEditor(ap, seqs, features, true).showDialog();
   }
 
+  @Override
+  protected void copyToClipboard_actionPerformed()
+  {
+    if (searchResults.isEmpty())
+    {
+      return; // shouldn't happen
+    }
+    // assume viewport controller has same searchResults as we do...
+    ap.alignFrame.avc.copyHighlightedRegionsToClipboard();
+  }
+
   /**
    * Search the alignment for the next or all matches. If 'all matches', a
    * dialog is shown with the number of sequence ids and subsequences matched.
@@ -263,6 +274,7 @@ public class Finder extends GFinder
   void doSearch(boolean doFindAll)
   {
     createFeatures.setEnabled(false);
+    copyToClipboard.setEnabled(false);
 
     String searchString = searchBox.getUserInput();
 
@@ -283,19 +295,21 @@ public class Finder extends GFinder
       finder = new jalview.analysis.Finder(av);
       finders.put(av, finder);
     }
+    finder.setFeatureRenderer(ap.getFeatureRenderer());
 
     boolean isCaseSensitive = caseSensitive.isSelected();
     boolean doSearchDescription = searchDescription.isSelected();
+    boolean doSearchfeatures = searchFeatures.isSelected();
     boolean skipHidden = ignoreHidden.isSelected();
     if (doFindAll)
     {
       finder.findAll(searchString, isCaseSensitive, doSearchDescription,
-              skipHidden);
+              doSearchfeatures, skipHidden);
     }
     else
     {
       finder.findNext(searchString, isCaseSensitive, doSearchDescription,
-              skipHidden);
+              doSearchfeatures, skipHidden);
     }
 
     searchResults = finder.getSearchResults();
@@ -309,6 +323,7 @@ public class Finder extends GFinder
     else
     {
       createFeatures.setEnabled(true);
+      copyToClipboard.setEnabled(true);
     }
 
     searchBox.updateCache();