errors.cpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * errors.cpp : Errors
  3.  ****************************************************************************
  4.  * Copyright ( C ) 2006 the VideoLAN team
  5.  * $Id: a2bd94f73d44c7e92b93bcf86005c70a3967a7cb $
  6.  *
  7.  * Authors: Clément Stenac <zorglub@videolan.org>
  8.  *          Jean-Baptiste Kempf <jb@videolan.org>
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * ( at your option ) any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23.  *****************************************************************************/
  24. #ifdef HAVE_CONFIG_H
  25. # include "config.h"
  26. #endif
  27. #include "dialogs/errors.hpp"
  28. #include <QTextCursor>
  29. #include <QTextEdit>
  30. #include <QCheckBox>
  31. #include <QGridLayout>
  32. #include <QDialogButtonBox>
  33. #include <QPushButton>
  34. ErrorsDialog *ErrorsDialog::instance = NULL;
  35. ErrorsDialog::ErrorsDialog( QWidget *parent, intf_thread_t *_p_intf )
  36.              : QVLCDialog( parent, _p_intf )
  37. {
  38.     setWindowTitle( qtr( "Errors" ) );
  39.     resize( 500 , 300 );
  40.     QGridLayout *layout = new QGridLayout( this );
  41.     QDialogButtonBox *buttonBox = new QDialogButtonBox;
  42.     QPushButton *closeButton = new QPushButton( qtr( "&Close" ) );
  43.     QPushButton *clearButton = new QPushButton( qtr( "&Clear" ) );
  44.     buttonBox->addButton( closeButton, QDialogButtonBox::AcceptRole );
  45.     buttonBox->addButton( clearButton, QDialogButtonBox::ActionRole );
  46.     messages = new QTextEdit();
  47.     messages->setReadOnly( true );
  48.     messages->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
  49.     stopShowing = new QCheckBox( qtr( "Hide future errors" ) );
  50.     layout->addWidget( messages, 0, 0, 1, 3 );
  51.     layout->addWidget( stopShowing, 1, 0 );
  52.     layout->addItem( new QSpacerItem( 200, 20, QSizePolicy::Expanding ), 2,0 );
  53.     layout->addWidget( buttonBox, 2, 2 );
  54.     CONNECT( buttonBox, accepted(), this, close() );
  55.     BUTTONACT( clearButton, clear() );
  56.     BUTTONACT( stopShowing, dontShow() );
  57. }
  58. void ErrorsDialog::addError( const QString& title, const QString& text )
  59. {
  60.     add( true, title, text );
  61. }
  62. /*void ErrorsDialog::addWarning( QString title, QString text )
  63. {
  64.     add( false, title, text );
  65. }*/
  66. void ErrorsDialog::add( bool error, const QString& title, const QString& text )
  67. {
  68.     if( stopShowing->isChecked() ) return;
  69.     messages->textCursor().movePosition( QTextCursor::End );
  70.     messages->setTextColor( error ? "red" : "yellow" );
  71.     messages->insertPlainText( title + QString( ":n" ) );
  72.     messages->setTextColor( "black" );
  73.     messages->insertPlainText( text + QString( "n" ) );
  74.     messages->ensureCursorVisible();
  75.     show();
  76. }
  77. void ErrorsDialog::close()
  78. {
  79.     hide();
  80. }
  81. void ErrorsDialog::clear()
  82. {
  83.     messages->clear();
  84. }
  85. void ErrorsDialog::dontShow()
  86. {
  87.     if( stopShowing->isChecked() )
  88.     {
  89.         config_PutInt( p_intf, "qt-show-errors", 0 );
  90.     }
  91. }