linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #02615
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2316: add more menu titles
------------------------------------------------------------
revno: 2316
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Wed 2010-12-01 18:58:05 +0100
message:
add more menu titles
modified:
win32/DirectoryListingFrame.cpp
win32/DirectoryListingFrame.h
win32/FinishedFrameBase.h
win32/PublicHubsFrame.cpp
win32/PublicHubsFrame.h
win32/QueueFrame.cpp
win32/SystemFrame.cpp
win32/TransferView.cpp
win32/TransferView.h
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'win32/DirectoryListingFrame.cpp'
--- win32/DirectoryListingFrame.cpp 2010-11-21 15:59:18 +0000
+++ win32/DirectoryListingFrame.cpp 2010-12-01 17:58:05 +0000
@@ -386,6 +386,8 @@
ShellMenuPtr DirectoryListingFrame::makeSingleMenu(ItemInfo* ii) {
ShellMenuPtr menu = addChild(ShellMenu::Seed());
+ menu->setTitle(escapeMenu(ii->getText(COLUMN_FILENAME)), WinUtil::fileImages->getIcon(ii->getImage()));
+
menu->appendItem(T_("&Download"), std::bind(&DirectoryListingFrame::handleDownload, this), dwt::IconPtr(), true, true);
addTargets(menu, ii);
@@ -410,6 +412,9 @@
ShellMenuPtr DirectoryListingFrame::makeMultiMenu() {
ShellMenuPtr menu = addChild(ShellMenu::Seed());
+ size_t sel = files->countSelected();
+ menu->setTitle(str(TF_("%1% items") % sel), getParent()->getIcon(this));
+
menu->appendItem(T_("&Download"), std::bind(&DirectoryListingFrame::handleDownload, this), dwt::IconPtr(), true, true);
addTargets(menu);
addUserCommands(menu);
@@ -417,9 +422,12 @@
return menu;
}
-ShellMenuPtr DirectoryListingFrame::makeDirMenu() {
+ShellMenuPtr DirectoryListingFrame::makeDirMenu(ItemInfo* ii) {
ShellMenuPtr menu = addChild(ShellMenu::Seed());
+ menu->setTitle(escapeMenu(ii ? ii->getText(COLUMN_FILENAME) : getText()),
+ ii ? WinUtil::fileImages->getIcon(ii->getImage()) : getParent()->getIcon(this));
+
menu->appendItem(T_("&Download"), std::bind(&DirectoryListingFrame::handleDownload, this), dwt::IconPtr(), true, true);
addTargets(menu);
return menu;
@@ -429,14 +437,14 @@
prepareMenu(parent, UserCommand::CONTEXT_FILELIST, ClientManager::getInstance()->getHubs(dl->getUser().user->getCID(), dl->getUser().hint));
}
-void DirectoryListingFrame::addShellPaths(const ShellMenuPtr& menu, vector<ItemInfo*> sel) {
+void DirectoryListingFrame::addShellPaths(const ShellMenuPtr& menu, const vector<ItemInfo*>& sel) {
StringList ShellMenuPaths;
- for(vector<ItemInfo*>::const_iterator i = sel.begin(), iend = sel.end(); i != iend; ++i) {
+ for(auto i = sel.cbegin(), iend = sel.cend(); i != iend; ++i) {
ItemInfo* ii = *i;
StringList paths;
switch(ii->type) {
- case ItemInfo::FILE: paths = dl->getLocalPaths(ii->file); break;
- case ItemInfo::DIRECTORY: paths = dl->getLocalPaths(ii->dir); break;
+ case ItemInfo::FILE: paths = dl->getLocalPaths(ii->file); break;
+ case ItemInfo::DIRECTORY: paths = dl->getLocalPaths(ii->dir); break;
}
if(!paths.empty())
ShellMenuPaths.insert(ShellMenuPaths.end(), paths.begin(), paths.end());
@@ -500,7 +508,7 @@
if(dl->getUser() == ClientManager::getInstance()->getMe()) {
vector<ItemInfo*> sel;
- for(std::vector<unsigned>::const_iterator i = selected.begin(), iend = selected.end(); i != iend; ++i)
+ for(auto i = selected.cbegin(), iend = selected.cend(); i != iend; ++i)
sel.push_back(files->getData(*i));
addShellPaths(menu, sel);
}
@@ -522,12 +530,11 @@
}
if(dirs->getSelected()) {
- ShellMenuPtr menu = makeDirMenu();
+ ItemInfo* ii = dirs->getSelectedData();
+ ShellMenuPtr menu = makeDirMenu(ii);
- if(dl->getUser() == ClientManager::getInstance()->getMe()) {
- ItemInfo* ii = dirs->getSelectedData();
- if(ii)
- addShellPaths(menu, vector<ItemInfo*>(1, ii));
+ if(ii && dl->getUser() == ClientManager::getInstance()->getMe()) {
+ addShellPaths(menu, vector<ItemInfo*>(1, ii));
}
addUserMenu(menu);
=== modified file 'win32/DirectoryListingFrame.h'
--- win32/DirectoryListingFrame.h 2010-11-21 15:59:18 +0000
+++ win32/DirectoryListingFrame.h 2010-12-01 17:58:05 +0000
@@ -200,13 +200,13 @@
ShellMenuPtr makeSingleMenu(ItemInfo* ii);
ShellMenuPtr makeMultiMenu();
- ShellMenuPtr makeDirMenu();
+ ShellMenuPtr makeDirMenu(ItemInfo* ii);
void runUserCommand(const UserCommand& uc);
void addTargets(const MenuPtr& menu, ItemInfo* ii = 0);
void addUserCommands(const MenuPtr& menu);
- void addShellPaths(const ShellMenuPtr& menu, vector<ItemInfo*> sel);
+ void addShellPaths(const ShellMenuPtr& menu, const vector<ItemInfo*>& sel);
void addUserMenu(const MenuPtr& menu);
void handleFind();
=== modified file 'win32/FinishedFrameBase.h'
--- win32/FinishedFrameBase.h 2010-08-06 21:02:04 +0000
+++ win32/FinishedFrameBase.h 2010-12-01 17:58:05 +0000
@@ -419,15 +419,18 @@
};
bool handleFilesContextMenu(dwt::ScreenCoordinate pt) {
- if(files->hasSelected()) {
+ size_t sel = files->countSelected();
+ if(sel) {
if(pt.x() == -1 && pt.y() == -1) {
pt = files->getContextMenuPos();
}
FileChecker checker = files->forEachSelectedT(FileChecker());
+ auto selData = (sel == 1) ? files->getSelectedData() : 0;
ShellMenuPtr menu = filesWindow->addChild(ShellMenu::Seed());
-
+ menu->setTitle(selData ? escapeMenu(selData->getText(FILES_COLUMN_FILE)) : str(TF_("%1% files") % sel),
+ selData ? WinUtil::fileImages->getIcon(selData->getImage()) : tabs->getIcon(filesWindow));
menu->appendItem(T_("&View as text"), std::bind(&ThisType::handleViewAsText, this), dwt::IconPtr(), checker.allFilesExist && !checker.isBz2);
menu->appendItem(T_("&Open"), std::bind(&ThisType::handleOpenFile, this), dwt::IconPtr(), checker.allFilesExist, true);
menu->appendItem(T_("Open &folder"), std::bind(&ThisType::handleOpenFolder, this));
@@ -445,12 +448,17 @@
}
bool handleUsersContextMenu(dwt::ScreenCoordinate pt) {
- if(users->hasSelected()) {
+ size_t sel = users->countSelected();
+ if(sel) {
if(pt.x() == -1 && pt.y() == -1) {
pt = users->getContextMenuPos();
}
+ auto selData = (sel == 1) ? users->getSelectedData() : 0;
+
dwt::MenuPtr menu = usersWindow->addChild(WinUtil::Seeds::menu);
+ menu->setTitle(selData ? escapeMenu(selData->getText(USERS_COLUMN_NICK)) : str(TF_("%1% users") % sel),
+ selData ? WinUtil::userImages->getIcon(selData->getImage()) : tabs->getIcon(usersWindow));
menu->appendItem(T_("&Remove"), std::bind(&ThisType::handleRemoveUsers, this));
menu->appendItem(T_("Remove &all"), std::bind(&ThisType::handleRemoveAll, this));
menu->appendSeparator();
=== modified file 'win32/PublicHubsFrame.cpp'
--- win32/PublicHubsFrame.cpp 2010-11-25 18:35:55 +0000
+++ win32/PublicHubsFrame.cpp 2010-12-01 17:58:05 +0000
@@ -428,6 +428,7 @@
}
MenuPtr menu = addChild(WinUtil::Seeds::menu);
+ menu->setTitle(escapeMenu(hubs->getSelectedData()->getText(COLUMN_NAME)), getParent()->getIcon(this));
menu->appendItem(T_("&Connect"), std::bind(&PublicHubsFrame::handleConnect, this), dwt::IconPtr(), true, true);
menu->appendItem(T_("Add To &Favorites"), std::bind(&PublicHubsFrame::handleAdd, this), WinUtil::menuIcon(IDI_FAVORITE_HUBS));
menu->appendItem(T_("Copy &address to clipboard"), std::bind(&PublicHubsFrame::handleCopyHub, this));
=== modified file 'win32/PublicHubsFrame.h'
--- win32/PublicHubsFrame.h 2010-09-30 17:34:28 +0000
+++ win32/PublicHubsFrame.h 2010-12-01 17:58:05 +0000
@@ -84,7 +84,10 @@
static int compareItems(const HubInfo* a, const HubInfo* b, int col);
const tstring& getText(int column) const { return columns[column]; }
int getImage() const { return 0; }
+
const HubEntry* entry;
+
+ private:
tstring columns[COLUMN_LAST];
};
=== modified file 'win32/QueueFrame.cpp'
--- win32/QueueFrame.cpp 2010-11-30 18:21:53 +0000
+++ win32/QueueFrame.cpp 2010-12-01 17:58:05 +0000
@@ -849,6 +849,8 @@
MenuPtr QueueFrame::makeSingleMenu(QueueItemInfo* qii) {
MenuPtr menu = addChild(WinUtil::Seeds::menu);
+ menu->setTitle(escapeMenu(qii->getText(COLUMN_TARGET)), WinUtil::fileImages->getIcon(qii->getImage()));
+
WinUtil::addHashItems(menu, qii->getTTH(), Text::toT(Util::getFileName(qii->getTarget())), qii->getSize());
menu->appendItem(T_("&Move/Rename"), std::bind(&QueueFrame::handleMove, this));
menu->appendItem(T_("Re&check integrity"), std::bind(&QueueFrame::handleRecheck, this));
@@ -865,6 +867,10 @@
MenuPtr QueueFrame::makeMultiMenu() {
MenuPtr menu = addChild(WinUtil::Seeds::menu);
+
+ size_t sel = files->countSelected();
+ menu->setTitle(str(TF_("%1% files") % sel), getParent()->getIcon(this));
+
menu->appendItem(T_("&Move/Rename"), std::bind(&QueueFrame::handleMove, this));
menu->appendItem(T_("Re&check integrity"), std::bind(&QueueFrame::handleRecheck, this));
addPriorityMenu(menu);
@@ -876,6 +882,10 @@
MenuPtr QueueFrame::makeDirMenu() {
MenuPtr menu = addChild(WinUtil::Seeds::menu);
+ auto selData = dirs->getSelectedData();
+ menu->setTitle(escapeMenu(selData ? selData->getText() : getText()),
+ selData ? WinUtil::fileImages->getIcon(selData->getImage()) : getParent()->getIcon(this));
+
addPriorityMenu(menu);
menu->appendItem(T_("&Move/Rename"), std::bind(&QueueFrame::handleMove, this));
menu->appendSeparator();
@@ -946,7 +956,8 @@
}
bool QueueFrame::handleFilesContextMenu(dwt::ScreenCoordinate pt) {
- if(files->countSelected() > 0) {
+ size_t sel = files->countSelected();
+ if(sel) {
if(pt.x() == -1 || pt.y() == -1) {
pt = files->getContextMenuPos();
}
@@ -960,8 +971,8 @@
} else {
contextMenu = makeMultiMenu();
}
+
contextMenu->open(pt);
-
return true;
}
return false;
@@ -977,8 +988,8 @@
if(dirs->hasSelected()) {
usingDirMenu = true;
MenuPtr contextMenu = makeDirMenu();
+
contextMenu->open(pt);
-
return true;
}
=== modified file 'win32/SystemFrame.cpp'
--- win32/SystemFrame.cpp 2010-07-10 14:36:48 +0000
+++ win32/SystemFrame.cpp 2010-12-01 17:58:05 +0000
@@ -97,6 +97,7 @@
string path_a = Text::fromT(path);
if(File::getSize(path_a) != -1) {
ShellMenuPtr menu = addChild(ShellMenu::Seed());
+ menu->setTitle(escapeMenu(path), WinUtil::fileImages->getIcon(WinUtil::getIconIndex(path)));
menu->appendItem(T_("&Open"), std::bind(&WinUtil::openFile, path), dwt::IconPtr(), true, true);
menu->appendItem(T_("Open &folder"), std::bind(&WinUtil::openFolder, path));
menu->appendShellMenu(StringList(1, path_a));
=== modified file 'win32/TransferView.cpp'
--- win32/TransferView.cpp 2010-10-20 20:49:31 +0000
+++ win32/TransferView.cpp 2010-12-01 17:58:05 +0000
@@ -183,47 +183,62 @@
return 0;
}
-MenuPtr TransferView::makeContextMenu(ConnectionInfo* ii) {
- MenuPtr menu = addChild(WinUtil::Seeds::menu);
-
- appendUserItems(mdi, menu, false);
- menu->appendSeparator();
-
- menu->appendItem(T_("&Force attempt"), std::bind(&TransferView::handleForce, this));
- menu->appendItem(T_("Copy &nick to clipboard"), std::bind(&TransferView::handleCopyNick, this));
- menu->appendSeparator();
- menu->appendItem(T_("&Disconnect"), std::bind(&TransferView::handleDisconnect, this));
-
- return menu;
-}
-
bool TransferView::handleConnectionsMenu(dwt::ScreenCoordinate pt) {
- if (connections->hasSelected()) {
+ size_t sel = connections->countSelected();
+ if(sel) {
if(pt.x() == -1 && pt.y() == -1) {
pt = connections->getContextMenuPos();
}
- /// @todo Fix multiple selection menu...
- ConnectionInfo* ii = connections->getSelectedData();
- MenuPtr contextMenu = makeContextMenu(ii);
- contextMenu->open(pt);
-
+ auto selData = (sel == 1) ? connections->getSelectedData() : 0;
+
+ MenuPtr menu = addChild(WinUtil::Seeds::menu);
+
+ menu->setTitle(selData ? escapeMenu(selData->getText(CONNECTION_COLUMN_USER)) : str(TF_("%1% users") % sel),
+ selData ? arrows->getIcon(selData->getImage()) : 0);
+
+ appendUserItems(mdi, menu, false);
+ menu->appendSeparator();
+
+ menu->appendItem(T_("&Force attempt"), std::bind(&TransferView::handleForce, this));
+ menu->appendItem(T_("Copy &nick to clipboard"), std::bind(&TransferView::handleCopyNick, this));
+ menu->appendSeparator();
+ menu->appendItem(T_("&Disconnect"), std::bind(&TransferView::handleDisconnect, this));
+
+ menu->open(pt);
return true;
}
return false;
}
bool TransferView::handleDownloadsMenu(dwt::ScreenCoordinate pt) {
- if (downloads->countSelected() == 1) {
+ size_t sel = downloads->countSelected();
+ if(sel) {
if(pt.x() == -1 && pt.y() == -1) {
pt = downloads->getContextMenuPos();
}
+ auto selData = (sel == 1) ? downloads->getSelectedData() : 0;
+
MenuPtr menu = addChild(WinUtil::Seeds::menu);
- DownloadInfo* di = downloads->getSelectedData();
- WinUtil::addHashItems(menu, di->tth, di->columns[DOWNLOAD_COLUMN_FILE], di->size);
+
+ menu->setTitle(selData ? escapeMenu(selData->getText(DOWNLOAD_COLUMN_FILE)) : str(TF_("%1% files") % sel),
+ selData ? WinUtil::fileImages->getIcon(selData->getImage()) : 0);
+
+ if(selData) {
+ WinUtil::addHashItems(menu, selData->tth, selData->getText(DOWNLOAD_COLUMN_FILE), selData->size);
+ } else {
+ for(size_t i = 0; i < sel; ++i) {
+ selData = downloads->getData(i);
+ if(selData) {
+ const tstring& file = selData->getText(DOWNLOAD_COLUMN_FILE);
+ WinUtil::addHashItems(menu->appendPopup(file, WinUtil::fileImages->getIcon(selData->getImage())),
+ selData->tth, file, selData->size);
+ }
+ }
+ }
+
menu->open(pt);
-
return true;
}
return false;
=== modified file 'win32/TransferView.h'
--- win32/TransferView.h 2010-10-20 20:49:31 +0000
+++ win32/TransferView.h 2010-12-01 17:58:05 +0000
@@ -265,8 +265,6 @@
bool handleKeyDown(int c);
void handleDblClicked();
- MenuPtr makeContextMenu(ConnectionInfo* ii);
-
int find(const string& path);
void layout();