Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (3)
Showing
with 249 additions and 66 deletions
......@@ -109,6 +109,13 @@ void DialogErrorModel::pushError(const DialogError & error)
endInsertRows();
if (lastNotificationText == error.title)
repeatedNotificationCount += 1;
else{
lastNotificationText = error.title;
repeatedNotificationCount = 1;
}
emit countChanged();
}
......@@ -121,6 +128,21 @@ int DialogErrorModel::count() const
return m_data.count();
}
QString DialogErrorModel::notificationText() const
{
return lastNotificationText;
}
int DialogErrorModel::repeatedMessageCount() const
{
return repeatedNotificationCount;
}
void DialogErrorModel::resetRepeatedMessageCount()
{
repeatedNotificationCount = 0;
}
//=================================================================================================
// DialogModel
//=================================================================================================
......
......@@ -33,6 +33,7 @@
#include <QAbstractListModel>
#include "qt.hpp"
#include "util/singleton.hpp"
class DialogId
{
......@@ -54,13 +55,15 @@ public: // Variables
Q_DECLARE_METATYPE(DialogId)
class DialogErrorModel : public QAbstractListModel
class DialogErrorModel : public QAbstractListModel, public Singleton<DialogErrorModel>
{
Q_OBJECT
Q_ENUMS(DialogRoles)
Q_PROPERTY(int count READ count NOTIFY countChanged FINAL)
Q_PROPERTY(QString notificationText READ notificationText NOTIFY countChanged FINAL)
Q_PROPERTY(int repeatedMessageCount READ repeatedMessageCount NOTIFY countChanged FINAL)
public: // Enums
enum DialogRoles
......@@ -75,10 +78,12 @@ private:
QString title;
QString text;
};
QString lastNotificationText;
int repeatedNotificationCount = 0;
public:
explicit DialogErrorModel(qt_intf_t* intf, QObject * parent = nullptr);
~DialogErrorModel();
virtual ~DialogErrorModel();
public: // QAbstractItemModel implementation
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override;
......@@ -100,10 +105,15 @@ signals:
public: // Properties
int count() const;
QString notificationText() const;
int repeatedMessageCount() const;
Q_INVOKABLE void resetRepeatedMessageCount();
private: // Variables
QList<DialogError> m_data;
qt_intf_t* m_intf = nullptr;
friend class Singleton<DialogErrorModel>;
};
class DialogModel : public QObject
......
......@@ -44,7 +44,10 @@ Item {
// Events
//---------------------------------------------------------------------------------------------
Component.onCompleted: if (DialogErrorModel.count) errorPopup.state = "visible"
Component.onCompleted: if (DialogErrorModel.repeatedMessageCount){
hideErrorPopupTimer.restart()
errorPopup.state = "visible"
}
Component.onDestruction: {
if (questionDialog.dialogId !== null) {
......@@ -116,7 +119,10 @@ Item {
{
target: DialogErrorModel
onCountChanged: errorPopup.state = "visible"
onCountChanged: {
hideErrorPopupTimer.restart()
errorPopup.state = "visible"
}
}
//---------------------------------------------------------------------------------------------
......@@ -131,52 +137,103 @@ Item {
Widgets.DrawerExt {
id: errorPopup
property string messageText
property int repeatedMessageCount: 0
anchors {
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
bottomMargin: VLCStyle.margin_small
}
edge: Widgets.DrawerExt.Edges.Bottom
width: parent.width * 0.8
width: contentItem.layoutWidth
height: contentItem.height
z: 10
component: Rectangle {
color: "gray"
opacity: 0.7
width: errorPopup.width
height: VLCStyle.fontHeight_normal * 5
color: VLCStyle.colors.alert
height: messageText.implicitHeight + VLCStyle.margin_normal
radius: VLCStyle.fontHeight_normal / 2
Flickable {
anchors.fill: parent
anchors.margins: VLCStyle.fontHeight_normal / 2
ScrollBar.vertical: ScrollBar{}
contentY: VLCStyle.fontHeight_normal * ((DialogErrorModel.count * 2) - 4)
clip: true
ListView {
width: parent.width
height: VLCStyle.fontHeight_normal * DialogErrorModel.count * 2
model: DialogErrorModel
delegate: Column {
Text {
text: model.title
font.pixelSize: VLCStyle.fontSize_normal
font.bold: true
color: "red"
}
Text {
text: model.text
font.pixelSize: VLCStyle.fontSize_normal
}
property real layoutWidth: layout.width
RowLayout {
id: layout
spacing: VLCStyle.margin_xxsmall
anchors.top: parent.top
anchors.bottom: parent.bottom
Widgets.IconLabel {
text: VLCIcons.info
Layout.leftMargin: VLCStyle.margin_xxsmall
}
Text {
id: messageText
Layout.maximumWidth: root.width * 0.5
Layout.leftMargin: VLCStyle.margin_xxsmall
Layout.rightMargin: VLCStyle.margin_xxsmall
text: (DialogErrorModel.repeatedMessageCount > 1 ? '[' + DialogErrorModel.repeatedMessageCount + '] ' : '')
+ DialogErrorModel.notificationText
wrapMode: Text.WrapAnywhere
font.pixelSize: VLCStyle.fontSize_normal
font.bold: true
color: "white"
}
Widgets.TextToolButton {
id: detailsBtn
text: I18n.qtr("Show Details")
onClicked: {
hideErrorPopupTimer.stop()
errorPopup.state = "hidden"
DialogErrorModel.resetRepeatedMessageCount()
DialogsProvider.messagesDialog(1)
}
background: Widgets.AnimatedBackground {
active: visualFocus
radius: VLCStyle.dp(4, VLCStyle.scale)
backgroundColor: detailsBtn.hovered ? VLCStyle.colors.setColorAlpha(VLCStyle.colors.buttonHover, 0.5)
: VLCStyle.colors.setColorAlpha(VLCStyle.colors.buttonHover, 0.3)
}
}
Widgets.IconToolButton {
id: closeBtn
size: VLCStyle.icon_normal
iconText: VLCIcons.clear
text: I18n.qtr("Dismiss")
Layout.rightMargin: VLCStyle.margin_xxsmall
onClicked: {
hideErrorPopupTimer.stop()
errorPopup.state = "hidden"
DialogErrorModel.resetRepeatedMessageCount()
}
background: Widgets.AnimatedBackground {
active: visualFocus
radius: VLCStyle.dp(4, VLCStyle.scale)
backgroundColor: closeBtn.hovered ? VLCStyle.colors.setColorAlpha(VLCStyle.colors.buttonHover, 0.5)
: VLCStyle.colors.setColorAlpha(VLCStyle.colors.buttonHover, 0.0)
}
}
}
}
state: "hidden"
onStateChanged: {
hideErrorPopupTimer.restart()
}
Timer {
id: hideErrorPopupTimer
......@@ -184,6 +241,7 @@ Item {
repeat: false
onTriggered: {
errorPopup.state = "hidden"
DialogErrorModel.resetRepeatedMessageCount()
}
}
}
......
......@@ -292,9 +292,14 @@ void DialogsProvider::synchroDialog()
extDialog->hide();
}
void DialogsProvider::messagesDialog()
void DialogsProvider::messagesDialog(int page)
{
MessagesDialog::getInstance( p_intf )->toggleVisible();
MessagesDialog *msgDialog = MessagesDialog::getInstance( p_intf );
if(!msgDialog->isVisible() || page)
msgDialog->showTab(page);
else
msgDialog->toggleVisible();
}
void DialogsProvider::gotoTimeDialog()
......
......@@ -134,7 +134,7 @@ public slots:
void firstRunDialog();
void extendedDialog();
void synchroDialog();
void messagesDialog();
void messagesDialog( int page = 0 );
void sendKey( int key );
#ifdef ENABLE_VLM
void vlmDialog();
......
......@@ -43,6 +43,7 @@
#include "dialogs/messages/messages.hpp"
#include "dialogs/dialogs/dialogmodel.hpp"
enum {
MsgEvent_Type = QEvent::User + MsgEventTypeOffset + 1,
......@@ -82,6 +83,13 @@ MessagesDialog::MessagesDialog( qt_intf_t *_p_intf)
ui.bottomButtonsBox->addButton( new QPushButton( qtr("&Close"), this ),
QDialogButtonBox::RejectRole );
/* Error messages */
QPlainTextEdit * errorsList = ui.errors;
DialogErrorModel *errors = DialogErrorModel::getInstance<false>();
connect( errors, &DialogErrorModel::countChanged, this, &MessagesDialog::errorsCountChanged );
for(int i=0; i<errors->count(); i++)
addError(i);
/* Modules tree */
ui.modulesTree->setHeaderHidden( true );
......@@ -162,6 +170,46 @@ void MessagesDialog::updateConfig()
getSettings()->endGroup();
}
void MessagesDialog::addError(int row){
DialogErrorModel *errors = DialogErrorModel::getInstance<false>();
QPlainTextEdit * errorsList = ui.errors;
bool b_autoscroll = ( errorsList->verticalScrollBar()->value()
+ errorsList->verticalScrollBar()->pageStep()
>= errorsList->verticalScrollBar()->maximum() );
/* Copy selected text to the clipboard */
if( errorsList->textCursor().hasSelection() )
errorsList->copy();
/* Fix selected text bug */
if( !errorsList->textCursor().atEnd() ||
errorsList->textCursor().anchor() != errorsList->textCursor().position() )
errorsList->moveCursor( QTextCursor::End );
/* Start a new logic block */
if( !errorsList->document()->isEmpty() )
errorsList->textCursor().insertBlock();
QTextCharFormat format;
format.setProperty( QTextFormat::FontItalic, true );
format.setForeground( Qt::darkRed );
errorsList->textCursor().insertText( errors->data(errors->index(row, 0), DialogErrorModel::DIALOG_TITLE).toString()+": ", format );
format.setProperty( QTextFormat::FontItalic, false );
format.setForeground( errorsList->palette().windowText() );
errorsList->textCursor().insertText( errors->data(errors->index(row, 0), DialogErrorModel::DIALOG_TEXT).toString(), format );
if ( b_autoscroll ) errorsList->ensureCursorVisible();
}
void MessagesDialog::errorsCountChanged(){
DialogErrorModel *errors = DialogErrorModel::getInstance(p_intf);
addError(errors->count() - 1);
}
void MessagesDialog::filterMessages()
{
QMutexLocker locker( &messageLocker );
......@@ -342,13 +390,15 @@ void MessagesDialog::buildTree( QTreeWidgetItem *parentItem,
void MessagesDialog::updateOrClear()
{
if( ui.mainTab->currentIndex() == 1)
if( ui.mainTab->currentIndex() == 2)
{
ui.modulesTree->clear();
buildTree( NULL, VLC_OBJECT( vlc_object_instance(p_intf) ) );
}
else if( ui.mainTab->currentIndex() == 0 )
ui.messages->clear();
else if( ui.mainTab->currentIndex() == 1 )
ui.errors->clear();
#ifndef NDEBUG
else
updatePLTree();
......@@ -357,9 +407,17 @@ void MessagesDialog::updateOrClear()
void MessagesDialog::tabChanged( int i )
{
updateButton->setIcon( i != 0 ? QIcon(":/menu/update.svg") : QIcon(":/menu/clear.svg") );
updateButton->setToolTip( i != 0 ? qtr("Update the tree")
: qtr("Clear the messages") );
updateButton->setIcon( i > 1 ? QIcon(":/menu/update.svg") : QIcon(":/menu/clear.svg") );
updateButton->setToolTip( i > 1 ? qtr("Update the tree")
: i == 0 ? qtr("Clear the messages")
: qtr("Clear the errors"));
}
void MessagesDialog::showTab( int i )
{
ui.mainTab->setCurrentIndex(i);
show();
raise();
}
void MessagesDialog::MsgCallback( void *self, int type, const vlc_log_t *item,
......
......@@ -59,6 +59,8 @@ private slots:
void updateOrClear();
void tabChanged( int );
void filterMessages();
void addError( int );
void errorsCountChanged();
private:
void buildTree( QTreeWidgetItem *, vlc_object_t * );
......@@ -70,6 +72,9 @@ private:
QTreeWidget *pldebugTree;
void updatePLTree();
#endif
public:
void showTab( int i );
};
#endif
......@@ -89,6 +89,23 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Errors</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPlainTextEdit" name="errors">
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Modules Tree</string>
......
......@@ -130,10 +130,12 @@ MainUI::MainUI(qt_intf_t *p_intf, MainCtx *mainCtx, QWindow* interfaceWindow, Q
assert(DialogsProvider::getInstance());
SingletonRegisterHelper<DialogsProvider>::setInstance(DialogsProvider::getInstance());
assert(DialogErrorModel::getInstance<false>());
SingletonRegisterHelper<DialogErrorModel>::setInstance( DialogErrorModel::getInstance<false>() );
SingletonRegisterHelper<NavigationHistory>::setInstance( new NavigationHistory(this) );
SingletonRegisterHelper<I18n>::setInstance( new I18n(this) );
SingletonRegisterHelper<SystemPalette>::setInstance( new SystemPalette(this) );
SingletonRegisterHelper<DialogErrorModel>::setInstance( new DialogErrorModel(m_intf, this));
SingletonRegisterHelper<QmlKeyHelper>::setInstance( new QmlKeyHelper(this) );
SingletonRegisterHelper<SVGColorImage>::setInstance( new SVGColorImage(this) );
......
......@@ -31,6 +31,7 @@ import "qrc:///player/" as P
import "qrc:///util/" as Util
import "qrc:///util/Helpers.js" as Helpers
import "qrc:///dialogs/" as DG
FocusScope {
id: root
......@@ -486,6 +487,16 @@ FocusScope {
}
}
DG.Dialogs {
z: 10
bgContent: root
anchors {
bottom: miniPlayer.visible ? miniPlayer.top : parent.bottom
left: parent.left
right: parent.right
}
}
P.MiniPlayer {
id: miniPlayer
......
......@@ -27,7 +27,6 @@ import org.videolan.compat 0.1
import "qrc:///widgets/" as Widgets
import "qrc:///style/"
import "qrc:///dialogs/" as DG
import "qrc:///playlist/" as PL
Item {
......@@ -37,7 +36,6 @@ Item {
property bool _playlistReady: false
property alias g_root: root
property QtObject g_dialogs: dialogsLoader.item
BindingCompat {
target: VLCStyle.self
......@@ -198,25 +196,6 @@ Item {
source: "qrc:///menus/GlobalShortcuts.qml"
}
Loader {
id: dialogsLoader
anchors.fill: parent
asynchronous: true
source: "qrc:///dialogs/Dialogs.qml"
onLoaded: {
item.bgContent = root
}
}
Connections {
target: dialogsLoader.item
onRestoreFocus: {
stackView.focus = true
}
}
MouseArea {
/// handles mouse navigation buttons
anchors.fill: parent
......
......@@ -28,6 +28,7 @@ import "qrc:///style/"
import "qrc:///widgets/" as Widgets
import "qrc:///playlist/" as PL
import "qrc:///util/Helpers.js" as Helpers
import "qrc:///dialogs/" as DG
FocusScope {
id: rootPlayer
......@@ -563,6 +564,18 @@ FocusScope {
}
}
DG.Dialogs {
z: 10
bgContent: rootPlayer
anchors {
bottom: controlBarView.contentItem.visible ? controlBarView.top : rootPlayer.bottom
left: parent.left
right: parent.right
bottomMargin: rootPlayer.pinVideoControls || !controlBarView.contentItem.visible ? 0 : - VLCStyle.margin_large
}
}
Widgets.DrawerExt {
id: controlBarView
......
......@@ -57,6 +57,7 @@ extern "C" char **environ;
#include "player/player_controller.hpp" /* THEMIM destruction */
#include "playlist/playlist_controller.hpp" /* THEMPL creation */
#include "dialogs/dialogs_provider.hpp" /* THEDP creation */
#include "dialogs/dialogs/dialogmodel.hpp"
#ifdef _WIN32
# include "maininterface/mainctx_win32.hpp"
#else
......@@ -733,6 +734,8 @@ static void *Thread( void *obj )
app.setDesktopFileName( PACKAGE );
DialogErrorModel::getInstance( p_intf );
/* Initialize the Dialog Provider and the Main Input Manager */
DialogsProvider::getInstance( p_intf );
p_intf->p_mainPlayerController = new PlayerController(p_intf);
......@@ -899,6 +902,8 @@ static void *ThreadCleanup( qt_intf_t *p_intf, CleanupReason cleanupReason )
*/
DialogsProvider::killInstance();
DialogErrorModel::killInstance();
/* Destroy the main playlist controller */
if (p_intf->p_mainPlaylistController)
{
......
......@@ -175,7 +175,7 @@ Item {
property color accentText: "#ffffff";
property color alert: "red";
property color alert: "#d70022";
property color buffer: "#696969";
......@@ -234,7 +234,6 @@ Item {
lowerBanner: "#ffffff"
accent: "#ff610a";
alert: "#ff0000";
separator: "#ededed";
playerControlBarFg: "#333333"
......@@ -268,7 +267,6 @@ Item {
topBannerHover: "#272727"
lowerBanner: "#000000"
accent: "#ff8800"
alert: "#ff0000"
separator: "#2d2d2d"
playerControlBarFg: "#ffffff"
......