From a41b1bcb3a7ac3a117a97351df226c787ae87068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 13 Mar 2009 20:00:01 +0000 Subject: [PATCH] * The shortcuts of the encodings shadowed other shortcuts, like Command-G to switch Terminals. I've not only removed that shortcut, though, I disabled all encoding shortcuts, as I frankly don't see any use for them beyond confusing users (by accidently hitting one of the 134 shortcuts). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29494 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/terminal/Coding.cpp | 13 +++++--- src/apps/terminal/MenuUtil.cpp | 37 ++++++++++++----------- src/apps/terminal/MenuUtil.h | 19 +++++------- src/apps/terminal/TermApp.cpp | 10 +++--- src/apps/terminal/TermWindow.cpp | 52 ++++++++++++++++++++------------ 5 files changed, 74 insertions(+), 57 deletions(-) diff --git a/src/apps/terminal/Coding.cpp b/src/apps/terminal/Coding.cpp index 899e09f461..3f701f2f1c 100644 --- a/src/apps/terminal/Coding.cpp +++ b/src/apps/terminal/Coding.cpp @@ -1,6 +1,13 @@ +/* + * Copyright 2003-2009 Haiku, Inc. + * Distributed under the terms of the MIT license. + */ + #include "Coding.h" + #include + struct etable { const char *name; // long name for menu item. const char *shortname; // short name (use for command-line etc.) @@ -8,12 +15,10 @@ struct etable { const int32 id; // encoding id }; - /* * encoding_table ... use encoding menu, message, and preference keys. */ -const static etable kEncodingTable[] = -{ +const static etable kEncodingTable[] = { {"UTF-8", "UTF8", 'U', M_UTF8}, {"ISO-8859-1", "8859-1", '1', B_ISO1_CONVERSION}, {"ISO-8859-2", "8859-2", '2', B_ISO2_CONVERSION}, @@ -30,7 +35,7 @@ const static etable kEncodingTable[] = {"Shift-JIS", "SJIS", 'S', B_SJIS_CONVERSION}, {"EUC-jp", "EUCJ", 'E', B_EUC_CONVERSION}, {"EUC-kr", "EUCK", 'K', B_EUC_KR_CONVERSION}, - {"GB18030", "GB18030", 'G', B_GBK_CONVERSION}, + {"GB18030", "GB18030", 0, B_GBK_CONVERSION}, {"Big5", "Big5", 'B', B_BIG5_CONVERSION}, /* Not Implemented. diff --git a/src/apps/terminal/MenuUtil.cpp b/src/apps/terminal/MenuUtil.cpp index 6288a5531d..54b7ebe9bc 100644 --- a/src/apps/terminal/MenuUtil.cpp +++ b/src/apps/terminal/MenuUtil.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2005, Haiku, Inc. + * Copyright (c) 2001-2009, Haiku, Inc. * Copyright (c) 2003-4 Kian Duffy * Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai. * Distributed under the terms of the MIT license. @@ -7,19 +7,21 @@ * Authors: * Kian Duffy */ -#include -#include -#include -#include -#include -#include #include "MenuUtil.h" -#include "TermConst.h" -#include "PrefHandler.h" -#include "Coding.h" -//#define LOCALE_FILE_DIR PREF_FOLDER"menu/" +#include +#include + +#include +#include +#include +#include + +#include "Coding.h" +#include "PrefHandler.h" +#include "TermConst.h" + BPopUpMenu * MakeMenu(ulong msg, const char **items, const char *defaultItemName) @@ -42,24 +44,25 @@ MakeMenu(ulong msg, const char **items, const char *defaultItemName) } - void -MakeEncodingMenu(BMenu *eMenu, bool flag) +MakeEncodingMenu(BMenu *eMenu, bool withShortcuts) { int encoding; int i = 0; while (get_nth_encoding(i, &encoding) == B_OK) { BMessage *msg = new BMessage(MENU_ENCODING); msg->AddInt32("op", (int32)encoding); - if (flag) - eMenu->AddItem(new BMenuItem(EncodingAsString(encoding), msg, id2shortcut(encoding))); - else + if (withShortcuts) { + eMenu->AddItem(new BMenuItem(EncodingAsString(encoding), msg, + id2shortcut(encoding))); + } else eMenu->AddItem(new BMenuItem(EncodingAsString(encoding), msg)); - + i++; } } + void LoadLocaleFile(PrefHandler *pref) { diff --git a/src/apps/terminal/MenuUtil.h b/src/apps/terminal/MenuUtil.h index 1da1e10e9c..757f0b83a2 100644 --- a/src/apps/terminal/MenuUtil.h +++ b/src/apps/terminal/MenuUtil.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2005, Haiku, Inc. + * Copyright (c) 2001-2009, Haiku, Inc. * Copyright (c) 2003-4 Kian Duffy * Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai. * Distributed under the terms of the MIT license. @@ -7,8 +7,8 @@ * Authors: * Kian Duffy */ -#ifndef MENUUTIL_H_INCLUDED -#define MENUUTIL_H_INCLUDED +#ifndef MENU_UTIL_H +#define MENU_UTIL_H #include @@ -17,12 +17,9 @@ class BPopUpMenu; class BMenu; class PrefHandler; -BPopUpMenu * MakeMenu(ulong msg, const char **items, - const char *defaultItemName); +BPopUpMenu* MakeMenu(ulong msg, const char** items, + const char* defaultItemName); +void MakeEncodingMenu(BMenu *eMenu, bool withShortcuts); +void LoadLocaleFile(PrefHandler* handler); -void MakeEncodingMenu(BMenu *eMenu, bool flag); -void LoadLocaleFile (PrefHandler *); - - - -#endif +#endif // MENU_UTIL_H diff --git a/src/apps/terminal/TermApp.cpp b/src/apps/terminal/TermApp.cpp index bd95475377..0cf839cc8e 100644 --- a/src/apps/terminal/TermApp.cpp +++ b/src/apps/terminal/TermApp.cpp @@ -295,10 +295,12 @@ TermApp::_SwitchTerm() bool TermApp::_IsSwitchTarget(team_id id) { + uint32 currentWorkspace = 1L << current_workspace(); + BMessenger app(TERM_SIGNATURE, id); if (app.IsTargetLocal()) { return !fTermWindow->IsMinimized() - && (fTermWindow->Workspaces() & (1L << current_workspace())) != 0; + && (fTermWindow->Workspaces() & currentWorkspace) != 0; } BMessage reply; @@ -311,13 +313,11 @@ TermApp::_IsSwitchTarget(team_id id) || reply.FindInt32("workspaces", &workspaces) != B_OK) return false; - return !minimized - && (workspaces & (1L << current_workspace())) != 0; + return !minimized && (workspaces & currentWorkspace) != 0; } -/*! - Checks if all teams that have an ID-to-team mapping in the message +/*! Checks if all teams that have an ID-to-team mapping in the message are still running. The IDs for teams that are gone will be made available again, and their mapping is removed from the message. diff --git a/src/apps/terminal/TermWindow.cpp b/src/apps/terminal/TermWindow.cpp index 7f6feac84a..3696d4f6fd 100644 --- a/src/apps/terminal/TermWindow.cpp +++ b/src/apps/terminal/TermWindow.cpp @@ -250,36 +250,46 @@ TermWindow::_SetupMenu() // Make File Menu. fFilemenu = new BMenu("Terminal"); - fFilemenu->AddItem(new BMenuItem("Switch Terminals", new BMessage(MENU_SWITCH_TERM),'G')); - fFilemenu->AddItem(new BMenuItem("New Terminal" B_UTF8_ELLIPSIS, new BMessage(MENU_NEW_TERM), 'N')); + fFilemenu->AddItem(new BMenuItem("Switch Terminals", + new BMessage(MENU_SWITCH_TERM),'G')); + fFilemenu->AddItem(new BMenuItem("New Terminal" B_UTF8_ELLIPSIS, + new BMessage(MENU_NEW_TERM), 'N')); fFilemenu->AddItem(new BMenuItem("New Tab", new BMessage(kNewTab), 'T')); fFilemenu->AddSeparatorItem(); - fFilemenu->AddItem(new BMenuItem("Page Setup" B_UTF8_ELLIPSIS, new BMessage(MENU_PAGE_SETUP))); + fFilemenu->AddItem(new BMenuItem("Page Setup" B_UTF8_ELLIPSIS, + new BMessage(MENU_PAGE_SETUP))); fFilemenu->AddItem(new BMenuItem("Print", new BMessage(MENU_PRINT),'P')); fFilemenu->AddSeparatorItem(); - fFilemenu->AddItem(new BMenuItem("About Terminal" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED))); + fFilemenu->AddItem(new BMenuItem("About Terminal" B_UTF8_ELLIPSIS, + new BMessage(B_ABOUT_REQUESTED))); fFilemenu->AddSeparatorItem(); - fFilemenu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); + fFilemenu->AddItem(new BMenuItem("Quit", + new BMessage(B_QUIT_REQUESTED), 'Q')); fMenubar->AddItem(fFilemenu); // Make Edit Menu. - fEditmenu = new BMenu ("Edit"); - fEditmenu->AddItem (new BMenuItem ("Copy", new BMessage (B_COPY),'C')); - fEditmenu->AddItem (new BMenuItem ("Paste", new BMessage (B_PASTE),'V')); + fEditmenu = new BMenu("Edit"); + fEditmenu->AddItem(new BMenuItem("Copy", new BMessage(B_COPY),'C')); + fEditmenu->AddItem(new BMenuItem("Paste", new BMessage(B_PASTE),'V')); fEditmenu->AddSeparatorItem(); - fEditmenu->AddItem (new BMenuItem ("Select All", new BMessage (B_SELECT_ALL), 'A')); - fEditmenu->AddItem (new BMenuItem ("Clear All", new BMessage (MENU_CLEAR_ALL), 'L')); + fEditmenu->AddItem(new BMenuItem("Select All", + new BMessage(B_SELECT_ALL), 'A')); + fEditmenu->AddItem(new BMenuItem("Clear All", + new BMessage(MENU_CLEAR_ALL), 'L')); fEditmenu->AddSeparatorItem(); - fEditmenu->AddItem (new BMenuItem ("Find" B_UTF8_ELLIPSIS, new BMessage (MENU_FIND_STRING),'F')); - fFindBackwardMenuItem = new BMenuItem ("Find Backward", new BMessage (MENU_FIND_BACKWARD), '['); + fEditmenu->AddItem(new BMenuItem("Find" B_UTF8_ELLIPSIS, + new BMessage(MENU_FIND_STRING),'F')); + fFindBackwardMenuItem = new BMenuItem("Find Backward", + new BMessage(MENU_FIND_BACKWARD), '['); fEditmenu->AddItem(fFindBackwardMenuItem); fFindBackwardMenuItem->SetEnabled(false); - fFindForwardMenuItem = new BMenuItem ("Find Forward", new BMessage (MENU_FIND_FORWARD), ']'); - fEditmenu->AddItem (fFindForwardMenuItem); + fFindForwardMenuItem = new BMenuItem("Find Forward", + new BMessage(MENU_FIND_FORWARD), ']'); + fEditmenu->AddItem(fFindForwardMenuItem); fFindForwardMenuItem->SetEnabled(false); - fMenubar->AddItem (fEditmenu); + fMenubar->AddItem(fEditmenu); // Make Help Menu. fHelpmenu = new BMenu("Settings"); @@ -288,15 +298,17 @@ TermWindow::_SetupMenu() fEncodingmenu = new BMenu("Text Encoding"); fEncodingmenu->SetRadioMode(true); - MakeEncodingMenu(fEncodingmenu, true); + MakeEncodingMenu(fEncodingmenu, false); fHelpmenu->AddItem(fWindowSizeMenu); fHelpmenu->AddItem(fEncodingmenu); fHelpmenu->AddSeparatorItem(); - fHelpmenu->AddItem(new BMenuItem("Preferences" B_UTF8_ELLIPSIS, new BMessage(MENU_PREF_OPEN))); + fHelpmenu->AddItem(new BMenuItem("Preferences" B_UTF8_ELLIPSIS, + new BMessage(MENU_PREF_OPEN))); fHelpmenu->AddSeparatorItem(); - fHelpmenu->AddItem(new BMenuItem("Save as default", new BMessage(SAVE_AS_DEFAULT))); + fHelpmenu->AddItem(new BMenuItem("Save as default", + new BMessage(SAVE_AS_DEFAULT))); fMenubar->AddItem(fHelpmenu); - + AddChild(fMenubar); } @@ -320,7 +332,7 @@ TermWindow::MessageReceived(BMessage *message) { int32 encodingId; bool findresult; - + switch (message->what) { case B_COPY: _ActiveTermView()->Copy(be_clipboard);