diff -ruN orig/src/java/net/sourceforge/rssowl/controller/BrowserPanel.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/BrowserPanel.java --- orig/src/java/net/sourceforge/rssowl/controller/BrowserPanel.java 2004-09-21 13:38:44.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/BrowserPanel.java 2004-10-30 19:11:35.000000000 +0200 @@ -158,6 +158,10 @@ /** Launch URL in Browser */ browser.setUrl(url); + + /** Might be hidden */ + if (!browserPanel.isVisible()) + browserPanel.setVisible(true); } /** diff -ruN orig/src/java/net/sourceforge/rssowl/controller/GUI.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/GUI.java --- orig/src/java/net/sourceforge/rssowl/controller/GUI.java 2004-09-21 13:38:44.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/GUI.java 2004-10-31 01:58:07.000000000 +0200 @@ -654,6 +654,7 @@ GlobalSettings.showChannelInfo = rssOwlSettingsParser.getBoolean("showChannelInfo", true); GlobalSettings.directOpenEachNews = rssOwlSettingsParser.getBoolean("directOpenEachNews", false); GlobalSettings.openNewBrowserWindow = rssOwlSettingsParser.getBoolean("openNewBrowserWindow", true); + GlobalSettings.useNewsviewAsBrowser = rssOwlSettingsParser.getBoolean("useNewsviewAsBrowser", false); GlobalSettings.checkUpdate = rssOwlSettingsParser.getBoolean("checkUpdate", true); GlobalSettings.isDoubleClickOpen = rssOwlSettingsParser.getBoolean("isDoubleClickOpen", true); GlobalSettings.focusNewTabs = rssOwlSettingsParser.getBoolean("focusNewTabs", true); diff -ruN orig/src/java/net/sourceforge/rssowl/controller/NewsTabFolder.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/NewsTabFolder.java --- orig/src/java/net/sourceforge/rssowl/controller/NewsTabFolder.java 2004-09-21 13:38:46.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/NewsTabFolder.java 2004-10-30 19:13:02.000000000 +0200 @@ -287,6 +287,10 @@ */ public Browser createBrowserPopupTab(boolean grabFocus) { + /** If the user is in single-tab mode, don't open popups. */ + if (GlobalSettings.displaySingleTab) + return null; + /** Create a new CTabItem with a Browser */ final CTabItem tabItem = new CTabItem(newsHeaderTabFolder, SWT.NONE); BrowserPanel rssOwlBrowser = new BrowserPanel(rssOwlGui, newsHeaderTabFolder, true); diff -ruN orig/src/java/net/sourceforge/rssowl/controller/NewsText.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/NewsText.java --- orig/src/java/net/sourceforge/rssowl/controller/NewsText.java 2004-09-21 13:38:44.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/NewsText.java 2004-10-31 02:17:15.000000000 +0200 @@ -30,6 +30,7 @@ import net.sourceforge.rssowl.util.GlobalSettings; import net.sourceforge.rssowl.util.SearchpatternParser; import net.sourceforge.rssowl.util.i18n.ITranslatable; +import net.sourceforge.rssowl.util.shop.BrowserShop; import net.sourceforge.rssowl.util.shop.CursorShop; import net.sourceforge.rssowl.util.shop.FontShop; import net.sourceforge.rssowl.util.shop.LayoutDataShop; @@ -551,15 +552,11 @@ } /** - * Display the selected news in the internal browser This will display Title - * and URL of the news as usual and show the description (plus possible - * enclosures, comments, source) in the internal browser. + * Sets up the internal browser to display an item if + * possible. */ - private void displayNewsInBrowser() { - - /** Display title and link of the news */ - displayNewsMetaInfo(); - + private void createBrowser() throws SWTError { + /** Create the browser if not yet done */ if (browser == null) { try { @@ -588,17 +585,59 @@ /** Create styled text and display news */ createStyledText(); - - /** Display news in StyledText */ - displayNews(rssNewsItem); + + throw e; } } + } + + /** + * Display the selected news in the internal browser This will display Title + * and URL of the news as usual and show the description (plus possible + * enclosures, comments, source) in the internal browser. + */ + private void displayNewsInBrowser() { + + /** Display title and link of the news */ + displayNewsMetaInfo(); + + try { + createBrowser(); + } + catch (SWTError e) { + displayNews(rssNewsItem); + } /** Let the browser display the rest of the news */ if (browser != null) browser.displayNews(rssNewsItem); } + /** + * Load an url in the browser panel. + * + * @param item Item to load + */ + public void loadUrl(RSSNewsItem item) { + + try { + createBrowser(); + + /** Let the browser display the URL */ + if (browser != null) + { + displayNews(item); + + browser.setBlockNav(false); + browser.openUrl(item.getLink()); + } + } + catch (SWTError e) { + /** Load URL in external browser instead */ + BrowserShop.openLink(item.getLink()); + } + } + /** * Display selected news in a StyledText */ @@ -1192,8 +1231,10 @@ * If this newsItem has no description and the user chose to directOpen, * open Link */ - if (rssNewsItem.getDescription() == null && GlobalSettings.directOpenNews && rssNewsItem.getLink() != null && !rssNewsItem.getLink().equals("")) { - eventManager.actionOpenURL(url); + if (rssNewsItem.getDescription() == null && rssNewsItem.getLink() != null && !rssNewsItem.getLink().equals("")) { + if (GlobalSettings.useNewsviewAsBrowser) + loadUrl(rssNewsItem); + else eventManager.actionOpenURL(url); } /** User chose to open each news */ diff -ruN orig/src/java/net/sourceforge/rssowl/controller/properties/BrowserProperties.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/BrowserProperties.java --- orig/src/java/net/sourceforge/rssowl/controller/properties/BrowserProperties.java 2004-09-21 13:38:46.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/BrowserProperties.java 2004-10-31 02:06:46.000000000 +0200 @@ -55,6 +55,7 @@ public class BrowserProperties extends PropertyPage { private Button openBrowserExternCheck; private Button openNewBrowserWindowCheck; + private Button useNewsviewAsBrowserCheck; Text browserArguments; Text browserPath; @@ -79,6 +80,7 @@ if (GlobalSettings.useInternalBrowser()) { GlobalSettings.openNewBrowserWindow = openNewBrowserWindowCheck.getSelection(); GlobalSettings.openBrowserExtern = openBrowserExternCheck.getSelection(); + GlobalSettings.useNewsviewAsBrowser = useNewsviewAsBrowserCheck.getSelection(); } updatePropertiesChangeManager(); @@ -99,6 +101,7 @@ if (GlobalSettings.useInternalBrowser()) { propertyChangeManager.setOpenBrowserInNewTab(openNewBrowserWindowCheck.getSelection()); propertyChangeManager.setOpenBrowserExtern(openBrowserExternCheck.getSelection()); + propertyChangeManager.setUseNewsviewAsBrowser(useNewsviewAsBrowserCheck.getSelection()); } } @@ -202,6 +205,14 @@ openBrowserExternCheck.setText(GUI.i18n.getTranslation("MENU_BROWSER_EXTERN")); openBrowserExternCheck.setFont(dialogFont); + /** Check-Button */ + useNewsviewAsBrowserCheck = new Button(settingsGroup, SWT.CHECK); + useNewsviewAsBrowserCheck.setLayoutData(LayoutDataShop.createGridData(GridData.FILL_HORIZONTAL, 2)); + useNewsviewAsBrowserCheck.setSelection(propertyChangeManager.getUseNewsviewAsBrowser()); + //useNewsviewAsBrowserCheck.setText(GUI.i18n.getTranslation("MENU_BROWSER_NEWSVIEW")); + useNewsviewAsBrowserCheck.setText("Use newsview as browser for empty news"); + useNewsviewAsBrowserCheck.setFont(dialogFont); + /** Fill with some spacer */ LayoutShop.setDialogSpacer(composite, 2, 1); } diff -ruN orig/src/java/net/sourceforge/rssowl/controller/properties/PropertyChangeManager.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/PropertyChangeManager.java --- orig/src/java/net/sourceforge/rssowl/controller/properties/PropertyChangeManager.java 2004-09-21 13:38:46.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/PropertyChangeManager.java 2004-10-31 02:09:17.000000000 +0200 @@ -78,6 +78,7 @@ private boolean markFeedReadOnTabClose; private boolean openBrowserExtern; private boolean openBrowserInNewTab; + private boolean useNewsviewAsBrowser; private Hashtable proxySettingsSave; private boolean reopenFeeds; private GUI rssOwlGui; @@ -268,6 +269,13 @@ public Font getTreeFont() { return treeFont; } + + /** + * @return Returns the useNewsviewAsBrowser. + */ + public boolean getUseNewsviewAsBrowser() { + return useNewsviewAsBrowser; + } /** * @return Returns the autoOpenEachNews. @@ -453,6 +461,7 @@ if (GlobalSettings.useInternalBrowser()) { GlobalSettings.openNewBrowserWindow = openBrowserInNewTab; GlobalSettings.openBrowserExtern = openBrowserExtern; + GlobalSettings.useNewsviewAsBrowser = useNewsviewAsBrowser; } /** Language */ @@ -899,6 +908,13 @@ public void setTreeFont(Font treeFont) { this.treeFont = treeFont; } + + /** + * @param useNewsviewAsBrowser The useNewsviewAsBrowser to set. + */ + public void setUseNewsviewAsBrowser(boolean useNewsviewAsBrowser) { + this.useNewsviewAsBrowser = useNewsviewAsBrowser; + } /** * @param updateAllFavorites The updateAllFavorites to set. diff -ruN orig/src/java/net/sourceforge/rssowl/controller/properties/PropertyPage.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/PropertyPage.java --- orig/src/java/net/sourceforge/rssowl/controller/properties/PropertyPage.java 2004-09-21 13:38:46.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/controller/properties/PropertyPage.java 2004-10-31 02:12:27.000000000 +0200 @@ -137,6 +137,7 @@ if (GlobalSettings.useInternalBrowser()) { propertyChangeManager.setOpenBrowserExtern(GlobalSettings.openBrowserExtern); propertyChangeManager.setOpenBrowserInNewTab(GlobalSettings.openNewBrowserWindow); + propertyChangeManager.setUseNewsviewAsBrowser(GlobalSettings.useNewsviewAsBrowser); } propertyChangeManager.setThreeColumnGUI(GlobalSettings.isThreeColumnGUI); diff -ruN orig/src/java/net/sourceforge/rssowl/dao/SettingsFactory.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/dao/SettingsFactory.java --- orig/src/java/net/sourceforge/rssowl/dao/SettingsFactory.java 2004-09-21 13:38:46.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/dao/SettingsFactory.java 2004-10-31 02:12:13.000000000 +0200 @@ -250,6 +250,9 @@ /** Save openBrowserExtern */ saveBoolean("openBrowserExtern", GlobalSettings.openBrowserExtern, root); + + /** Save useNewsviewAsBrowser */ + saveBoolean("useNewsviewAsBrowser", GlobalSettings.useNewsviewAsBrowser, root); /** Save focusNewTabs */ if (!GlobalSettings.focusNewTabs) diff -ruN orig/src/java/net/sourceforge/rssowl/util/GlobalSettings.java rssowl_0_9b_src/src/java/net/sourceforge/rssowl/util/GlobalSettings.java --- orig/src/java/net/sourceforge/rssowl/util/GlobalSettings.java 2004-09-21 13:38:42.000000000 +0200 +++ rssowl_0_9b_src/src/java/net/sourceforge/rssowl/util/GlobalSettings.java 2004-10-31 01:49:37.000000000 +0200 @@ -131,6 +131,12 @@ * FALSE: Display multiple tabs */ public static boolean displaySingleTab; + + /** + * TRUE: Use Newsview as browser for emtpy news + * FALSE: Dont + */ + public static boolean useNewsviewAsBrowser; /** * TRUE: Focus on new opened tabs