~ubuntu-branches/debian/jessie/ugene/jessie

« back to all changes in this revision

Viewing changes to src/core/src/util_gui/ProjectDocumentComboBoxController.cpp

  • Committer: Package Import Robot
  • Author(s): Steffen Moeller
  • Date: 2011-11-02 13:29:07 UTC
  • mfrom: (1.2.1) (3.1.11 natty)
  • Revision ID: package-import@ubuntu.com-20111102132907-o34gwnt0uj5g6hen
Tags: 1.9.8+repack-1
* First release to Debian
  - added README.Debian
  - increased policy version to 3.9.2
  - added URLs for version control system
* Added debug package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*****************************************************************
2
 
* Unipro UGENE - Integrated Bioinformatics Suite
3
 
* Copyright (C) 2008 Unipro, Russia (http://ugene.unipro.ru)
4
 
* All Rights Reserved
5
 
6
 
*     This source code is distributed under the terms of the
7
 
*     GNU General Public License. See the files COPYING and LICENSE
8
 
*     for details.
9
 
*****************************************************************/
10
 
 
11
 
#include "ProjectDocumentComboBoxController.h"
12
 
 
13
 
#include <core_api/ProjectModel.h>
14
 
 
15
 
namespace GB2 {
16
 
 
17
 
ProjectDocumentComboBoxController::ProjectDocumentComboBoxController(Project* _p, QComboBox* _cb, 
18
 
                                                                                                                                         QObject* parent, const DocumentFilter* f) 
19
 
: QObject(parent), p(_p), cb(_cb), filter(f)
20
 
{
21
 
    assert(filter!=NULL);
22
 
    cb->setInsertPolicy(QComboBox::InsertAlphabetically);
23
 
 
24
 
        connect(p, SIGNAL(si_documentAdded(Document*)), SLOT(sl_onDocumentAdded(Document*)));
25
 
        connect(p, SIGNAL(si_documentRemoved(Document*)), SLOT(sl_onDocumentRemoved(Document*)));
26
 
        foreach(Document* d, p->getDocuments()) {
27
 
                if (filter->matches(d)) {
28
 
                        addDocument(d);
29
 
                }
30
 
        }
31
 
}
32
 
 
33
 
ProjectDocumentComboBoxController::~ProjectDocumentComboBoxController() {
34
 
}
35
 
 
36
 
void ProjectDocumentComboBoxController::sl_onDocumentAdded(Document* d) {
37
 
        if (filter->matches(d)) {
38
 
                addDocument(d);
39
 
        }
40
 
}
41
 
 
42
 
void ProjectDocumentComboBoxController::sl_onDocumentRemoved(Document* d) {
43
 
        removeDocument(d);
44
 
}
45
 
 
46
 
 
47
 
void ProjectDocumentComboBoxController::addDocument(Document* d) {
48
 
        cb->addItem(d->getURL());
49
 
}
50
 
 
51
 
void ProjectDocumentComboBoxController::removeDocument(Document* d) {
52
 
        int i =cb->findText(d->getURL());
53
 
        if (i >=0 ) {
54
 
                cb->removeItem(i);
55
 
        }
56
 
}
57
 
 
58
 
void ProjectDocumentComboBoxController::selectDocument(const QString& url) {
59
 
        int i = cb->findText(url);
60
 
    if (i >= 0) {
61
 
        cb->setCurrentIndex(i);
62
 
    }
63
 
}
64
 
 
65
 
void ProjectDocumentComboBoxController::selectDocument(Document* d) {
66
 
        assert(filter->matches(d));
67
 
    selectDocument(d->getURL());
68
 
}
69
 
 
70
 
Document* ProjectDocumentComboBoxController::getDocument() const {
71
 
        QString url = cb->currentText();
72
 
        if (url.isEmpty()) {
73
 
                return NULL;
74
 
        }
75
 
        Document* doc = p->findDocumentByURL(url);
76
 
        assert(doc);
77
 
        return doc;
78
 
}
79
 
 
80
 
} // namespace