<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<title></title>
<style type="text/css">code{white-space: pre;}</style>
</head>
<body>
<p>Hi Pawel,</p>
<p>With the below thoughts in mind my recommendation is that you use <code>git rebase</code> to make sure that your patches are as easy to follow/review as possible.</p>
<ul>
<li>https://git-scm.com/docs/git-rebase</li>
</ul>
<hr style="height:1px;margin-bottom:20px;background-color:#ddd;color:#ddd" />
<h3 id="make-sure-that-your-patches-contain-relevant-changes">Make sure that your patches contain relevant changes</h3>
<p>It will aid <em>code-review</em> in the sense that one does not have to review things that are later removed or modified (by the same set of patches).</p>
<p>Two examples (each addressing a different issue, but boils down to relevance):</p>
<ul>
<li><p>Given that the changes to <code>modules/gui/qt/ui/open_cloud.ui</code> are effectively reversed in patch <code>#3</code> my recommendation is that you rebase/review your patches so that the <em>patch-set</em> only contains relevant changes.</p></li>
<li><p>You wrap a line added in this commit with an <code>#ifdef</code> in patch <code>#3</code>; it would make a lot more sense to incorporate the relevant changes to a certain part of the implementation in the same patch (especially when they are this tightly coupled).</p></li>
</ul>
<hr style="height:1px;margin-bottom:20px;background-color:#ddd;color:#ddd" />
<h3 id="order-your-commits-in-a-way-that-make-sense">Order your commits in a way that make sense</h3>
<p>It certainly makes more sense to first add <em>libcloudstorage</em> to the build-system, and <em>then</em> implement the relevant bindings for interacting/making use of it.</p>
<p>The <em>“stub”</em> creating in <code>modules/gui/qt</code> is redundant (see previous section).</p>
<p>On 2016-10-20 07:59, Paweł Wegner wrote:</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> ---
include/vlc_interface.h | 1 +
modules/gui/qt/Makefile.am | 2 ++
modules/gui/qt/components/open_panels.cpp | 14 ++++++++
modules/gui/qt/components/open_panels.hpp | 14 ++++++++
modules/gui/qt/dialogs/open.cpp | 3 ++
modules/gui/qt/dialogs/open.hpp | 2 ++
modules/gui/qt/dialogs_provider.cpp | 7 ++++
modules/gui/qt/dialogs_provider.hpp | 1 +
modules/gui/qt/menus.cpp | 2 ++
modules/gui/qt/pixmaps/types/cloud.png | Bin 0 -> 1358 bytes
modules/gui/qt/ui/open_cloud.ui | 58 ++++++++++++++++++++++++++++++
modules/gui/qt/vlc.qrc | 1 +
12 files changed, 105 insertions(+)
create mode 100644 modules/gui/qt/pixmaps/types/cloud.png
create mode 100644 modules/gui/qt/ui/open_cloud.ui
diff --git a/include/vlc_interface.h b/include/vlc_interface.h
index a4006f0..d42a19a 100644
--- a/include/vlc_interface.h
+++ b/include/vlc_interface.h
@@ -118,6 +118,7 @@ typedef enum vlc_intf_dialog {
INTF_DIALOG_NET,
INTF_DIALOG_CAPTURE,
INTF_DIALOG_SAT,
+ INTF_DIALOG_CLOUD,
INTF_DIALOG_DIRECTORY,
INTF_DIALOG_STREAMWIZARD,
diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 8546529..0d3bea4 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -209,6 +209,7 @@ nodist_libqt_plugin_la_SOURCES += \
ui/open_disk.h \
ui/open_net.h \
ui/open_capture.h \
+ ui/open_cloud.h \
ui/open.h \
ui/vlm.h \
ui/podcast_configuration.h \
@@ -249,6 +250,7 @@ libqt_plugin_la_UI = \
ui/open_disk.ui \
ui/open_net.ui \
ui/open_capture.ui \
+ ui/open_cloud.ui \
ui/open.ui \
ui/podcast_configuration.ui \
ui/profiles.ui \
diff --git a/modules/gui/qt/components/open_panels.cpp b/modules/gui/qt/components/open_panels.cpp
index 9f05548..3d0f6d9 100644
--- a/modules/gui/qt/components/open_panels.cpp
+++ b/modules/gui/qt/components/open_panels.cpp
@@ -1403,3 +1403,17 @@ void CaptureOpenPanel::advancedDialog()
module_config_free( p_config );
}
+
+CloudOpenPanel::CloudOpenPanel( QWidget *parent, intf_thread_t *t ) :
+ OpenPanel( parent, t )
+{
+ ui.setupUi(this);
+}
+
+void CloudOpenPanel::clear()
+{
+}
+
+void CloudOpenPanel::updateMRL()
+{
+}
diff --git a/modules/gui/qt/components/open_panels.hpp b/modules/gui/qt/components/open_panels.hpp
index d124a25..af61c6b 100644
--- a/modules/gui/qt/components/open_panels.hpp
+++ b/modules/gui/qt/components/open_panels.hpp
@@ -38,6 +38,7 @@
#include "ui/open_disk.h"
#include "ui/open_net.h"
#include "ui/open_capture.h"
+#include "ui/open_cloud.h"
#include <QFileDialog>
@@ -230,4 +231,17 @@ private slots:
void advancedDialog();
};
+class CloudOpenPanel : public OpenPanel
+{
+ Q_OBJECT
+public:
+ CloudOpenPanel( QWidget *, intf_thread_t * );
+ void clear();
+private:
+ Ui::OpenCloud ui;
+
+public slots:
+ void updateMRL();
+};
+
#endif
diff --git a/modules/gui/qt/dialogs/open.cpp b/modules/gui/qt/dialogs/open.cpp
index 224cfa5..3856099 100644
--- a/modules/gui/qt/dialogs/open.cpp
+++ b/modules/gui/qt/dialogs/open.cpp
@@ -84,6 +84,7 @@ OpenDialog::OpenDialog( QWidget *parent,
discOpenPanel = new DiscOpenPanel( this, p_intf );
netOpenPanel = new NetOpenPanel( this, p_intf );
captureOpenPanel = new CaptureOpenPanel( this, p_intf );
+ cloudOpenPanel = new CloudOpenPanel( this, p_intf );
/* Insert the tabs */
ui.Tab->insertTab( OPEN_FILE_TAB, fileOpenPanel, QIcon( ":/type/file-asym" ),
@@ -94,6 +95,8 @@ OpenDialog::OpenDialog( QWidget *parent,
qtr( "&Network" ) );
ui.Tab->insertTab( OPEN_CAPTURE_TAB, captureOpenPanel,
QIcon( ":/type/capture-card" ), qtr( "Capture &Device" ) );
+ ui.Tab->insertTab( OPEN_CLOUD_TAB, cloudOpenPanel, QIcon( ":/type/cloud" ),
+ qtr( "&Cloud" ) );
/* Hide the Slave input widgets */
ui.slaveLabel->hide();
diff --git a/modules/gui/qt/dialogs/open.hpp b/modules/gui/qt/dialogs/open.hpp
index 0ce6f81..6932851 100644
--- a/modules/gui/qt/dialogs/open.hpp
+++ b/modules/gui/qt/dialogs/open.hpp
@@ -40,6 +40,7 @@ enum {
OPEN_DISC_TAB,
OPEN_NETWORK_TAB,
OPEN_CAPTURE_TAB,
+ OPEN_CLOUD_TAB,
OPEN_TAB_MAX
};
@@ -98,6 +99,7 @@ private:
NetOpenPanel *netOpenPanel;
DiscOpenPanel *discOpenPanel;
CaptureOpenPanel *captureOpenPanel;
+ CloudOpenPanel *cloudOpenPanel;
int i_action_flag;
bool b_pl;
diff --git a/modules/gui/qt/dialogs_provider.cpp b/modules/gui/qt/dialogs_provider.cpp
index 5951b65..8796d56 100644
--- a/modules/gui/qt/dialogs_provider.cpp
+++ b/modules/gui/qt/dialogs_provider.cpp
@@ -139,6 +139,8 @@ void DialogsProvider::customEvent( QEvent *event )
case INTF_DIALOG_SAT:
case INTF_DIALOG_CAPTURE:
openCaptureDialog(); break;
+ case INTF_DIALOG_CLOUD:
+ openCloudDialog(); break;
case INTF_DIALOG_DIRECTORY:
PLAppendDir(); break;
case INTF_DIALOG_PLAYLIST:
@@ -426,6 +428,11 @@ void DialogsProvider::openCaptureDialog()
openDialog( OPEN_CAPTURE_TAB );
}
+void DialogsProvider::openCloudDialog()
+{
+ openDialog(OPEN_CLOUD_TAB);
+}
+
/* Same as the open one, but force the enqueue */
void DialogsProvider::PLAppendDialog( int tab )
{
diff --git a/modules/gui/qt/dialogs_provider.hpp b/modules/gui/qt/dialogs_provider.hpp
index 01faa11..46bc89f 100644
--- a/modules/gui/qt/dialogs_provider.hpp
+++ b/modules/gui/qt/dialogs_provider.hpp
@@ -153,6 +153,7 @@ public slots:
void openUrlDialog();
void openNetDialog();
void openCaptureDialog();
+ void openCloudDialog();
void PLAppendDialog( int tab = OPEN_FILE_TAB );
void MLAppendDialog( int tab = OPEN_FILE_TAB );
diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp
index 8af0317..c70a315 100644
--- a/modules/gui/qt/menus.cpp
+++ b/modules/gui/qt/menus.cpp
@@ -370,6 +370,8 @@ QMenu *VLCMenuBar::FileMenu( intf_thread_t *p_intf, QWidget *parent, MainInterfa
":/type/network", SLOT( openNetDialog() ), "Ctrl+N" );
addDPStaticEntry( menu, qtr( "Open &Capture Device..." ),
":/type/capture-card", SLOT( openCaptureDialog() ), "Ctrl+C" );
+ addDPStaticEntry( menu, qtr( "Open Cloud File..."),
+ ":/type/cloud", SLOT( openCloudDialog() ) );
addDPStaticEntry( menu, qtr( "Open &Location from clipboard" ),
NULL, SLOT( openUrlDialog() ), "Ctrl+V" );
diff --git a/modules/gui/qt/pixmaps/types/cloud.png b/modules/gui/qt/pixmaps/types/cloud.png
new file mode 100644
index 0000000000000000000000000000000000000000..8796aa07d661fdb0ed7018ff146d990aa97484b8
GIT binary patch
literal 1358
zcmZ{k|3A|S9LGPOVb*5z{jBCooG4$Gd`s+<ZpnPV5!1yPJ*?zg>EXM!m1<eOmD-)T
z6x|}s@}(8wa~Psn>CPgxbA?Q|p)!wTH-A9S$K&;Wy<U&U`~B<tQfTl&G;#|P001<}
zk4RQKV?zkIdiHu#ht;N;zMmA1P?Lu^%2M}DX?{`Z0Dv;w5C~LMV%0ke6456-tMbEC
zG|S`=c3@HddGxQL=VIsKW;f^S?SmgvNG)kaF|{dH^LB{paoH7EP5b3`r0Dhbo%1|=
zVJ+L=AF+ca?r}Cj|FW;qp{4Ce8=H16B7-)vMjOdaSYQ4EX)Mh;rO)gcEnYsA04IK%
z9N(%;ZSpaZZ^8pC1#|%UARebmwsAr$wLM^Km<7!<z<rS0uX04UVkxL3t>9~{AE2Dr
z?Z@SRoDjmQLQ}+d3N4ryneQLp_dVMP+}EQ?LrOX+mX&2khpop<rH;>a*4{6=2^`jK
zhQco}^OZX5^j+`<AMJ_9jbO0UOQ|Z+Wxo7LNCD=6rs=)Xt0EzEV9`C=6Pi@&o{m`4
zJhH_eOcsJF5OYb+SpNRq&9)m5J(k^PvX5RK*eZ7V<S9iJnZ#SyB+p3ccOz|5n!LAt
zXx3NxI2e9mq}z}B2fSjafC&Aa;gy`8`BT>tHw%yyqz=&1Pv2WGb!^q3<7RX2+Dg-0
zQ9xrnv^Aqp;`tT&5z6RUKO7vFxqJhi^rl=A>RuMqY9L|Kmt=Z$4NiFgt%Y#@t6Q#Z
zSMcKLy36i^!%EwZ;(MKeWbX9lHN)sx%0zymEY)q|!>s6PG)-7w6vi3pw+Z?CU3m*X
zBB#Oi07!s21PX5Oa6ME!b)kC*qi}H_k6A(k9b~>!hG>cf?`GALo18MhR|eUuoe5h%
zA>+S;_DF(on|9lGliK2pAY;fgc5hm8!Ml~_-|8Z>63!1-pa|LohS?hFqzk!8aF^MR
zQer8^=4`uoe1_)(WJeGI=YcR?UI@RAQ5dX8KFitDFId$pp^ixt<KYVL^-YOkrXrj2
z5frwnmPhT#lNYqQVKhpnv$CgTbw7*xlnAdBzxhR^C%+c&D+rTY^ZR*D*{Q8@aSPh~
zCs?8XN9w_v*SPv$3BIhnw5$-cJGsoPimdPqoI8KhTWTgfYlY&xg$vle-1->BQ)Q&k
z%3-}4(ySCuiN4-K8D-MI(Tnbwhow$tN@MP%?b9?^uH}qhOmFEA&?#4C&=_d0a~w+s
za*PvQrUD>y@7uujayi?BvJWb#EQL|RyLL`nuSA_Ig^3$p&$Q#4eEdM`syjB<qAJI?
z-UeK|n;y>0x*>KjYK%`4^WJt9*xd#&kz)PDGOsR6t<qdKQliW+X5)OItU?yLktAfF
zgM9<VkKmSCiYP5JeT&JZEd@ppe!=j>a{^bLN3<mrzQwduHwi=IiD6k9SjRCO>A&bC
zc&55~0FNT>dR>{Yw=60o9Co$v+V;YJM3(B3mhabVHNL9q^X3s=1(jIWeGzcd5Ao0C
zFZbup)W^+dr4K#h5_gAi@Icp}|J))zZo_f4jPg`Gt}uH6OzEAe3dp|<%e<<XnM!Ox
zJj%>Q=CTLPUiKOf=zV^|$b?Op4luly;dZ>?d#TDS+v=iwoQl9n`9PPZb0M8PVIT)h
zF6adNvl-*ef0eeik@5Cu<=or-v5xNCK`&~j-T+fqppx0=?+Pyz2BKlRsa3?yecrdu
zn19Ao^NDfQVG>vV8^-U@3N$NWTbwz$z+rux7k%B&RuSVNy10!$36Ks16Z!jN&;Ad)
C2XwIj
literal 0
HcmV?d00001
diff --git a/modules/gui/qt/ui/open_cloud.ui b/modules/gui/qt/ui/open_cloud.ui
new file mode 100644
index 0000000..1401402
--- /dev/null
+++ b/modules/gui/qt/ui/open_cloud.ui
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpenCloud</class>
+ <widget class="QWidget" name="OpenCloud">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <widget class="QPushButton" name="pushButton">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>20</y>
+ <width>99</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>GoogleDrive</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="pushButton_2">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>99</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>OneDrive</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="pushButton_3">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>80</y>
+ <width>99</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Dropbox</string>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/modules/gui/qt/vlc.qrc b/modules/gui/qt/vlc.qrc
index fbf5bfd..7cc3d47 100644
--- a/modules/gui/qt/vlc.qrc
+++ b/modules/gui/qt/vlc.qrc
@@ -90,6 +90,7 @@
<file alias="stream">pixmaps/types/type_stream.png</file>
<file alias="node">pixmaps/types/type_node.png</file>
<file alias="playlist">pixmaps/types/type_playlist.png</file>
+ <file alias="cloud">pixmaps/types/cloud.png</file>
</qresource>
<qresource prefix="/">
<file alias="down_arrow">pixmaps/arrow_down_dark.png</file>
--
2.9.3
_______________________________________________
vlc-devel mailing list
To unsubscribe or modify your subscription options:
https://mailman.videolan.org/listinfo/vlc-devel</code></pre>
</blockquote>
</body>
</html>