source: subversion/applications/editors/merkaartor/PropertiesDock.h @ 13989

Last change on this file since 13989 was 13422, checked in by Łukasz Jernaś, 11 years ago

FIX : Implement dynamic UI translation (fixes #1432)

  • Property svn:eol-style set to native
File size: 3.2 KB
Line 
1#ifndef MERKATOR_PROPERTIESDOCK_H_
2#define MERKATOR_PROPERTIESDOCK_H_
3
4#include <ui_MinimumTrackPointProperties.h>
5#include <ui_MinimumRelationProperties.h>
6#include <ui_MinimumRoadProperties.h>
7#include <ui_MultiProperties.h>
8
9#include <vector>
10
11#include "Utils/MDockAncestor.h"
12#include "Utils/ShortcutOverrideFilter.h"
13
14class MainWindow;
15class MapFeature;
16class TagModel;
17class EditCompleterDelegate;
18class TagTemplates;
19class TagTemplate;
20class CommandList;
21
22class PropertiesDock : public MDockAncestor
23{
24        Q_OBJECT
25
26        public:
27                PropertiesDock(MainWindow* aParent);
28        public:
29                ~PropertiesDock(void);
30
31                void setSelection(MapFeature* aFeature);
32                void setMultiSelection(MapFeature* aFeature);
33                template<class T>
34                                void setSelection(const std::vector<T*>& aFeatureList);
35                void setMultiSelection(const std::vector<MapFeature*>& aFeatureList);
36                void toggleSelection(MapFeature* aFeature);
37                void addSelection(MapFeature* aFeature);
38                void adjustSelection();
39                MapFeature* selection(unsigned int idx);
40                QVector<MapFeature*> selection();
41                bool isSelected(MapFeature *aFeature);
42                unsigned int size() const;
43                void resetValues();
44                void checkMenuStatus();
45                bool loadTemplates(const QString& filename = "");
46                bool mergeTemplates(const QString& filename = "");
47                bool saveTemplates(const QString& filename);
48
49        public slots:
50                void on_TrackPointLat_editingFinished();
51                void on_TrackPointLon_editingFinished();
52                void on_Member_customContextMenuRequested(const QPoint & pos);
53                void on_RemoveMemberButton_clicked();
54                void on_RemoveTagButton_clicked();
55                void on_SelectionList_itemSelectionChanged();
56                void on_SelectionList_itemDoubleClicked(QListWidgetItem* item);
57                void executePendingSelectionChange();
58                void on_SelectionList_customContextMenuRequested(const QPoint & pos);
59                void on_centerAction_triggered();
60                void on_centerZoomAction_triggered();
61                void on_tag_changed(QString k, QString v);
62                void on_tag_cleared(QString k);
63                void on_template_changed(TagTemplate* aNewTemplate);
64
65        private:
66                void cleanUpUi();
67                void switchUi();
68                void switchToNoUi();
69                void switchToTrackPointUi(MapFeature* F);
70                void switchToRoadUi(MapFeature* F);
71                void switchToMultiUi();
72                void switchToRelationUi(MapFeature* F);
73                void fillMultiUiSelectionBox();
74                void changeEvent(QEvent*);
75                void retranslateUi();
76
77                MainWindow* Main;
78                QWidget* CurrentUi;
79                std::vector<MapFeature*> Selection;
80                std::vector<MapFeature*> FullSelection;
81                Ui::TrackPointProperties TrackPointUi;
82                Ui::RoadProperties RoadUi;
83                Ui::MultiProperties MultiUi;
84                Ui::RelationProperties RelationUi;
85                TagModel* theModel;
86                unsigned int PendingSelectionChange;
87                EditCompleterDelegate* delegate;
88                QAction* centerAction;
89                QAction* centerZoomAction;
90                ShortcutOverrideFilter* shortcutFilter;
91                TagTemplates* theTemplates;
92
93                QTableView *CurrentTagView;
94                QTableView *CurrentMembersView;
95
96                enum { NoUiShowing, TrackPointUiShowing, RoadUiShowing, RelationUiShowing, MultiShowing } NowShowing ;
97};
98
99template<class T>
100                void PropertiesDock::setSelection(const std::vector<T*>& aFeatureList)
101{
102        cleanUpUi();
103        Selection.clear();
104        for (unsigned int i=0; i<aFeatureList.size(); ++i)
105                Selection.push_back(aFeatureList[i]);
106        FullSelection = Selection;
107        switchUi();
108        fillMultiUiSelectionBox();
109}
110
111
112#endif
113
114
Note: See TracBrowser for help on using the repository browser.