mirror of
https://github.com/ckaczor/FeedCenter.git
synced 2026-01-13 17:22:48 -05:00
More UI updates
This commit is contained in:
@@ -6,130 +6,129 @@ using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace FeedCenter
|
||||
namespace FeedCenter;
|
||||
|
||||
public partial class MainWindow
|
||||
{
|
||||
public partial class MainWindow
|
||||
private void HandleLinkTextListMouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
private void HandleLinkTextListMouseUp(object sender, MouseButtonEventArgs e)
|
||||
switch (e.ChangedButton)
|
||||
{
|
||||
switch (e.ChangedButton)
|
||||
{
|
||||
case MouseButton.XButton1:
|
||||
case MouseButton.XButton1:
|
||||
|
||||
PreviousFeed();
|
||||
break;
|
||||
PreviousFeed();
|
||||
break;
|
||||
|
||||
case MouseButton.XButton2:
|
||||
case MouseButton.XButton2:
|
||||
|
||||
NextFeed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleItemMouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Only handle the middle button
|
||||
if (e.ChangedButton != MouseButton.Middle)
|
||||
return;
|
||||
|
||||
// Get the feed item
|
||||
var feedItem = (FeedItem) ((ListBoxItem) sender).DataContext;
|
||||
|
||||
// The feed item has been read and is no longer new
|
||||
_database.SaveChanges(() =>
|
||||
{
|
||||
feedItem.BeenRead = true;
|
||||
feedItem.New = false;
|
||||
});
|
||||
|
||||
// Remove the item from the list
|
||||
LinkTextList.Items.Remove(feedItem);
|
||||
}
|
||||
|
||||
private void HandleItemMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Get the feed item
|
||||
var feedItem = (FeedItem) ((ListBoxItem) sender).DataContext;
|
||||
|
||||
// Try to open the item link
|
||||
if (!InstalledBrowser.OpenLink(Settings.Default.Browser, feedItem.Link))
|
||||
return;
|
||||
|
||||
// The feed item has been read and is no longer new
|
||||
_database.SaveChanges(() =>
|
||||
{
|
||||
feedItem.BeenRead = true;
|
||||
feedItem.New = false;
|
||||
});
|
||||
|
||||
// Remove the item from the list
|
||||
LinkTextList.Items.Remove(feedItem);
|
||||
}
|
||||
|
||||
private void HandleFeedButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Create a new context menu
|
||||
var contextMenu = new ContextMenu();
|
||||
|
||||
// Loop over each feed
|
||||
foreach (var feed in _feedList.OrderBy(feed => feed.Name))
|
||||
{
|
||||
// Build a string to display the feed name and the unread count
|
||||
var display = $"{feed.Name} ({feed.Items.Count(item => !item.BeenRead):d})";
|
||||
|
||||
// Create a menu item
|
||||
var menuItem = new MenuItem
|
||||
{
|
||||
Header = display,
|
||||
Tag = feed,
|
||||
|
||||
// Set the current item to bold
|
||||
FontWeight = feed.Id == _currentFeed.Id ? FontWeights.Bold : FontWeights.Normal
|
||||
};
|
||||
|
||||
// Handle the click
|
||||
menuItem.Click += HandleFeedMenuItemClick;
|
||||
|
||||
// Add the item to the list
|
||||
contextMenu.Items.Add(menuItem);
|
||||
}
|
||||
|
||||
// Set the context menu placement to this button
|
||||
contextMenu.PlacementTarget = this;
|
||||
|
||||
// Open the context menu
|
||||
contextMenu.IsOpen = true;
|
||||
}
|
||||
|
||||
private void HandleFeedMenuItemClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Get the menu item clicked
|
||||
var menuItem = (MenuItem) sender;
|
||||
|
||||
// Get the feed from the menu item tab
|
||||
var feed = (Feed) menuItem.Tag;
|
||||
|
||||
// Loop over all feeds and look for the index of the new one
|
||||
var feedIndex = 0;
|
||||
foreach (var loopFeed in _feedList.OrderBy(loopFeed => loopFeed.Name))
|
||||
{
|
||||
if (loopFeed.Id == feed.Id)
|
||||
{
|
||||
_feedIndex = feedIndex;
|
||||
break;
|
||||
}
|
||||
|
||||
feedIndex++;
|
||||
}
|
||||
|
||||
// Set the current feed
|
||||
_currentFeed = feed;
|
||||
|
||||
// Update the feed timestamp
|
||||
_lastFeedDisplay = DateTime.Now;
|
||||
|
||||
// Update the display
|
||||
DisplayFeed();
|
||||
NextFeed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleItemMouseUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Only handle the middle button
|
||||
if (e.ChangedButton != MouseButton.Middle)
|
||||
return;
|
||||
|
||||
// Get the feed item
|
||||
var feedItem = (FeedItem) ((ListBoxItem) sender).DataContext;
|
||||
|
||||
// The feed item has been read and is no longer new
|
||||
_database.SaveChanges(() =>
|
||||
{
|
||||
feedItem.BeenRead = true;
|
||||
feedItem.New = false;
|
||||
});
|
||||
|
||||
// Remove the item from the list
|
||||
LinkTextList.Items.Remove(feedItem);
|
||||
}
|
||||
|
||||
private void HandleItemMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Get the feed item
|
||||
var feedItem = (FeedItem) ((ListBoxItem) sender).DataContext;
|
||||
|
||||
// Try to open the item link
|
||||
if (!InstalledBrowser.OpenLink(Settings.Default.Browser, feedItem.Link))
|
||||
return;
|
||||
|
||||
// The feed item has been read and is no longer new
|
||||
_database.SaveChanges(() =>
|
||||
{
|
||||
feedItem.BeenRead = true;
|
||||
feedItem.New = false;
|
||||
});
|
||||
|
||||
// Remove the item from the list
|
||||
LinkTextList.Items.Remove(feedItem);
|
||||
}
|
||||
|
||||
private void HandleFeedButtonClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Create a new context menu
|
||||
var contextMenu = new ContextMenu();
|
||||
|
||||
// Loop over each feed
|
||||
foreach (var feed in _feedList.OrderBy(feed => feed.Name))
|
||||
{
|
||||
// Build a string to display the feed name and the unread count
|
||||
var display = $"{feed.Name} ({feed.Items.Count(item => !item.BeenRead):d})";
|
||||
|
||||
// Create a menu item
|
||||
var menuItem = new MenuItem
|
||||
{
|
||||
Header = display,
|
||||
Tag = feed,
|
||||
|
||||
// Set the current item to bold
|
||||
FontWeight = feed.Id == _currentFeed.Id ? FontWeights.Bold : FontWeights.Normal
|
||||
};
|
||||
|
||||
// Handle the click
|
||||
menuItem.Click += HandleFeedMenuItemClick;
|
||||
|
||||
// Add the item to the list
|
||||
contextMenu.Items.Add(menuItem);
|
||||
}
|
||||
|
||||
// Set the context menu placement to this button
|
||||
contextMenu.PlacementTarget = this;
|
||||
|
||||
// Open the context menu
|
||||
contextMenu.IsOpen = true;
|
||||
}
|
||||
|
||||
private void HandleFeedMenuItemClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Get the menu item clicked
|
||||
var menuItem = (MenuItem) sender;
|
||||
|
||||
// Get the feed from the menu item tab
|
||||
var feed = (Feed) menuItem.Tag;
|
||||
|
||||
// Loop over all feeds and look for the index of the new one
|
||||
var feedIndex = 0;
|
||||
foreach (var loopFeed in _feedList.OrderBy(loopFeed => loopFeed.Name))
|
||||
{
|
||||
if (loopFeed.Id == feed.Id)
|
||||
{
|
||||
_feedIndex = feedIndex;
|
||||
break;
|
||||
}
|
||||
|
||||
feedIndex++;
|
||||
}
|
||||
|
||||
// Set the current feed
|
||||
_currentFeed = feed;
|
||||
|
||||
// Update the feed timestamp
|
||||
_lastFeedDisplay = DateTime.Now;
|
||||
|
||||
// Update the display
|
||||
DisplayFeed();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user