VR-Forces 4.0.4 Class Documentation
include/vrvCoreQt/DtSelectionWidget.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: DtSelectionWidget.h,v $ $Revision: 1.12 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #pragma once
00013 #include <vrvCoreQt/vrvCoreQt.h> 
00014 #include <vrvCoreQt/DtSelectionWidgetUi.hpp>
00015 #include <vrvCoreQt/DtFilteredListView.h>
00016 #include <vrvCore/DtSelectionManager.h>
00017 #include <vrvCore/DtSubjectObserver.h>
00018 #include <vrvCore/DtUniqueID.h>
00019 #include <vrvCore/DtElementData.h>
00020 #include <QtCore/QHash>
00021 
00022 namespace makVrv
00023 {
00024    class DtFilter;
00025    class DtSelectionManager;
00026    
00028    //
00035    class DT_DLL_VRVCOREQT DtSelectionWidget : public QWidget, public DtDeObserver
00036    {
00037 
00038       Q_OBJECT
00039 
00040    public:
00041 
00043       DtSelectionWidget(DtDe& de, QWidget* parent = NULL, 
00044          const Qt::WindowFlags& f = 0);
00045 
00047       virtual ~DtSelectionWidget();
00048 
00050       virtual bool init( int iNumListBoxes = 1 );
00051 
00052       virtual void tick();
00053       
00055       virtual DtElementData::UniqueIdList selectedObjects(
00056          int iListBox = -1) const;
00057 
00058       virtual QString selectedName(unsigned int iListBox = 0);
00059       virtual bool selectedNames(QString& name1, QString& name2);
00060 
00061       virtual void addFilter(const DtFilter& filter,
00062          unsigned int iForListBox = 0, bool executeForFilter = false);
00063 
00064       virtual DtFilteredListView* filteredListView(unsigned int iListBox = 0);
00065 
00066       virtual void clearAllSelections();
00067       virtual QString filterFor(const QString& windowTitle,
00068          const QString& listTitle);
00069 
00072       virtual void addFinalFilter(const DtFilter& f);
00073       virtual void removeFinalFilter();
00074 
00076       virtual void removeButtons();
00077       virtual void showButtons();
00078 
00080       virtual void makeConnections(bool connectMap = true);
00081       virtual void disconnectConnections();
00082 
00083       void setContinueAccept(bool);
00084       bool continueAccept() const;
00085 
00088       virtual void setSelectedName(const QString& name, int iListBox = 0);
00089 
00090       void onExternalSelectionChanged( const DtSelectionManager::IdSet& selected,
00091          const DtSelectionManager::IdSet& deselected );
00092 
00093    protected:
00094       virtual bool initConnections();
00095       virtual bool initConnections(DtFilteredListView*);
00096 
00097       virtual bool disconnectConnections(DtFilteredListView*);
00098 
00101       virtual DtFilteredListView* createFilteredListView(unsigned int iForListBox);
00102 
00103       virtual bool initFilters(unsigned int iForListBox = 0);
00104       virtual QString listTitle(unsigned int iForListBox = 0) const;
00105       virtual QString listCaption(unsigned int iForListBox = 0) const;
00106 
00107       virtual bool initSelectionMode();
00108       virtual QString windowTitle() const;
00109 
00110       virtual DtFilteredListView* createFilteredListView() = 0;
00111 
00112       virtual void slot_activate(DtDe* subject);
00113 
00114       virtual void slot_deactivate(DtDe* subject);
00115       
00119       void externalSelectionChanged(  const DtSelectionManager::IdSet& selected,
00120          const DtSelectionManager::IdSet& deselected );
00121 
00122    signals:
00123 
00126       void cancelActivated();
00127       void accepted();
00128 
00129    public slots:
00130 
00131       virtual void accept();
00132       virtual void cancelAndClose();
00133 
00136       virtual void listSelectionUpdated(const DtElementData::UniqueIdList& d);
00137 
00139       virtual void filterChanged(DtFilteredListView* window, const QString& filter);
00140 
00142       virtual void comboTextChanged(DtFilteredListView* window, const QString& filter);
00143       
00144       virtual bool createFilteredListViews();
00145    
00146    protected:
00147 
00148       virtual void keyPressEvent(QKeyEvent *e);
00149       virtual void closeEvent(QCloseEvent *e);
00150 
00151    public:
00152       Ui::DtSelectionWidgetUi myUiImpl;
00153 
00154    protected:
00155       DtDe& myDe;
00156       int myNumListBoxes;
00157       
00158       QList<DtFilteredListView*> myFilteredListViews;
00159       bool myClosing;
00160 
00161       //static DtEntityMapperKey gForceLevel;
00162       static QHash<QString, QString> gCurrentFilter;
00163 
00164       bool myUpdatingSelectionManager;
00165 
00167       bool mySelectedOne;
00168       bool myContinueAccept;
00169    };
00170 
00171    inline void DtSelectionWidget::setContinueAccept(bool b)
00172    {
00173       myContinueAccept = b;
00174    }
00175 
00176    inline bool DtSelectionWidget::continueAccept() const
00177    {
00178       return myContinueAccept;
00179    }
00180 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)