Skip to content

Commit 41fa89e

Browse files
committed
add file list height options and print button to popup, #49
1 parent 99d3fc4 commit 41fa89e

File tree

5 files changed

+44
-7
lines changed

5 files changed

+44
-7
lines changed

octoprint_prusaslicerthumbnails/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ def get_settings_defaults(self):
3232
inline_thumbnail_scale_value="50",
3333
align_inline_thumbnail=False,
3434
inline_thumbnail_align_value="left",
35-
state_panel_thumbnail=True
35+
state_panel_thumbnail=True,
36+
state_panel_thumbnail_scale_value="75",
37+
resize_filelist=False,
38+
filelist_height="306"
3639
)
3740

3841
##~~ AssetPlugin mixin

octoprint_prusaslicerthumbnails/static/js/prusaslicerthumbnails.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ $(function() {
1515
self.thumbnail_url = ko.observable('/static/img/tentacle-20x20.png');
1616
self.thumbnail_title = ko.observable('');
1717
self.inline_thumbnail = ko.observable();
18+
self.file_details = ko.observable();
1819
self.crawling_files = ko.observable(false);
1920
self.crawl_results = ko.observableArray([]);
2021

@@ -23,6 +24,7 @@ $(function() {
2324
var thumbnail_title = data.path.replace('.gcode','');
2425
self.thumbnail_url(data.thumbnail);
2526
self.thumbnail_title(thumbnail_title);
27+
self.file_details(data);
2628
$('div#prusa_thumbnail_viewer').modal("show");
2729
}
2830
}
@@ -71,6 +73,11 @@ $(function() {
7173
self.filesViewModel.thumbnailAlignValue(self.settingsViewModel.settings.plugins.prusaslicerthumbnails.inline_thumbnail_align_value());
7274
}
7375

76+
// assign initial filelist height
77+
if(self.settingsViewModel.settings.plugins.prusaslicerthumbnails.resize_filelist()) {
78+
$('#files > div > div.gcode_files > div.scroll-wrapper').css({'height': self.settingsViewModel.settings.plugins.prusaslicerthumbnails.filelist_height() + 'px'});
79+
}
80+
7481
// observe scaling changes
7582
self.settingsViewModel.settings.plugins.prusaslicerthumbnails.scale_inline_thumbnail.subscribe(function(newValue){
7683
if (newValue == false){
@@ -95,6 +102,13 @@ $(function() {
95102
self.filesViewModel.thumbnailAlignValue(newValue);
96103
});
97104

105+
// observe file list height changes
106+
self.settingsViewModel.settings.plugins.prusaslicerthumbnails.filelist_height.subscribe(function(newValue){
107+
if(self.settingsViewModel.settings.plugins.prusaslicerthumbnails.resize_filelist()) {
108+
$('#files > div > div.gcode_files > div.scroll-wrapper').css({'height': self.settingsViewModel.settings.plugins.prusaslicerthumbnails.filelist_height() + 'px'});
109+
}
110+
});
111+
98112
self.printerStateViewModel.filepath.subscribe(function(data){
99113
if(data){
100114
OctoPrint.files.get('local',data)
@@ -104,7 +118,7 @@ $(function() {
104118
if($('#prusaslicer_state_thumbnail').length) {
105119
$('#prusaslicer_state_thumbnail > img').attr('src', file_data.thumbnail);
106120
} else {
107-
$('#state > div > hr:first').after('<div id="prusaslicer_state_thumbnail" class="row-fluid"><img src="'+file_data.thumbnail+'" width="100%"/>\n<hr/></div>');
121+
$('#state > div > hr:first').after('<div id="prusaslicer_state_thumbnail" class="row-fluid" style="text-align: center"><img src="'+file_data.thumbnail+'" width="' + self.settingsViewModel.settings.plugins.prusaslicerthumbnails.state_panel_thumbnail_scale_value() + '%"/>\n<hr/></div>');
108122
}
109123
} else {
110124
$('#prusaslicer_state_thumbnail').remove();

octoprint_prusaslicerthumbnails/templates/prusaslicerthumbnails.jinja2

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
<h3 data-bind="text: thumbnail_title()"></h3>
55
</div>
66
<div class="modal-body">
7-
<img data-bind="attr: {src: thumbnail_url()}" width="100%"/>
7+
<div class="row-fluid">
8+
<img data-bind="attr: {src: thumbnail_url()}" width="100%"/>
9+
</div>
10+
811
</div>
912
<div class="modal-footer">
10-
<a href="#" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">{{ _('Close') }}</a>
13+
<a href="#" class="btn pull-left" aria-hidden="true" data-bind="visible: filesViewModel.loginState.hasPermissionKo(filesViewModel.access.permissions.PRINT), click: function() { if (filesViewModel.enableSelectAndPrint(file_details())) { filesViewModel.loadFile(file_details(), true); $('div#prusa_thumbnail_viewer').modal('hide'); } else { return; } }, css: {disabled: !filesViewModel.enableSelectAndPrint(file_details())}"><i class="fas fa-print"></i> {{ _('Print') }}</a> <a href="#" class="btn btn-primary pull-right" data-dismiss="modal" aria-hidden="true">{{ _('Close') }}</a>
1114
</div>
12-
</div>
15+
</div>

octoprint_prusaslicerthumbnails/templates/prusaslicerthumbnails_settings.jinja2

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
<input type="checkbox" data-bind="checked: settings.plugins.prusaslicerthumbnails.state_panel_thumbnail"> Show thumbnail in state panel.
66
</label>
77
</div>
8+
<div class="controls">
9+
<span class="input-append">
10+
<input type="number" step="any" min="0" max="100" class="input-mini text-right" data-bind="enable:settings.plugins.prusaslicerthumbnails.state_panel_thumbnail() == true, value: settings.plugins.prusaslicerthumbnails.state_panel_thumbnail_scale_value">
11+
<span class="add-on">%</span>
12+
</span>
13+
</div>
814
<div class="controls">
915
<label class="checkbox">
1016
<input type="checkbox" data-bind="checked: settings.plugins.prusaslicerthumbnails.inline_thumbnail"> Use inline thumbnails.
@@ -33,6 +39,17 @@
3339
<option value="right">Right</option>
3440
</select>
3541
</div>
42+
<div class="controls">
43+
<label class="checkbox">
44+
<input type="checkbox" data-bind="checked: settings.plugins.prusaslicerthumbnails.resize_filelist"> Set file list height.
45+
</label>
46+
</div>
47+
<div class="controls">
48+
<span class="input-append">
49+
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="enable: settings.plugins.prusaslicerthumbnails.resize_filelist() == true, value: settings.plugins.prusaslicerthumbnails.filelist_height">
50+
<span class="add-on">px</span>
51+
</span>
52+
</div>
3653
</div>
3754
<div class="row-fluid" data-bind="allowBindings: false">
3855
<div class="row-fluid" data-bind="allowBindings: true">
@@ -61,4 +78,4 @@
6178
</div>
6279
</div>
6380
</div>
64-
</div>
81+
</div>

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
plugin_name = "PrusaSlicer Thumbnails"
1515

1616
# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module
17-
plugin_version = "0.1.5rc1"
17+
plugin_version = "0.1.5rc2"
1818

1919
# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin
2020
# module

0 commit comments

Comments
 (0)