Making the export button have the right state based on the permissions of the item being selected.
This commit is contained in:
parent
ae49d4b09e
commit
610816070a
6 changed files with 62 additions and 29 deletions
|
|
@ -76,7 +76,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
if (PrivateClick != null)
|
||||
{
|
||||
PrivateClick(this, mouseEvent);
|
||||
UiThread.RunOnIdle(() => PrivateClick(this, mouseEvent));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -491,7 +491,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
|
|||
|
||||
private void LibraryDataReloaded(object sender, EventArgs e)
|
||||
{
|
||||
AddAllItems();
|
||||
UiThread.RunOnIdle(AddAllItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,6 +41,18 @@ using System.Text;
|
|||
|
||||
namespace MatterHackers.MatterControl.PrintLibrary
|
||||
{
|
||||
internal class ButtonEnableData
|
||||
{
|
||||
internal bool multipleItems;
|
||||
internal bool protectedItems;
|
||||
|
||||
internal ButtonEnableData(bool multipleItems, bool protectedItems)
|
||||
{
|
||||
this.multipleItems = multipleItems;
|
||||
this.protectedItems = protectedItems;
|
||||
}
|
||||
}
|
||||
|
||||
public class PrintLibraryWidget : GuiWidget
|
||||
{
|
||||
private static CreateFolderWindow createFolderWindow = null;
|
||||
|
|
@ -50,7 +62,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
|
|||
private FlowLayoutWidget breadCrumbDisplayHolder;
|
||||
|
||||
private FlowLayoutWidget itemOperationButtons;
|
||||
private List<bool> editOperationMultiCapable = new List<bool>();
|
||||
private List<ButtonEnableData> editButtonsEnableData = new List<ButtonEnableData>();
|
||||
|
||||
private static Button addToLibraryButton;
|
||||
private Button enterEditModeButton;
|
||||
|
|
@ -245,25 +257,25 @@ namespace MatterHackers.MatterControl.PrintLibrary
|
|||
Button exportItemButton = editButtonFactory.Generate("Export".Localize());
|
||||
exportItemButton.Margin = new BorderDouble(3, 0);
|
||||
exportItemButton.Click += new EventHandler(exportButton_Click);
|
||||
editOperationMultiCapable.Add(false);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(false, false));
|
||||
itemOperationButtons.AddChild(exportItemButton);
|
||||
|
||||
Button editItemButton = editButtonFactory.Generate("Edit".Localize());
|
||||
editItemButton.Margin = new BorderDouble(3, 0);
|
||||
editItemButton.Click += new EventHandler(editButton_Click);
|
||||
editOperationMultiCapable.Add(false);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(false, false));
|
||||
itemOperationButtons.AddChild(editItemButton);
|
||||
|
||||
Button removeFromLibraryButton = editButtonFactory.Generate("Remove".Localize());
|
||||
removeFromLibraryButton.Margin = new BorderDouble(3, 0);
|
||||
removeFromLibraryButton.Click += new EventHandler(deleteFromLibraryButton_Click);
|
||||
editOperationMultiCapable.Add(true);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(true, false));
|
||||
itemOperationButtons.AddChild(removeFromLibraryButton);
|
||||
|
||||
Button addToQueueButton = editButtonFactory.Generate("Add to Queue".Localize());
|
||||
addToQueueButton.Margin = new BorderDouble(3, 0);
|
||||
addToQueueButton.Click += new EventHandler(addToQueueButton_Click);
|
||||
editOperationMultiCapable.Add(true);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(true, true));
|
||||
itemOperationButtons.AddChild(addToQueueButton);
|
||||
|
||||
itemOperationButtons.Visible = false;
|
||||
|
|
@ -372,24 +384,36 @@ namespace MatterHackers.MatterControl.PrintLibrary
|
|||
private void SetEditButtonsStates()
|
||||
{
|
||||
int selectedCount = libraryDataView.SelectedItems.Count;
|
||||
bool enabled = (selectedCount > 0 && libraryDataView.EditMode);
|
||||
|
||||
int i = 0;
|
||||
foreach (var child in itemOperationButtons.Children)
|
||||
for(int buttonIndex=0; buttonIndex<itemOperationButtons.Children.Count; buttonIndex++)
|
||||
{
|
||||
bool enabled = (selectedCount > 0 && libraryDataView.EditMode);
|
||||
var child = itemOperationButtons.Children[buttonIndex];
|
||||
var button = child as Button;
|
||||
if (button != null)
|
||||
{
|
||||
if (selectedCount > 1 && !editOperationMultiCapable[i])
|
||||
if ((selectedCount > 1 && !editButtonsEnableData[buttonIndex].multipleItems))
|
||||
{
|
||||
button.Enabled = false;
|
||||
enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
button.Enabled = enabled;
|
||||
bool enabledState = enabled;
|
||||
|
||||
if (!editButtonsEnableData[buttonIndex].protectedItems)
|
||||
{
|
||||
// so we can show for multi items lets check for protected items
|
||||
for (int itemIndex = 0; itemIndex < libraryDataView.SelectedItems.Count; itemIndex++)
|
||||
{
|
||||
if (LibraryDataView.CurrentLibraryProvider.GetPrintItemWrapper(itemIndex).PrintItem.Protected)
|
||||
{
|
||||
enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
button.Enabled = enabled;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace MatterHackers.MatterControl.PrintQueue
|
|||
private TextImageButtonFactory editButtonFactory = new TextImageButtonFactory();
|
||||
private FlowLayoutWidget itemOperationButtons;
|
||||
private DropDownMenu moreMenu;
|
||||
private List<bool> editOperationMultiCapable = new List<bool>();
|
||||
private List<ButtonEnableData> editButtonsEnableData = new List<ButtonEnableData>();
|
||||
private Button enterEditModeButton;
|
||||
private ExportPrintItemWindow exportingWindow;
|
||||
private bool exportingWindowIsOpen = false;
|
||||
|
|
@ -234,19 +234,19 @@ namespace MatterHackers.MatterControl.PrintQueue
|
|||
Button exportItemButton = editButtonFactory.Generate("Export".Localize());
|
||||
exportItemButton.Margin = new BorderDouble(3, 0);
|
||||
exportItemButton.Click += new EventHandler(exportButton_Click);
|
||||
editOperationMultiCapable.Add(false);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(false, false));
|
||||
itemOperationButtons.AddChild(exportItemButton);
|
||||
|
||||
Button copyItemButton = editButtonFactory.Generate("Copy".Localize());
|
||||
copyItemButton.Margin = new BorderDouble(3, 0);
|
||||
copyItemButton.Click += new EventHandler(copyButton_Click);
|
||||
editOperationMultiCapable.Add(false);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(false, true));
|
||||
itemOperationButtons.AddChild(copyItemButton);
|
||||
|
||||
Button removeItemButton = editButtonFactory.Generate("Remove".Localize());
|
||||
removeItemButton.Margin = new BorderDouble(3, 0);
|
||||
removeItemButton.Click += new EventHandler(removeButton_Click);
|
||||
editOperationMultiCapable.Add(true);
|
||||
editButtonsEnableData.Add(new ButtonEnableData(true, true));
|
||||
itemOperationButtons.AddChild(removeItemButton);
|
||||
|
||||
editButtonFactory.FixedWidth = oldWidth;
|
||||
|
|
@ -696,24 +696,36 @@ namespace MatterHackers.MatterControl.PrintQueue
|
|||
private void SetEditButtonsStates()
|
||||
{
|
||||
int selectedCount = queueDataView.SelectedItems.Count;
|
||||
bool enabled = (selectedCount > 0);
|
||||
|
||||
int i=0;
|
||||
foreach (var child in itemOperationButtons.Children)
|
||||
for(int buttonIndex=0; buttonIndex<itemOperationButtons.Children.Count; buttonIndex++)
|
||||
{
|
||||
bool enabled = selectedCount > 0;
|
||||
var child = itemOperationButtons.Children[buttonIndex];
|
||||
var button = child as Button;
|
||||
if (button != null)
|
||||
{
|
||||
if (selectedCount > 1 && !editOperationMultiCapable[i])
|
||||
if ((selectedCount > 1 && !editButtonsEnableData[buttonIndex].multipleItems))
|
||||
{
|
||||
button.Enabled = false;
|
||||
enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
button.Enabled = enabled;
|
||||
bool enabledState = enabled;
|
||||
|
||||
if (!editButtonsEnableData[buttonIndex].protectedItems)
|
||||
{
|
||||
// so we can show for multi items lets check for protected items
|
||||
for (int itemIndex = 0; itemIndex < queueDataView.SelectedItems.Count; itemIndex++)
|
||||
{
|
||||
if (queueDataView.SelectedItems[itemIndex].PrintItemWrapper.PrintItem.Protected)
|
||||
{
|
||||
enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
button.Enabled = enabled;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,14 +31,11 @@ using MatterHackers.Agg;
|
|||
using MatterHackers.Agg.UI;
|
||||
using MatterHackers.Agg.VertexSource;
|
||||
using MatterHackers.Localizations;
|
||||
using MatterHackers.MatterControl.DataStorage;
|
||||
using MatterHackers.MatterControl.PartPreviewWindow;
|
||||
using MatterHackers.MatterControl.PrinterCommunication;
|
||||
using MatterHackers.MatterControl.PrintLibrary;
|
||||
using MatterHackers.VectorMath;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
|
||||
namespace MatterHackers.MatterControl.PrintQueue
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 9f99b81f90454df0ca850d79bbaf8dc7e9795f8c
|
||||
Subproject commit 21ead262054bd626493f4f97eacedae421c39612
|
||||
Loading…
Add table
Add a link
Reference in a new issue