Remvode unused config.ini

Made the create folder window have the text box selected so you can type right away.
Asking for more library stuff by index.

Small work on HTML widget
This commit is contained in:
Lars Brubaker 2015-07-22 18:30:22 -07:00
parent 3458d4ba68
commit 53f7ba8579
15 changed files with 81 additions and 151 deletions

View file

@ -72,10 +72,10 @@ namespace MatterHackers.MatterControl
#if false // test
{
SystemWindow releaseNotes = new SystemWindow(640, 480);
string releaseNotesFile = Path.Combine("OEMSettings", "ReleaseNotesMini.html");
string releaseNotesFile = Path.Combine("OEMSettings", "ReleaseNotes.html");
string releaseNotesContent = StaticData.Instance.ReadAllText(releaseNotesFile);
HtmlWidget content = new HtmlWidget(releaseNotesContent, RGBA_Bytes.Black);
content.AddChild(new GuiWidget(HAnchor.None, VAnchor.ParentBottomTop));
content.AddChild(new GuiWidget(HAnchor.AbsolutePosition, VAnchor.ParentBottomTop));
content.VAnchor |= VAnchor.ParentTop;
content.BackgroundColor = RGBA_Bytes.White;
releaseNotes.AddChild(content);

View file

@ -66,8 +66,8 @@ namespace MatterHackers.MatterControl
htmlParser.ParseHtml(htmlContent, AddContent, CloseContent);
VAnchor |= VAnchor.ParentBottomTop;
HAnchor |= HAnchor.ParentLeftRight;
VAnchor = VAnchor.Max_FitToChildren_ParentHeight;
HAnchor = HAnchor.Max_FitToChildren_ParentWidth;
}
public class WrappingTextWidget : GuiWidget
@ -274,7 +274,7 @@ namespace MatterHackers.MatterControl
break;
default:
throw new NotImplementedException("Don't know what to do with {0}".FormatWith(elementState.TypeName));
throw new NotImplementedException("Don't know what to do with '{0}'".FormatWith(elementState.TypeName));
}
}

View file

@ -43,7 +43,7 @@ namespace MatterHackers.MatterControl
{
if (noContentFieldDescription != null)
{
if (Text == "" && !ContainsFocus)
if (Text == "" || !ContainsFocus)
{
noContentFieldDescription.Visible = true;
}
@ -110,6 +110,11 @@ namespace MatterHackers.MatterControl
}
}
public override bool Focus()
{
return actuallTextEditWidget.Focus();
}
public bool SelectAllOnFocus
{
get { return actuallTextEditWidget.InternalTextEditWidget.SelectAllOnFocus; }

View file

@ -12,7 +12,7 @@ namespace MatterHackers.MatterControl
{
private Action<CreateFolderReturnInfo> functionToCallToCreateNamedFolder;
private TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory();
private MHTextEditWidget textToAddWidget;
private MHTextEditWidget folderNameWidget;
public CreateFolderWindow(Action<CreateFolderReturnInfo> functionToCallToCreateNamedFolder)
: base(480, 180)
@ -62,12 +62,12 @@ namespace MatterHackers.MatterControl
textBoxHeader.HAnchor = HAnchor.ParentLeft;
//Adds text box and check box to the above container
textToAddWidget = new MHTextEditWidget("", pixelWidth: 300, messageWhenEmptyAndNotSelected: "Enter a Folder Name Here".Localize());
textToAddWidget.HAnchor = HAnchor.ParentLeftRight;
textToAddWidget.Margin = new BorderDouble(5);
folderNameWidget = new MHTextEditWidget("", pixelWidth: 300, messageWhenEmptyAndNotSelected: "Enter a Folder Name Here".Localize());
folderNameWidget.HAnchor = HAnchor.ParentLeftRight;
folderNameWidget.Margin = new BorderDouble(5);
middleRowContainer.AddChild(textBoxHeader);
middleRowContainer.AddChild(textToAddWidget);
middleRowContainer.AddChild(folderNameWidget);
middleRowContainer.AddChild(new HorizontalSpacer());
topToBottom.AddChild(middleRowContainer);
@ -85,7 +85,7 @@ namespace MatterHackers.MatterControl
buttonRow.AddChild(createFolderButton);
createFolderButton.Click += new EventHandler(createFolderButton_Click);
textToAddWidget.ActualTextEditWidget.EnterPressed += new KeyEventHandler(ActualTextEditWidget_EnterPressed);
folderNameWidget.ActualTextEditWidget.EnterPressed += new KeyEventHandler(ActualTextEditWidget_EnterPressed);
//Adds Create and Close Button to button container
buttonRow.AddChild(new HorizontalSpacer());
@ -104,6 +104,18 @@ namespace MatterHackers.MatterControl
ShowAsSystemWindow();
}
bool firstDraw = true;
public override void OnDraw(Graphics2D graphics2D)
{
if (firstDraw)
{
folderNameWidget.Focus();
firstDraw = false;
}
base.OnDraw(graphics2D);
}
private void ActualTextEditWidget_EnterPressed(object sender, KeyEventArgs keyEvent)
{
SubmitForm();
@ -116,7 +128,7 @@ namespace MatterHackers.MatterControl
private void SubmitForm()
{
string newName = textToAddWidget.ActualTextEditWidget.Text;
string newName = folderNameWidget.ActualTextEditWidget.Text;
if (newName != "")
{
string fileName = Path.ChangeExtension(Path.GetRandomFileName(), ".amf");

View file

@ -429,7 +429,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
if (parentProvider == null)
{
LibraryDataView.CurrentLibraryProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForItem(printItemCollection);
LibraryDataView.CurrentLibraryProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForCollection(printItemCollection);
}
else
{
@ -451,14 +451,14 @@ namespace MatterHackers.MatterControl.PrintLibrary
if (provider != null && provider.ProviderKey != "ProviderSelectorKey")
{
PrintItemCollection parent = new PrintItemCollection("..", provider.ProviderKey);
LibraryRowItem queueItem = new LibraryRowItemCollection(parent, this, provider.ParentLibraryProvider, GetThumbnailWidget(true, provider.ParentLibraryProvider, parent));
LibraryRowItem queueItem = new LibraryRowItemCollection(parent, -1, this, provider.ParentLibraryProvider, GetThumbnailWidget(true, provider.ParentLibraryProvider, parent));
AddListItemToTopToBottom(queueItem);
}
for (int i = 0; i < provider.CollectionCount; i++)
{
PrintItemCollection item = provider.GetCollectionItem(i);
LibraryRowItem queueItem = new LibraryRowItemCollection(item, this, null, GetThumbnailWidget(false, null, item));
LibraryRowItem queueItem = new LibraryRowItemCollection(item, i, this, null, GetThumbnailWidget(false, null, item));
AddListItemToTopToBottom(queueItem);
}

View file

@ -48,10 +48,12 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
LibraryProvider parentProvider;
PrintItemCollection printItemCollection;
int collectionIndex;
public LibraryRowItemCollection(PrintItemCollection collection, LibraryDataView libraryDataView, LibraryProvider parentProvider, GuiWidget thumbnailWidget)
public LibraryRowItemCollection(PrintItemCollection collection, int collectionIndex, LibraryDataView libraryDataView, LibraryProvider parentProvider, GuiWidget thumbnailWidget)
: base(libraryDataView, thumbnailWidget)
{
this.collectionIndex = collectionIndex;
this.parentProvider = parentProvider;
this.printItemCollection = collection;
this.ItemName = printItemCollection.Name;
@ -63,7 +65,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
public override bool Protected
{
get { throw new NotImplementedException(); }
get { return false; }
}
public override void Export()
@ -76,14 +78,15 @@ namespace MatterHackers.MatterControl.PrintLibrary
throw new NotImplementedException();
}
private static string collectionNotEmtyMessage = "The collection you are trying to delete '{0}' is not empty. Would you like to delete it anyway?".Localize();
private static string collectionNotEmtyTitle = "Collection not Empty".Localize();
private static string collectionNotEmtyMessage = "The folder you are trying to delete '{0}' is not empty. Would you like to delete it anyway?".Localize();
private static string collectionNotEmtyTitle = "Folder not Empty".Localize();
private static string deleteNow = "Delete".Localize();
private static string doNotDelete = "Do NOT Delete".Localize();
private static string doNotDelete = "Cancel".Localize();
public override void RemoveFromCollection()
{
using (LibraryProvider collectionProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForItem(printItemCollection))
// TODO: make a progress display to show that we are retieving the collection content (to check if its empty).
using (LibraryProvider collectionProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForCollection(printItemCollection))
{
if (collectionProvider.ItemCount > 0 || collectionProvider.CollectionCount > 0)
{
@ -96,7 +99,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
}
else
{
LibraryDataView.CurrentLibraryProvider.RemoveCollection(printItemCollection);
LibraryDataView.CurrentLibraryProvider.RemoveCollection(collectionIndex);
}
}
}
@ -105,7 +108,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
if (messageBoxResponse)
{
LibraryDataView.CurrentLibraryProvider.RemoveCollection(printItemCollection);
LibraryDataView.CurrentLibraryProvider.RemoveCollection(collectionIndex);
}
}
@ -150,7 +153,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
if (parentProvider == null)
{
LibraryDataView.CurrentLibraryProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForItem(printItemCollection);
LibraryDataView.CurrentLibraryProvider = LibraryDataView.CurrentLibraryProvider.GetProviderForCollection(printItemCollection);
}
else
{

View file

@ -211,7 +211,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
public async override void RemoveFromCollection()
{
LibraryDataView.CurrentLibraryProvider.RemoveItem(await this.GetPrintItemWrapperAsync());
LibraryDataView.CurrentLibraryProvider.RemoveItem(itemIndex);
}
protected override SlideWidget GetItemActionButtons()
@ -275,7 +275,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
protected async override void RemoveThisFromPrintLibrary()
{
// TODO: The LibraryProvider does not need a printitemwrapper to remove an item! Why not an interger like the others?
LibraryDataView.CurrentLibraryProvider.RemoveItem(await this.GetPrintItemWrapperAsync());
LibraryDataView.CurrentLibraryProvider.RemoveItem(itemIndex);
}
private void ExportQueueItemWindow_Closed(object sender, EventArgs e)

View file

@ -109,11 +109,12 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
public abstract Task<PrintItemWrapper> GetPrintItemWrapperAsync(int itemIndex, ReportProgressRatio reportProgress = null);
public abstract LibraryProvider GetProviderForItem(PrintItemCollection collection);
// TODO: make this asnyc
public abstract LibraryProvider GetProviderForCollection(PrintItemCollection collection);
public abstract void RemoveCollection(PrintItemCollection collectionToRemove);
public abstract void RemoveCollection(int collectionIndexToRemove);
public abstract void RemoveItem(PrintItemWrapper printItemWrapper);
public abstract void RemoveItem(int itemIndexToRemove);
public abstract void SaveToLibrary(PrintItemWrapper printItemWrapper, List<MeshGroup> meshGroupsToSave, List<ProviderLocatorNode> providerSavePath = null);

View file

@ -184,14 +184,14 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
return new PrintItemWrapper(new DataStorage.PrintItem(Path.GetFileNameWithoutExtension(fileName), fileName), this);
}
public override LibraryProvider GetProviderForItem(PrintItemCollection collection)
public override LibraryProvider GetProviderForCollection(PrintItemCollection collection)
{
return new LibraryProviderFileSystem(Path.Combine(rootPath, collection.Key), collection.Name, this);
}
public override void RemoveCollection(PrintItemCollection collectionToRemove)
public override void RemoveCollection(int collectionIndexToRemove)
{
string directoryPath = collectionToRemove.Key;
string directoryPath = Path.Combine(rootPath, currentDirectoryDirectories[collectionIndexToRemove]);
if (Directory.Exists(directoryPath))
{
Stopwatch time = Stopwatch.StartNew();
@ -206,9 +206,10 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
}
}
public override void RemoveItem(PrintItemWrapper printItemWrapper)
public override void RemoveItem(int itemToRemoveIndex)
{
File.Delete(printItemWrapper.PrintItem.FileLocation);
string filePath = currentDirectoryFiles[itemToRemoveIndex];
File.Delete(filePath);
GetFilesAndCollectionsInCurrentDirectory();
}

View file

@ -219,7 +219,7 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
throw new NotImplementedException("Print items are not allowed at the root level");
}
public override LibraryProvider GetProviderForItem(PrintItemCollection collection)
public override LibraryProvider GetProviderForCollection(PrintItemCollection collection)
{
foreach (LibraryProvider libraryProvider in visibleProviders)
{
@ -232,12 +232,12 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
throw new NotImplementedException();
}
public override void RemoveCollection(PrintItemCollection collectionToRemove)
public override void RemoveCollection(int collectionIndexToRemove)
{
throw new NotImplementedException();
}
public override void RemoveItem(PrintItemWrapper printItemWrapper)
public override void RemoveItem(int itemToRemoveIndex)
{
throw new NotImplementedException();
}
@ -248,10 +248,5 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
}
#endregion Overriden Abstract Methods
public static LibraryProvider GetProviderForItem(PrintItemWrapper printItemWrapper)
{
throw new NotImplementedException();
}
}
}

View file

@ -308,7 +308,7 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
return null;
}
public override LibraryProvider GetProviderForItem(PrintItemCollection collection)
public override LibraryProvider GetProviderForCollection(PrintItemCollection collection)
{
return new LibraryProviderSQLite(collection, this);
}
@ -337,26 +337,26 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider
LibraryProvider.OnDataReloaded(null);
}
public override void RemoveCollection(PrintItemCollection collectionToRemove)
public override void RemoveCollection(int collectionIndexToRemove)
{
collectionToRemove.Delete();
childCollections[collectionIndexToRemove].Delete();
LoadLibraryItems();
LibraryProvider.OnDataReloaded(null);
}
public override void RemoveItem(PrintItemWrapper printItemWrapper)
public override void RemoveItem(int itemToRemoveIndex)
{
int index = printItems.IndexOf(printItemWrapper);
if (index < 0)
if (itemToRemoveIndex < 0)
{
// It may be possible to have the same item in the remove list twice.
// so if it is not in the PrintItems then ignore it.
return;
}
printItems.RemoveAt(index);
// and remove it from the data base
printItemWrapper.Delete();
printItems[itemToRemoveIndex].Delete();
printItems.RemoveAt(itemToRemoveIndex);
LibraryProvider.OnDataReloaded(null);
}

View file

@ -3391,3 +3391,9 @@ Translated:3D
English:Update Status
Translated:Update Status
English:The folder you are trying to delete '{0}' is not empty. Would you like to delete it anyway?
Translated:The folder you are trying to delete '{0}' is not empty. Would you like to delete it anyway?
English:Folder not Empty
Translated:Folder not Empty

@ -1 +1 @@
Subproject commit a97d772d07d9c8df67a47c3e368e743199c6d835
Subproject commit fbe86d83160e7e8eac9f25dae2928f0006d7bc5a

View file

@ -81,7 +81,7 @@ namespace MatterControl.Tests
PrintItemWrapper itemAtRoot = testProvider.GetPrintItemWrapperAsync(0).Result;
// add an item works correctly
LibraryProvider subProvider = testProvider.GetProviderForItem(testProvider.GetCollectionItem(0));
LibraryProvider subProvider = testProvider.GetProviderForCollection(testProvider.GetCollectionItem(0));
dataReloaded = false;
//itemAdded = false;
string subPathAndFile = Path.Combine(createdDirectory, meshFileName);
@ -103,14 +103,14 @@ namespace MatterControl.Tests
// remove item works
dataReloaded = false;
Assert.IsTrue(dataReloaded == false);
subProvider.RemoveItem(subProvider.GetPrintItemWrapperAsync(0).Result);
subProvider.RemoveItem(0);
Assert.IsTrue(dataReloaded == true);
Assert.IsTrue(!File.Exists(subPathAndFile));
// remove collection gets rid of it
dataReloaded = false;
Assert.IsTrue(dataReloaded == false);
testProvider.RemoveCollection(testProvider.GetCollectionItem(0));
testProvider.RemoveCollection(0);
Assert.IsTrue(dataReloaded == true);
Assert.IsTrue(testProvider.CollectionCount == 0);
Assert.IsTrue(!Directory.Exists(createdDirectory));
@ -155,14 +155,14 @@ namespace MatterControl.Tests
// remove item works
dataReloaded = false;
Assert.IsTrue(dataReloaded == false);
testProvider.RemoveItem(testProvider.GetPrintItemWrapperAsync(1).Result);
testProvider.RemoveItem(1);
Assert.IsTrue(dataReloaded == true);
Assert.IsTrue(!NamedItemExists(fileNameWithExtension));
// remove collection gets rid of it
dataReloaded = false;
Assert.IsTrue(dataReloaded == false);
testProvider.RemoveCollection(testProvider.GetCollectionItem(0));
testProvider.RemoveCollection(0);
Assert.IsTrue(dataReloaded == true);
Assert.IsTrue(testProvider.CollectionCount == 0);
Assert.IsTrue(!NamedCollectionExists(collectionName)); // assert that the record does not exist in the DB

View file

@ -1,93 +0,0 @@
# generated by Slic3r 0.9.3 on Mon Nov 5 11:30:36 2012
acceleration = 0
bed_size = 200,200
bed_temperature = 0
bridge_fan_speed = 100
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
complete_objects = 0
cooling = 0
disable_fan_first_layers = 1
duplicate = 1
duplicate_distance = 6
duplicate_grid = 1,1
end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors
external_perimeter_speed = 100%
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extruder_offset = 0x0
extrusion_axis = E
extrusion_multiplier = 1
extrusion_width = 0
fan_always_on = 0
fan_below_layer_time = 60
filament_diameter = 3
fill_angle = 45
fill_density = 0.4
fill_pattern = rectilinear
first_layer_bed_temperature = 0
first_layer_extrusion_width = 200%
first_layer_height = 100%
first_layer_speed = 30%
first_layer_temperature = 200
g0 = 0
gcode_arcs = 0
gcode_comments = 0
gcode_flavor = reprap
infill_acceleration = 50
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_speed = 60
layer_gcode =
layer_height = 0.4
max_fan_speed = 100
min_fan_speed = 35
min_print_speed = 10
notes =
nozzle_diameter = 0.5
only_retract_when_crossing_perimeters = 0
output_filename_format = [input_filename_base].gcode
perimeter_acceleration = 25
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 30
perimeters = 3
post_process =
print_center = 100,100
randomize_start = 1
retract_before_travel = 2
retract_length = 1
retract_length_toolchange = 3
retract_lift = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 30
rotate = 0
scale = 1
skirt_distance = 6
skirt_height = 1
skirts = 1
slowdown_below_layer_time = 15
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_speed = 60
solid_layers = 3
start_gcode = G28 ; home all axes
support_material = 0
support_material_angle = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_pattern = rectilinear
support_material_spacing = 2.5
support_material_threshold = 45
temperature = 200
threads = 2
top_solid_infill_speed = 50
travel_speed = 130
use_relative_e_distances = 0
z_offset = 0