X-Git-Url: http://woldlab.caltech.edu/gitweb/?a=blobdiff_plain;f=qui%2Fseqbrowser%2FSequenceBrowserWidget.hpp;h=8f957c76a1d975198205103a71f67a60266ec5f8;hb=02fc4144044a430f8bee6617c0c9871d4ebe5e4d;hp=e8f75adc4689c3624207b985f4fea73788e73601;hpb=324fb229c172821dac62f9bf433b8d581c922d69;p=mussa.git diff --git a/qui/seqbrowser/SequenceBrowserWidget.hpp b/qui/seqbrowser/SequenceBrowserWidget.hpp index e8f75ad..8f957c7 100644 --- a/qui/seqbrowser/SequenceBrowserWidget.hpp +++ b/qui/seqbrowser/SequenceBrowserWidget.hpp @@ -5,6 +5,8 @@ #include #include +#include +#include #include #include "alg/sequence.hpp" @@ -13,18 +15,29 @@ #include "qui/seqbrowser/SequenceBrowserSidebar.hpp" //! the master widget that makes a useful Sequence Browser -class SequenceBrowserWidget : public QWidget +class SequenceBrowserWidget : public QScrollArea { Q_OBJECT public: + SequenceBrowserWidget(QWidget *parent=0); + SequenceBrowserWidget(const SequenceBrowserWidget &); SequenceBrowserWidget(boost::shared_ptr, QWidget *parent=0); + //! return our wrapped browser, so we can test it. + SequenceBrowser& browser() { return scrollable_browser->browser(); } + //! return the popup menu for the glcanvas (reference stored internally) QMenu *getPopupMenu(); - //! return our copy actioy (reference stored internally) + //! return our fasta copy action (reference stored internally) QAction *getCopySelectedSequenceAsFastaAction(); + //! return our string copy action (reference stored internally) + QAction *getCopySelectedSequenceAsStringAction(); + //! return sequence properties edit action + QAction *getEditSequencePropertiesAction(); + QSize sizeHint() const; + //! copy selected track regions into a list of SequenceLocations void copySelectedTracksAsSeqLocation(std::list& ); @@ -39,7 +52,6 @@ public: * as it draw and redraws the SequenceDescriptions in the various * positions. */ - //void push_sequences(std::vector& sequences); void setSequences( const std::vector< boost::shared_ptr >& sequences, boost::shared_ptr cm); @@ -70,16 +82,27 @@ public slots: void promptSaveBrowserPixmap(); void update(); - + +signals: + //! emit when someone copies basepairs + void basepairsCopied(size_t); + //! emit when sequence browser alerts this widget of mouse wheel zoom event + void mouseWheelZoom(double); + private: boost::shared_ptr default_dir; - ScrollableSequenceBrowser scrollable_browser; - SequenceBrowserSidebar left_sidebar; - SequenceBrowserSidebar right_sidebar; + ScrollableSequenceBrowser *scrollable_browser; + SequenceBrowserSidebar *left_sidebar; + SequenceBrowserSidebar *right_sidebar; + QHBoxLayout *layout; + QWidget *layout_container; //! sequences created by a setSequences(vector) call /*! I need to save them so i can free them to avoid a memory leak */ - std::vector > converted_sequences; + std::vector converted_sequences; + + //! shared code for constructors + void init(); }; #endif