20 #include <QHeaderView> 23 #define IMG_ZOOM ":/images/22x22/page-zoom.png" 24 #define IMG_COPY ":/images/22x22/edit-copy.png" 31 setHeaderLabels(QStringList() << QString(
"")
39 connect(
this, SIGNAL(itemSelectionChanged()),
47 setHeaderLabels(QStringList() << QString(
"")
59 QMenu *menu, *copyMenu;
60 QList<QTreeWidgetItem *> selected;
62 selected = selectedItems();
63 if (! selected.size())
67 copyMenu = menu->addMenu(QIcon(
IMG_COPY), tr(
"Copy"));
68 action = copyMenu->addAction(tr(
"Nickname"));
71 action = copyMenu->addAction(tr(
"Fingerprint"));
74 action = menu->addAction(QIcon(
IMG_ZOOM), tr(
"Zoom to Relay"));
75 if (selected.size() > 1)
76 action->setEnabled(
false);
80 menu->exec(event->globalPos());
92 foreach (QTreeWidgetItem *item, selectedItems()) {
95 text.append(relay->
name() +
",");
98 text.remove(text.length()-1, 1);
99 vApp->clipboard()->setText(text);
111 foreach (QTreeWidgetItem *item, selectedItems()) {
114 text.append(
"$" + relay->
id() +
",");
117 text.remove(text.length()-1, 1);
118 vApp->clipboard()->setText(text);
127 QList<QTreeWidgetItem *> selected = selectedItems();
128 if (selected.size() != 1)
140 QList<QTreeWidgetItem *> selected = selectedItems();
141 foreach (QTreeWidgetItem *item, selected) {
142 setItemSelected(item,
false);
151 QTreeWidget::clear();
152 setStatusTip(tr(
"%1 relays online").arg(0));
160 if (!currentIndex().data().toString().toLower().startsWith(routerNickname.toLower()))
165 scrollToItem(itemFromIndex(currentIndex()));
174 int startIndex = currentIndex().row() + 1;
176 QModelIndexList qmIndList = model()->match(model()->index(startIndex,
NameColumn),
180 (Qt::MatchStartsWith | Qt::MatchWrap));
181 if (qmIndList.count() > 0) {
182 setCurrentIndex(qmIndList.at(0));
185 scrollToItem(itemFromIndex(currentIndex()));
196 QString key =
event->text();
197 if (!key.isEmpty() && key.at(0).isLetterOrNumber()) {
199 QList<QTreeWidgetItem *> list = findItems(QString(
"^[%1%2].*$")
202 Qt::MatchRegExp|Qt::MatchWrap,
204 if (list.size() > 0) {
205 QList<QTreeWidgetItem *> s = selectedItems();
212 index = (!s.size() ? 0 : (list.indexOf(s.at(0)) + 1) % list.size());
215 setItemSelected(list.at(index),
true);
216 scrollToItem(list.at(index));
221 QTreeWidget::keyPressEvent(event);
230 if (
_idmap.contains(
id)) {
240 QString
id = rd.
id();
249 addTopLevelItem(item);
254 setStatusTip(tr(
"%1 relays online").arg(topLevelItemCount()));
265 QList<RouterDescriptor> descriptors;
267 foreach (QTreeWidgetItem *item, selectedItems()) {
272 if (descriptors.count() > 0)
void update(const RouterDescriptor &rd)
stop errmsg connect(const QHostAddress &address, quint16 port)
RouterDescriptor descriptor() const