1 #include "marks.h"
2 #include "mark2mark.h"
3 #include <QStandardItemModel>
4
Mark2Mark(const QList<Mark * > & marks,Mark * omitMark,QWidget * parent)5 Mark2Mark::Mark2Mark(const QList<Mark*>& marks, Mark* omitMark, QWidget *parent) : MarkInsert(marks, parent)
6 {
7 setupUi(this);
8 LabelList->addItem("", QVariant::fromValue((void*) nullptr));
9
10 //for each marks type
11 QString typeStr;
12 MarkType typeMrk;
13
14 int index = 0;
15 typeMrk = MARKAnchorType;
16 typeStr = tr("Anchors");
17 //adding name of marks type, and make it unselectable
18 LabelList->addItem("+++ " + typeStr);
19 qobject_cast<QStandardItemModel *>(LabelList->model())->item( ++index )->setEnabled( false );
20 for (int i = 0; i < marks.size(); ++i)
21 {
22 if (marks[i]->isType(typeMrk))
23 {
24 LabelList->addItem(marks[i]->label, QVariant::fromValue((void*) marks[i]));
25 index++;
26 }
27 }
28 typeMrk = MARK2MarkType;
29 typeStr = tr("Mark to Mark");
30 LabelList->addItem("+++ " + typeStr);
31 qobject_cast<QStandardItemModel *>(LabelList->model())->item( ++index )->setEnabled( false );
32 for (int i = 0; i < marks.size(); ++i)
33 {
34 if (marks[i]->isType(typeMrk) && marks[i] != omitMark)
35 {
36 LabelList->addItem(marks[i]->label, QVariant::fromValue((void*) marks[i]));
37 index++;
38 }
39 }
40 typeMrk = MARK2ItemType;
41 typeStr = tr("Mark to Item");
42 LabelList->addItem("+++ " + typeStr);
43 qobject_cast<QStandardItemModel *>(LabelList->model())->item( ++index )->setEnabled( false );
44 for (int i = 0; i < marks.size(); ++i)
45 {
46 if (marks[i]->isType(typeMrk))
47 {
48 LabelList->addItem(marks[i]->label, QVariant::fromValue((void*) marks[i]));
49 index++;
50 }
51 }
52 typeMrk = MARKNoteMasterType;
53 typeStr = tr("Note mark");
54 LabelList->addItem("+++ " + typeStr);
55 qobject_cast<QStandardItemModel *>(LabelList->model())->item( ++index )->setEnabled( false );
56 for (int i = 0; i < marks.size(); ++i)
57 {
58 if (marks[i]->isType(typeMrk))
59 {
60 LabelList->addItem(marks[i]->label, QVariant::fromValue((void*) marks[i]));
61 index++;
62 }
63 }
64 // typeMrk = MARKIndexType; typeStr = tr("Index entry");
65 // LabelList->addItem("+++ " + typeStr);
66 // qobject_cast<QStandardItemModel *>(LabelList->model())->item( ++index )->setEnabled( false );
67 // for (int i = 0; i < marks.size(); ++i)
68 // {
69 // if (marks[i]->isType(typeMrk))
70 // {
71 // LabelList->addItem(marks[i]->label, QVariant::fromValue((void*) marks[i]));
72 // index++;
73 // }
74 // }
75 setWindowTitle(tr("Mark to Mark"));
76 }
77
values(QString & label,Mark * & mrk)78 void Mark2Mark::values(QString& label, Mark* &mrk)
79 {
80 label = this->labelEdit->text();
81 int labelID = LabelList->currentIndex();
82 if (labelID == 0)
83 mrk= nullptr;
84 else
85 mrk = (Mark*) LabelList->itemData(labelID).value<void*>();
86 }
87
setValues(const QString label,const Mark * mrk)88 void Mark2Mark::setValues(const QString label, const Mark* mrk)
89 {
90 int index = (mrk == nullptr)? -1:LabelList->findText(mrk->label);
91 LabelList->setCurrentIndex(index);
92 labelEdit->setText(label);
93 }
94
changeEvent(QEvent * e)95 void Mark2Mark::changeEvent(QEvent *e)
96 {
97 QDialog::changeEvent(e);
98 switch (e->type()) {
99 case QEvent::LanguageChange:
100 retranslateUi(this);
101 break;
102 default:
103 break;
104 }
105 }
106