6eab5ba0af
Work around RuntimeError unregistering the texture browser operator.
2016-06-28 16:41:31 +02:00
d53938e03b
Check specific roles for specific addon features.
2016-06-24 15:22:12 +02:00
0f26551368
Texture browser now uses pillar.PillarOperatorMixin too.
2016-06-24 15:00:38 +02:00
ef822208c8
Use blend_data.is_dirty, seems to be more reliable than is_saved
2016-06-17 13:11:34 +02:00
8a5efc18db
Separated async-task-operator code from texture browser GUI code.
2016-06-16 16:33:05 +02:00
ded05b6ca9
Tweaked debug message
2016-06-15 09:29:09 +02:00
30f71ac9fc
Fixed typo. I'm a moron.
2016-05-20 14:34:35 +02:00
bdef942b0b
Replaced log.warning with debug msg.
...
We can now list all available projects, so there is no need to warn.
2016-05-20 11:33:26 +02:00
1cd42e246e
Use current_path in log
2016-05-18 15:55:08 +02:00
079689a532
Client-side sorting of nodes.
...
The sorting happens after obtaining the individual nodes, as this is done
in parallel in unpredictable order.
2016-05-18 15:13:44 +02:00
597ba6de1c
Use project name in download path, rather than UUID.
...
Filenames are now also sanitized.
2016-05-18 15:13:29 +02:00
8201ba7691
Fix node type name
2016-05-18 14:12:21 +02:00
33b52cc8a9
CPU-friendlier by lowering fixed redraw rate.
...
The GUI is still redrawn on other events, such as mouse move, so it still
responds quickly to that. This is just regarding background updates of the
data model, such as when loading thumbnails.
2016-05-18 13:01:48 +02:00
be46b9cf81
Handling more cases of login/credentials issues
2016-05-18 13:01:04 +02:00
ba4c951d32
Use /bcloud/texture-library end point to fetch texture library projects.
2016-05-18 12:50:51 +02:00
5c7343f8c9
Make sure we can always go up again (except at top level)
2016-05-18 12:17:07 +02:00
64d36818fe
Start browsing at project overview, instead of inside one project.
...
Also moved from using project_uuid and node_uuid to using CloudPath
objects.
2016-05-18 11:57:36 +02:00
48ca91a364
Skip nodes of unsupported node_type (instead of raising exception)
2016-05-17 17:30:57 +02:00
5eaee872bf
Added check for user's roles -- disallow usage by non-subscribers.
...
This makes it clear from the get-go that users need to subscribe. Otherwise
they'll get unexpected errors once they try to download something.
2016-05-10 14:52:51 +02:00
6ce4399407
Show default mouse cursor, instead of the one belonging to the editor.
2016-05-10 14:33:02 +02:00
92e27914d1
Refuse to start if the file hasn't been saved.
2016-05-04 14:30:54 +02:00
1d662a0314
Automatic refresh of subclient token.
2016-05-04 14:30:47 +02:00
602260329e
Don't show the addon in the add->mesh menu
2016-05-03 18:30:06 +02:00
29230f09e7
More streamlined interface with Pillar.
...
Using a semaphore to ensure requests to Pillar aren't too parallel,
so that we can cancel requests faster.
2016-04-01 18:47:06 +02:00
5396fd765d
Better reporting when the user is not logged in.
2016-04-01 14:11:30 +02:00
afbc36a70a
Use addon pref to store default texture dir, allowing per-scene override.
2016-03-31 11:54:27 +02:00
c10107b887
Some drawing tweaks
2016-03-23 16:54:08 +01:00
8274745b84
Don't stop browsing when someone mis-clicks an item.
2016-03-23 16:54:02 +01:00
0974c460e8
Added exception drawing code.
...
It's rather primitive, but at least the GUI reflects that something has
gone wrong.
2016-03-23 13:46:19 +01:00
ac29d49450
Per-BlenderID-user cache.
...
Different users might have different access rights, and thus access
to different information.
2016-03-22 15:20:22 +01:00
fb84b2892e
Store UUIDs in the image data block
2016-03-22 14:49:03 +01:00
c2ee865cff
Always clear images before stopping the GUI operator
2016-03-22 14:35:33 +01:00
6b84dcf282
Added downloading of all files belonging to one texture.
2016-03-22 14:31:29 +01:00
7df27426ef
Caching of texture thumbnails.
...
Based on HTTP headers stored in sidecar files.
2016-03-21 17:21:51 +01:00
5c2beaf7b2
Browsing now uses node objects, instead of just node UUID
...
This made the browsing code slightly simpler, and reduces the number
of Pillar queries. The list of nodes visited to end up at the current node
is also stored, so that we can easily go back up.
2016-03-21 11:46:47 +01:00
aeae24e6bc
Allow the Blender Cloud browser to run full-screen
...
It no longer requires a 3D View, but can be run everywhere.
2016-03-15 17:09:27 +01:00
e16f069eb3
Added downloading of textures when clicking on a menu item
...
For this I made the operator a state machine; when its state is set to
'QUIT' it'll quit. Different states can have different OpenGL drawing
functions.
For now, to help development, the state is drawn in the bottom left corner.
2016-03-15 15:44:19 +01:00
fc0fe9f651
Added TODO note.
2016-03-15 14:07:25 +01:00
5e237bea22
Explicitly support cancelling tasks.
...
The 'cancelled' status is now tracked by a Future that's passed to
different asychronous tasks. That way it is possible to cancel all
running tasks before browsing another Pillar node.
2016-03-15 14:05:54 +01:00
0174c28075
Setting up and using Python's logging framework.
...
It's dubious whether logging.basicConfig() should be called here, so
that call will probably be moved somewhere else.
2016-03-15 13:47:21 +01:00
e32d7de7a6
Earlier calling of thumbnail_loading callback
...
This means that some information isn't available to the callback yet,
but it can show the filename & spinner logo much sooner.
2016-03-14 18:12:29 +01:00
59401d9c41
Moved GUI to 3D viewport
...
We now draw the GUI using OpenGL in Python. This allows for much more
control on the Python side. It's still a prototype, and allows us to
test the features without depending on C support in Blender itself.
GUI code was taken from the Asset Flinger addon.
2016-03-14 17:23:56 +01:00