From d3a6f7316cc088002050bcca3e3c5c25e5e7a94b Mon Sep 17 00:00:00 2001 From: thunder2 Date: Sat, 18 Dec 2010 01:45:32 +0000 Subject: [PATCH] Added the state column in PeersDialog again. Now you can choose to show the state in an own column or behind the name. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3919 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- retroshare-gui/src/gui/PeersDialog.cpp | 117 ++++++++++++++++------- retroshare-gui/src/gui/PeersDialog.h | 4 +- retroshare-gui/src/gui/PeersDialog.ui | 19 ++-- retroshare-gui/src/lang/retroshare_de.qm | Bin 276150 -> 276314 bytes retroshare-gui/src/lang/retroshare_de.ts | 61 ++++++------ 5 files changed, 131 insertions(+), 70 deletions(-) diff --git a/retroshare-gui/src/gui/PeersDialog.cpp b/retroshare-gui/src/gui/PeersDialog.cpp index 80e90d7e1..74dbf15cb 100644 --- a/retroshare-gui/src/gui/PeersDialog.cpp +++ b/retroshare-gui/src/gui/PeersDialog.cpp @@ -94,15 +94,15 @@ #define IMAGE_NEWSFEED "" #define IMAGE_NEWSFEED_NEW ":/images/message-state-new.png" -#define COLUMN_COUNT 1 +#define COLUMN_COUNT 2 #define COLUMN_NAME 0 +#define COLUMN_STATE 1 #define COLUMN_DATA 0 // column for storing the userdata id -#define ROLE_SORT_NAME Qt::UserRole -#define ROLE_SORT_STATUS Qt::UserRole + 1 -#define ROLE_ID Qt::UserRole + 2 -#define ROLE_STANDARD Qt::UserRole + 3 +#define ROLE_SORT Qt::UserRole +#define ROLE_ID Qt::UserRole + 1 +#define ROLE_STANDARD Qt::UserRole + 2 #define TYPE_GPG 0 #define TYPE_SSL 1 @@ -124,11 +124,13 @@ PeersDialog::PeersDialog(QWidget *parent) groupsHasChanged = false; m_compareRole = new RSTreeWidgetItemCompareRole; - m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME); + m_compareRole->setRole(COLUMN_NAME, ROLE_SORT); + m_compareRole->setRole(COLUMN_STATE, ROLE_SORT); connect( ui.peertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( peertreeWidgetCostumPopupMenu( QPoint ) ) ); connect( ui.peertreeWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int)), this, SLOT(chatfriend(QTreeWidgetItem *))); - + connect( ui.peertreeWidget->header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(peerSortIndicatorChanged(int,Qt::SortOrder))); + connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(updateOwnStatus(QString,int))); connect( ui.avatartoolButton, SIGNAL(clicked()), SLOT(getAvatar())); @@ -139,7 +141,8 @@ PeersDialog::PeersDialog(QWidget *parent) connect(ui.actionAdd_Friend, SIGNAL(triggered()), this, SLOT(addFriend())); connect(ui.action_Hide_Offline_Friends, SIGNAL(triggered()), this, SLOT(insertPeers())); - connect(ui.action_Sort_by_State, SIGNAL(triggered()), this, SLOT(sortByState())); + connect(ui.action_Hide_Status_Column, SIGNAL(triggered()), this, SLOT(setStateColumn())); + connect(ui.action_Sort_by_State, SIGNAL(triggered()), this, SLOT(setStateColumn())); connect(ui.actionSort_Peers_Ascending_Order, SIGNAL(triggered()), this, SLOT(sortPeersAscendingOrder())); connect(ui.actionSort_Peers_Descending_Order, SIGNAL(triggered()), this, SLOT(sortPeersDescendingOrder())); @@ -161,6 +164,9 @@ PeersDialog::PeersDialog(QWidget *parent) // set header text aligment QTreeWidgetItem * headerItem = ui.peertreeWidget->headerItem(); headerItem->setTextAlignment(COLUMN_NAME, Qt::AlignHCenter | Qt::AlignVCenter); + headerItem->setTextAlignment(COLUMN_STATE, Qt::AlignLeft | Qt::AlignVCenter); + + wasStatusColumnHidden = ui.peertreeWidget->isColumnHidden(COLUMN_STATE); connect(ui.Sendbtn, SIGNAL(clicked()), this, SLOT(sendMsg())); connect(ui.emoticonBtn, SIGNAL(clicked()), this, SLOT(smileyWidgetgroupchat())); @@ -229,6 +235,8 @@ PeersDialog::PeersDialog(QWidget *parent) // load settings processSettings(true); + ui.peertreeWidget->header()->setStretchLastSection(true); + // workaround for Qt bug, should be solved in next Qt release 4.7.0 // http://bugreports.qt.nokia.com/browse/QTBUG-8270 QShortcut *Shortcut = new QShortcut(QKeySequence (Qt::Key_Delete), ui.peertreeWidget, 0, 0, Qt::WidgetShortcut); @@ -269,14 +277,17 @@ void PeersDialog::processSettings(bool bLoad) // state of peer tree header->restoreState(Settings->value("PeerTree").toByteArray()); + wasStatusColumnHidden = ui.peertreeWidget->isColumnHidden(COLUMN_STATE); // state of hideUnconnected ui.action_Hide_Offline_Friends->setChecked(Settings->value("hideUnconnected", false).toBool()); // state of the status - ui.action_Sort_by_State->setChecked(Settings->value("sortByState", false).toBool()); ui.action_Hide_State->setChecked(Settings->value("hideState", false).toBool()); + // state of hideStatusColumn + ui.action_Hide_Status_Column->setChecked(Settings->value("hideStatusColumn", false).toBool()); + // state of splitter ui.splitter->restoreState(Settings->value("Splitter").toByteArray()); ui.splitter_2->restoreState(Settings->value("GroupChatSplitter").toByteArray()); @@ -290,7 +301,7 @@ void PeersDialog::processSettings(bool bLoad) } Settings->endArray(); - sortByState(); + setStateColumn(); } else { // save settings @@ -301,9 +312,11 @@ void PeersDialog::processSettings(bool bLoad) Settings->setValue("hideUnconnected", ui.action_Hide_Offline_Friends->isChecked()); // state of the status - Settings->setValue("sortByState", ui.action_Sort_by_State->isChecked()); Settings->setValue("hideState", ui.action_Hide_State->isChecked()); + // state of hideStatusColumn + Settings->setValue("hideStatusColumn", ui.action_Hide_Status_Column->isChecked()); + // state of splitter Settings->setValue("Splitter", ui.splitter->saveState()); Settings->setValue("GroupChatSplitter", ui.splitter_2->saveState()); @@ -575,7 +588,8 @@ void PeersDialog::insertPeers() } bool hideUnconnected = ui.action_Hide_Offline_Friends->isChecked(); - bool hideState = ui.action_Hide_State->isChecked(); + bool useStatusColumn = !ui.action_Hide_Status_Column->isChecked(); + bool showState = !ui.action_Hide_State->isChecked(); // get ids of existing private chat messages std::list privateChatIds; @@ -886,14 +900,18 @@ void PeersDialog::insertPeers() if (customStateString.isEmpty() == false) { sText += " - " + customStateString; } - if (hideState == false && sslDetail.autoconnect.empty() == false) { - sText += " [" + QString::fromStdString(sslDetail.autoconnect) + "]"; + if (sslDetail.autoconnect.empty() == false) { + if (useStatusColumn) { + sslItem->setText(COLUMN_STATE, QString::fromStdString(sslDetail.autoconnect)); + } else if (showState) { + sText += " [" + QString::fromStdString(sslDetail.autoconnect) + "]"; + } } sslItem->setText( COLUMN_NAME, sText); sslItem->setToolTip( COLUMN_NAME, sText); // sort location - sslItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, sText); + sslItem->setData(COLUMN_STATE, ROLE_SORT, sText); /* change color and icon */ QIcon sslIcon; @@ -1011,19 +1029,26 @@ void PeersDialog::insertPeers() gpgIcon = QIcon(StatusDefs::imageUser(bestRSState)); - gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState)); - gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, bestPeerState)); - if (hideState == false) { + if (useStatusColumn) { + gpgItem->setText(COLUMN_STATE, StatusDefs::name(bestRSState)); + } else if (showState) { gpgItemText += " [" + StatusDefs::name(bestRSState) + "]"; } + + gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState)); + gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, bestPeerState)); + gpgItem->setData(COLUMN_STATE, ROLE_SORT, BuildStateSortString(true, gpgItem->text(COLUMN_NAME), bestPeerState)); } else if (gpg_online) { + if (useStatusColumn) { + gpgItem->setText(COLUMN_STATE, tr("Available")); + } else if (showState) { + gpgItemText += " [" + tr("Available") + "]"; + } + onlineCount++; gpgItem->setHidden(hideUnconnected); gpgIcon = QIcon(IMAGE_AVAILABLE); - gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, PEER_STATE_AVAILABLE)); - if (hideState == false) { - gpgItemText += " [" + tr("Available") + "]"; - } + gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, PEER_STATE_AVAILABLE)); QFont font; font.setBold(true); @@ -1032,12 +1057,15 @@ void PeersDialog::insertPeers() gpgItem->setFont(i,font); } } else { + if (useStatusColumn) { + gpgItem->setText(COLUMN_STATE, StatusDefs::name(RS_STATUS_OFFLINE)); + } else if (showState) { + gpgItemText += " [" + StatusDefs::name(RS_STATUS_OFFLINE) + "]"; + } + gpgItem->setHidden(hideUnconnected); gpgIcon = QIcon(StatusDefs::imageUser(RS_STATUS_OFFLINE)); - gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, PEER_STATE_OFFLINE)); - if (hideState == false) { - gpgItemText += " [" + StatusDefs::name(RS_STATUS_OFFLINE) + "]"; - } + gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, PEER_STATE_OFFLINE)); QColor textColor = StatusDefs::textColor(RS_STATUS_OFFLINE); QFont font = StatusDefs::font(RS_STATUS_OFFLINE); @@ -1052,7 +1080,7 @@ void PeersDialog::insertPeers() } gpgItem->setText(COLUMN_NAME, gpgItemText); - gpgItem->setData(COLUMN_NAME, ROLE_SORT_NAME, "2 " + gpgItemText); + gpgItem->setData(COLUMN_NAME, ROLE_SORT, "2 " + gpgItemText); gpgItem->setIcon(COLUMN_NAME, gpgIcon); } @@ -1064,7 +1092,7 @@ void PeersDialog::insertPeers() QString groupName = GroupDefs::name(*groupInfo); groupItem->setText(COLUMN_NAME, QString("%1 (%2/%3)").arg(groupName).arg(onlineCount).arg(availableCount)); // show first the standard groups, than the user groups - groupItem->setData(COLUMN_NAME, ROLE_SORT_NAME, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName); + groupItem->setData(COLUMN_NAME, ROLE_SORT, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName); } } @@ -1990,28 +2018,49 @@ void PeersDialog::displayMenu() displaymenu->addAction(ui.actionSort_Peers_Ascending_Order); displaymenu->addAction(ui.action_Hide_Offline_Friends); displaymenu->addAction(ui.action_Sort_by_State); + displaymenu->addAction(ui.action_Hide_Status_Column); displaymenu->addAction(ui.action_Hide_State); ui.displayButton->setMenu(displaymenu); } -void PeersDialog::sortByState() +void PeersDialog::setStateColumn() { - if(ui.action_Sort_by_State->isChecked()) { - m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_STATUS); + if (ui.action_Hide_Status_Column->isChecked()) { + ui.peertreeWidget->setColumnHidden(COLUMN_STATE, true); + ui.peertreeWidget->setHeaderHidden(true); + ui.action_Hide_State->setEnabled(true); + wasStatusColumnHidden = true; } else { - m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME); + ui.peertreeWidget->setColumnHidden(COLUMN_STATE, false); + ui.peertreeWidget->setHeaderHidden(false); + ui.action_Hide_State->setEnabled(false); + if (wasStatusColumnHidden) { + ui.peertreeWidget->header()->resizeSection(COLUMN_NAME, ui.peertreeWidget->header()->sectionSize(COLUMN_NAME) - ui.peertreeWidget->header()->sectionSize(COLUMN_STATE)); + } + wasStatusColumnHidden = false; + } + + if(ui.action_Sort_by_State->isChecked()) { + ui.peertreeWidget->sortByColumn(COLUMN_STATE); + } else { + ui.peertreeWidget->sortByColumn(COLUMN_NAME); } } void PeersDialog::sortPeersAscendingOrder() { - ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::AscendingOrder); + ui.peertreeWidget->sortByColumn(ui.peertreeWidget->sortColumn(), Qt::AscendingOrder); } void PeersDialog::sortPeersDescendingOrder() { - ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::DescendingOrder); + ui.peertreeWidget->sortByColumn(ui.peertreeWidget->sortColumn(), Qt::DescendingOrder); +} + +void PeersDialog::peerSortIndicatorChanged(int column, Qt::SortOrder) +{ + ui.action_Sort_by_State->setChecked(column == COLUMN_STATE); } void PeersDialog::on_actionMessageHistory_triggered() diff --git a/retroshare-gui/src/gui/PeersDialog.h b/retroshare-gui/src/gui/PeersDialog.h index b00c907f4..49987fb9c 100644 --- a/retroshare-gui/src/gui/PeersDialog.h +++ b/retroshare-gui/src/gui/PeersDialog.h @@ -161,9 +161,10 @@ private slots: void setCurrentFileName(const QString &fileName); - void sortByState(); + void setStateColumn(); void sortPeersAscendingOrder(); void sortPeersDescendingOrder(); + void peerSortIndicatorChanged(int,Qt::SortOrder); void newsFeedChanged(int count); @@ -210,6 +211,7 @@ private: int newsFeedTabIndex; QColor newsFeedTabColor; QString newsFeedText; + bool wasStatusColumnHidden; /** Qt Designer generated object */ Ui::PeersDialog ui; diff --git a/retroshare-gui/src/gui/PeersDialog.ui b/retroshare-gui/src/gui/PeersDialog.ui index fb91cf74a..8981e054f 100644 --- a/retroshare-gui/src/gui/PeersDialog.ui +++ b/retroshare-gui/src/gui/PeersDialog.ui @@ -718,23 +718,22 @@ background: white;} false - - false - 200 200 - - false - Friends + + + Status + + @@ -1498,6 +1497,14 @@ p, li { white-space: pre-wrap; } Hide Offline Friends + + + true + + + Hide Status Column + + true diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 2caf332e3172ee5696e3b8dbb5fd5c54517b57b4..c7a1b194a947bdeccdf22dd2a0aaf737d1950a44 100644 GIT binary patch delta 7630 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 z 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 diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 0e36bece7..daa9d9dbc 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -7348,12 +7348,12 @@ p, li { white-space: pre-wrap; } PeersDialog - + Chat Chat - + Save Certificate Zertifikat speichern @@ -7363,31 +7363,32 @@ p, li { white-space: pre-wrap; } Zertifikate (*.pqi) + Status - Status + Status - + Connect To Friend Verbinde zum Freund - + Profile Profil - + Welcome to RetroShare's group chat. Willkommen bei RetroShare's Gruppenchat. - + me ich - + Group Gruppe @@ -7467,12 +7468,13 @@ p, li { white-space: pre-wrap; } Aus allen Gruppen entfernen - + + Available Verfügbar - + New group chat Neuer Gruppenchat @@ -7509,7 +7511,7 @@ p, li { white-space: pre-wrap; } Ordner können nicht für Drag'n'Drop genutzt werden. Nur Dateien werden akzeptiert. - + Italic Kursiv @@ -7519,7 +7521,7 @@ p, li { white-space: pre-wrap; } Unterstrichen - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -7537,7 +7539,7 @@ p, li { white-space: pre-wrap; } Hinzufügen - + Add or Change your Avatar Wähle oder ändere dein Avatar Bild @@ -7594,7 +7596,7 @@ p, li { white-space: pre-wrap; } Statusnachricht ändern - + Sort by State Sortiere nach Status @@ -7602,7 +7604,7 @@ p, li { white-space: pre-wrap; } Hide State - Status ausblenden + Status ausblenden @@ -7623,8 +7625,8 @@ p, li { white-space: pre-wrap; } Aufsteigend sortieren - - + + Add Friend Freund hinzufügen @@ -7679,12 +7681,12 @@ p, li { white-space: pre-wrap; } - + RetroShare - + Message Group Gruppe anschreiben @@ -7699,7 +7701,7 @@ p, li { white-space: pre-wrap; } Gruppe entfernen - + Do you want to remove this Friend? Willst du diesen Freund entfernen? @@ -7714,7 +7716,7 @@ p, li { white-space: pre-wrap; } Text Datei (*.txt );;Alle Dateien (*) - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -7727,26 +7729,27 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Anzeige</span></p></body></html> - + Hide Offline Friends Verstecke offline Freunde + Hide Status Column - Status Spalte ausblenden + Status Spalte ausblenden - + Friends Storm Aktivitäten - + is typing... tippt... - + Browse Message History Nachrichtenverlauf anzeigen @@ -7756,18 +7759,18 @@ p, li { white-space: pre-wrap; } Nachrichtenverlauf - + Friends Freunde - + Paste Friend Link RetroShare Link einfügen - + location Standort