void About::showAboutDialog() { m_dialog = new QDialog ( QApplication::focusWidget() ); m_dialog->setWindowTitle ( QObject::tr( "About..." ) ); QVBoxLayout * layout = new QVBoxLayout ( m_dialog ); QHBoxLayout * titleLayout = new QHBoxLayout ( ); QLabel * programName = new QLabel ( QString ( "<b>" ) + QObject::tr(ApplicationName) + QString ( " " ) +QString( ZMVIEWER_VERSION_STRING ) + QString ( "</b>" ), m_dialog ); titleLayout->addWidget ( programName ); QLabel * programIcon = new QLabel ( m_dialog ); programIcon->setPixmap ( qApp->windowIcon().pixmap ( 32,32 ) ); titleLayout->addWidget ( programIcon ); layout->addLayout ( titleLayout ); QTabWidget * tab = new QTabWidget ( m_dialog ); QLabel * label = new QLabel ( aboutText (), m_dialog ); tab->addTab ( label , QObject::tr( "About" ) ); QTextBrowser * authors = new QTextBrowser ( m_dialog ); authors->setHtml ( authorsText () ); authors->setReadOnly ( true ); authors->setOpenExternalLinks ( m_dialog ); tab->addTab ( authors , QObject::tr( "Authors and Thanks" ) ); layout->addWidget ( tab ); QPushButton * button = new QPushButton ( QObject::tr( "Ok" ) , m_dialog ); QHBoxLayout * buttonLayout = new QHBoxLayout ( ); buttonLayout->addItem ( new QSpacerItem ( 20,30, QSizePolicy::Expanding ) ); buttonLayout->addWidget ( button ); layout->addLayout ( buttonLayout ); QObject::connect ( button, SIGNAL ( clicked() ),m_dialog,SLOT ( accept() ) ); m_dialog->exec(); m_dialog->deleteLater(); }
HelpDialog::HelpDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf ) { setWindowTitle( qtr( "Help" ) ); setWindowRole( "vlc-help" ); setMinimumSize( 350, 300 ); QVBoxLayout *layout = new QVBoxLayout( this ); QTextBrowser *helpBrowser = new QTextBrowser( this ); helpBrowser->setOpenExternalLinks( true ); helpBrowser->setHtml( qtr(I_LONGHELP) ); QDialogButtonBox *closeButtonBox = new QDialogButtonBox( this ); closeButtonBox->addButton( new QPushButton( qtr("&Close") ), QDialogButtonBox::RejectRole ); closeButtonBox->setFocus(); layout->addWidget( helpBrowser ); layout->addWidget( closeButtonBox ); CONNECT( closeButtonBox, rejected(), this, close() ); restoreWidgetPosition( "Help", QSize( 500, 450 ) ); }
AboutDialog::AboutDialog(const QString &lang, QWidget *parent) : Dialog(parent, Qt::MSWindowsFixedSizeDialogHint) { setWindowTitle(tr("About")); setWindowFlags (windowFlags() & ~Qt::WindowContextHelpButtonHint); setObjectName("AboutDialog"); setMinimumWidth(480); QTabWidget *tabWidget = new QTabWidget(); QyurSqlTreeView treeView; QString revisionStr; if (QString("%1").arg(VCS_REVISION) != "0") { revisionStr = "<BR>" + tr("Revision") + " " + QString("%1").arg(VCS_REVISION); } QString appInfo = "<html><style>a { color: blue; text-decoration: none; }</style><body>" "<CENTER>" "<IMG SRC=\":/images/images/logo.png\">" "<BR><IMG SRC=\":/images/images/logo_text.png\">" "<P>" + tr("Version") + " " + "<B>" + QString(STRPRODUCTVER) + "</B>" + QString(" (%1)").arg(STRDATE) + revisionStr + "</P>" + "<BR>" + tr("QuiteRSS is a open-source cross-platform RSS/Atom news reader") + "<P>" + tr("Includes:") + QString(" Qt-%1, SQLite-%2, QyurSqlTreeView-%3,"). arg(QT_VERSION_STR).arg(SQLITE_VERSION). arg(treeView.metaObject()->classInfo(treeView.metaObject()->indexOfClassInfo("Version")).value()) + "<BR>" + QString(" WebKit-%4, QupZilla-1.7.0"). arg(qWebKitVersion()) + "</P>" + QString("<a href=\"%1\">%1</a>").arg("http://quiterss.org") + "<P>Copyright © 2011-2015 QuiteRSS Team " + QString("<a href=\"%1\">E-mail</a>").arg("mailto:[email protected]") + "</P>" "</CENTER></body></html>"; QLabel *infoLabel = new QLabel(appInfo); infoLabel->setOpenExternalLinks(true); infoLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); QHBoxLayout *mainLayout = new QHBoxLayout(); mainLayout->addWidget(infoLabel); QWidget *mainWidget = new QWidget(); mainWidget->setLayout(mainLayout); QTextEdit *authorsTextEdit = new QTextEdit(this); authorsTextEdit->setReadOnly(true); QFile file; file.setFileName(":/file/AUTHORS"); file.open(QFile::ReadOnly); authorsTextEdit->setText(QString::fromUtf8(file.readAll())); file.close(); QHBoxLayout *authorsLayout = new QHBoxLayout(); authorsLayout->addWidget(authorsTextEdit); QWidget *authorsWidget = new QWidget(); authorsWidget->setLayout(authorsLayout); QTextBrowser *historyTextBrowser = new QTextBrowser(); historyTextBrowser->setOpenExternalLinks(true); if (lang.contains("ru", Qt::CaseInsensitive)) file.setFileName(":/file/HISTORY_RU"); else file.setFileName(":/file/HISTORY_EN"); file.open(QFile::ReadOnly); historyTextBrowser->setHtml(QString::fromUtf8(file.readAll())); file.close(); QHBoxLayout *historyLayout = new QHBoxLayout(); historyLayout->addWidget(historyTextBrowser); QWidget *historyWidget = new QWidget(); historyWidget->setLayout(historyLayout); QTextEdit *licenseTextEdit = new QTextEdit(); licenseTextEdit->setReadOnly(true); file.setFileName(":/file/COPYING"); file.open(QFile::ReadOnly); QString str = QString(QString::fromUtf8(file.readAll())).section("-----", 1, 1); licenseTextEdit->setText(str); file.close(); QHBoxLayout *licenseLayout = new QHBoxLayout(); licenseLayout->addWidget(licenseTextEdit); QWidget *licenseWidget = new QWidget(); licenseWidget->setLayout(licenseLayout); QString portable; if (mainApp->isPortable()) { if (!mainApp->isPortableAppsCom()) portable = "(Portable)"; else portable = "(PortableApps)"; } Settings settings; QString information = "<table border=\"0\"><tr>" "<td>" + tr("Version") + " </td>" "<td>" + QString("%1.%2 %3 %4").arg(STRPRODUCTVER).arg(VCS_REVISION).arg(portable).arg(STRDATE) + "</td>" "</tr><tr></tr><tr>" "<td>" + tr("Application directory:") + " </td>" "<td>" + QCoreApplication::applicationDirPath() + "</td>" "</tr><tr>" "<td>" + tr("Resource directory:") + " </td>" "<td>" + mainApp->resourcesDir() + "</td>" "</tr><tr>" "<td>" + tr("Data directory:") + " </td>" "<td>" + mainApp->dataDir() + "</td>" "</tr><tr>" "<td>" + tr("Backup directory:") + " </td>" "<td>" + mainApp->dataDir() + "/backup" + "</td>" "</tr><tr></tr><tr>" "<td>" + tr("Database file:") + " </td>" "<td>" + mainApp->dbFileName() + "</td>" "</tr><tr>" "<td>" + tr("Settings file:") + " </td>" "<td>" + settings.fileName() + "</td>" "</tr><tr>" "<td>" + tr("Log file:") + " </td>" "<td>" + mainApp->dataDir() + "/debug.log" + "</td>" "</tr></table>"; QTextEdit *informationTextEdit = new QTextEdit(); informationTextEdit->setReadOnly(true); informationTextEdit->setText(information); QHBoxLayout *informationLayout = new QHBoxLayout(); informationLayout->addWidget(informationTextEdit); QWidget *informationWidget = new QWidget(); informationWidget->setLayout(informationLayout); tabWidget->addTab(mainWidget, tr("Version")); tabWidget->addTab(authorsWidget, tr("Authors")); tabWidget->addTab(historyWidget, tr("History")); tabWidget->addTab(licenseWidget, tr("License")); tabWidget->addTab(informationWidget, tr("Information")); pageLayout->addWidget(tabWidget); buttonBox->addButton(QDialogButtonBox::Close); }
QWidget* ExtensionDialog::CreateWidget( extension_widget_t *p_widget ) { QLabel *label = NULL; QPushButton *button = NULL; QTextBrowser *textArea = NULL; QLineEdit *textInput = NULL; QCheckBox *checkBox = NULL; QComboBox *comboBox = NULL; QListWidget *list = NULL; SpinningIcon *spinIcon = NULL; struct /*extension_widget_t::*/extension_widget_value_t *p_value = NULL; // sunqueen modify assert( p_widget->p_sys_intf == NULL ); switch( p_widget->type ) { case EXTENSION_WIDGET_LABEL: label = new QLabel( qfu( p_widget->psz_text ), this ); p_widget->p_sys_intf = label; label->setTextFormat( Qt::RichText ); label->setOpenExternalLinks( true ); return label; case EXTENSION_WIDGET_BUTTON: button = new QPushButton( qfu( p_widget->psz_text ), this ); clickMapper->setMapping( button, new WidgetMapper( p_widget ) ); CONNECT( button, clicked(), clickMapper, map() ); p_widget->p_sys_intf = button; return button; case EXTENSION_WIDGET_IMAGE: label = new QLabel( this ); label->setPixmap( QPixmap( qfu( p_widget->psz_text ) ) ); if( p_widget->i_width > 0 ) label->setMaximumWidth( p_widget->i_width ); if( p_widget->i_height > 0 ) label->setMaximumHeight( p_widget->i_height ); label->setScaledContents( true ); p_widget->p_sys_intf = label; return label; case EXTENSION_WIDGET_HTML: textArea = new QTextBrowser( this ); textArea->setOpenExternalLinks( true ); textArea->setHtml( qfu( p_widget->psz_text ) ); p_widget->p_sys_intf = textArea; return textArea; case EXTENSION_WIDGET_TEXT_FIELD: textInput = new QLineEdit( this ); textInput->setText( qfu( p_widget->psz_text ) ); textInput->setReadOnly( false ); textInput->setEchoMode( QLineEdit::Normal ); inputMapper->setMapping( textInput, new WidgetMapper( p_widget ) ); /// @note: maybe it would be wiser to use textEdited here? CONNECT( textInput, textChanged(const QString &), inputMapper, map() ); p_widget->p_sys_intf = textInput; return textInput; case EXTENSION_WIDGET_PASSWORD: textInput = new QLineEdit( this ); textInput->setText( qfu( p_widget->psz_text ) ); textInput->setReadOnly( false ); textInput->setEchoMode( QLineEdit::Password ); inputMapper->setMapping( textInput, new WidgetMapper( p_widget ) ); /// @note: maybe it would be wiser to use textEdited here? CONNECT( textInput, textChanged(const QString &), inputMapper, map() ); p_widget->p_sys_intf = textInput; return textInput; case EXTENSION_WIDGET_CHECK_BOX: checkBox = new QCheckBox( this ); checkBox->setText( qfu( p_widget->psz_text ) ); checkBox->setChecked( p_widget->b_checked ); clickMapper->setMapping( checkBox, new WidgetMapper( p_widget ) ); CONNECT( checkBox, stateChanged( int ), clickMapper, map() ); p_widget->p_sys_intf = checkBox; return checkBox; case EXTENSION_WIDGET_DROPDOWN: comboBox = new QComboBox( this ); comboBox->setEditable( false ); for( p_value = p_widget->p_values; p_value != NULL; p_value = p_value->p_next ) { comboBox->addItem( qfu( p_value->psz_text ), p_value->i_id ); } /* Set current item */ if( p_widget->psz_text ) { int idx = comboBox->findText( qfu( p_widget->psz_text ) ); if( idx >= 0 ) comboBox->setCurrentIndex( idx ); } selectMapper->setMapping( comboBox, new WidgetMapper( p_widget ) ); CONNECT( comboBox, currentIndexChanged( const QString& ), selectMapper, map() ); return comboBox; case EXTENSION_WIDGET_LIST: list = new QListWidget( this ); list->setSelectionMode( QAbstractItemView::ExtendedSelection ); for( p_value = p_widget->p_values; p_value != NULL; p_value = p_value->p_next ) { QListWidgetItem *item = new QListWidgetItem( qfu( p_value->psz_text ) ); item->setData( Qt::UserRole, p_value->i_id ); list->addItem( item ); } selectMapper->setMapping( list, new WidgetMapper( p_widget ) ); CONNECT( list, itemSelectionChanged(), selectMapper, map() ); return list; case EXTENSION_WIDGET_SPIN_ICON: spinIcon = new SpinningIcon( this ); spinIcon->play( p_widget->i_spin_loops ); p_widget->p_sys_intf = spinIcon; return spinIcon; default: msg_Err( p_intf, "Widget type %d unknown", p_widget->type ); return NULL; } }
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) { QLabel* labelIcon = new QLabel(this); labelIcon->setPixmap(qApp->windowIcon().pixmap(QSize(58, 58))); #if defined Q_OS_MAC QString strProduct("<span style=\"font-weight:bold;font-size:14px\">WizNote for Mac</span>"); #elif defined Q_OS_LINUX QString strProduct("<span style=\"font-weight:bold;font-size:14px\">WizNote for Linux</span>"); #else QString strProduct("<span style=\"font-weight:bold;font-size:14px\">WizNote for Windows</span>"); #endif QLabel* labelProduct = new QLabel(this); labelProduct->setText(strProduct); QString strPath = QApplication::applicationDirPath(); QFileInfo fi(strPath); QDateTime t = fi.lastModified(); QString strBuildNumber("(%1.%2.%3 %4:%5)"); strBuildNumber = strBuildNumber.\ arg(t.date().year()).\ arg(t.date().month()).\ arg(t.date().day()).\ arg(t.time().hour()).\ arg(t.time().minute()); QString strInfo = QString(tr("<span style=\"font-size:11px\">Version %2 %3</span>")).arg(WIZ_CLIENT_VERSION, strBuildNumber); QLabel* labelBuild = new QLabel(this); labelBuild->setText(strInfo); QTextBrowser* textCredits = new QTextBrowser(this); textCredits->setOpenExternalLinks(true); textCredits->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); QString strHtml; QFile file(":/credits.html"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&file); strHtml = stream.readAll(); file.close(); } //Utils::Misc::loadUnicodeTextFromFile(":/credits.html", strHtml); textCredits->setHtml(strHtml); QLabel* labelCopyright = new QLabel(this); labelCopyright->setText(tr("<span style=\"font-size:10px\">Copy Right 2013 Wiz inc. All rights reserved</span>")); QVBoxLayout* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 10, 0, 10); layout->addWidget(labelIcon); layout->addWidget(labelProduct); layout->addWidget(labelBuild); layout->addWidget(textCredits); layout->addWidget(labelCopyright); layout->setAlignment(labelIcon, Qt::AlignCenter); layout->setAlignment(labelProduct, Qt::AlignCenter); layout->setAlignment(labelBuild, Qt::AlignCenter); layout->setAlignment(textCredits, Qt::AlignCenter); layout->setAlignment(labelCopyright, Qt::AlignCenter); setWindowTitle(tr("About WizNote")); }
TupAbout::TupAbout(QWidget *parent) : TabDialog(Cancel, parent) { setWindowTitle(tr("About") + QString(" Tupi")); setFixedSize(525, 458); QString lang = "en"; if (QString(QLocale::system().name()).length() > 1) lang = QString(QLocale::system().name()).left(2); Qt::WindowFlags flags = 0; flags = Qt::Dialog; flags |= Qt::CustomizeWindowHint; setWindowFlags(flags); //1: Credits /* QFile creditsFile(DATA_DIR + "credits.txt"); QString creditsText; if (creditsFile.open(QIODevice::ReadOnly)) { QTextStream stream(&creditsFile); while (!stream.atEnd()) { QString line = stream.readLine(); creditsText += line + "\n"; } creditsFile.close(); } else { #ifdef K_DEBUG tError() << "Error while trying to read " << creditsFile.fileName(); #endif } */ QDomDocument doc; QString creditsFile = DATA_DIR + "credits.xml"; QFile file(creditsFile); QString creditsText; if (!file.open(QIODevice::ReadOnly)) return; if (!doc.setContent(&file)) { file.close(); return; } file.close(); QDomElement docElem = doc.documentElement(); QDomNode n = docElem.firstChild(); while (!n.isNull()) { QDomElement e = n.toElement(); if (!e.isNull()) { if (e.tagName() == "credits") creditsText = e.text(); } n = n.nextSibling(); } QImage credits = QImage(THEME_DIR + "/images/credits.png"); // SQA: Replace the method fade with a native Qt function // TImageEffect::fade(credits,0.25, palette().background().color()); m_credits = new TAnimWidget(QPixmap::fromImage(credits), creditsText); addTab(m_credits, tr("Credits")); QPalette pal = m_credits->palette(); pal.setColor(QPalette::Foreground, QColor(50, 50, 50, 255)); m_credits->setPalette(pal); m_credits->setFont(QFont("verdana", 24)); // 2: Thanks QTextBrowser *sponsorsText = new QTextBrowser; sponsorsText->setOpenExternalLinks(true); sponsorsText->setSource(SHARE_DIR + "data/help/" + lang + "/thanks.html"); sponsorsText->moveCursor(QTextCursor::Start); addTab(sponsorsText, tr("Thanks")); // 3: Tupi QTextBrowser *tupiText = new QTextBrowser; tupiText->setOpenExternalLinks(true); tupiText->setSource(SHARE_DIR + "data/help/" + lang + "/tupi_short.html"); tupiText->moveCursor(QTextCursor::Start); addTab(tupiText, tr("About")); // 4: Licence QTextBrowser *licenseText = new QTextBrowser; licenseText->setOpenExternalLinks(true); /* QFile licenceFile(DATA_DIR + "/license.html"); QFile licenseFile(SHARE_DIR + "data/help/" + lang + "/philosophy.html"); QString line = ""; if (licenseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&licenseFile); while (! stream.atEnd()) { line += stream.readLine(); //licenceText->append(line); } licenseFile.close(); } licenseText->setHtml(line); */ licenseText->setSource(SHARE_DIR + "data/help/" + lang + "/philosophy.html"); licenseText->moveCursor(QTextCursor::Start); addTab(licenseText, tr("License Agreement")); setButtonText(Cancel, tr("Close")); }
TupAbout::TupAbout(QWidget *parent) : TabDialog(Cancel, parent) { // SQA: Check if these instructions are doing something for real setWindowIcon(QIcon(THEME_DIR + "icons" + QDir::separator() + "about.png")); setWindowTitle(tr("About Tupi")); setFixedSize(525, 458); QStringList path; #ifdef Q_OS_WIN32 QString resources = SHARE_DIR + "help" + QDir::separator(); #else QString resources = SHARE_DIR + "data" + QDir::separator() + "help" + QDir::separator(); #endif path << resources + "css"; path << resources + "images"; QString lang = "en"; if (QString(QLocale::system().name()).length() > 1) lang = QString(QLocale::system().name()).left(2); Qt::WindowFlags flags = 0; flags = Qt::Dialog; flags |= Qt::CustomizeWindowHint; setWindowFlags(flags); // Credits Tab QDomDocument doc; QString creditsFile = DATA_DIR + "credits.xml"; QFile file(creditsFile); QString creditsText; if (!file.open(QIODevice::ReadOnly)) { #ifdef K_DEBUG QString msg = "TupAbout::TupAbout() - Fatal Error: Can't open \"credits.xml\" file"; #ifdef Q_OS_WIN32 qDebug() << msg; #else tError() << msg; #endif #endif return; } if (!doc.setContent(&file)) { #ifdef K_DEBUG QString msg = "TupAbout::TupAbout() - Fatal Error: File \"credits.xml\" is corrupt!"; #ifdef Q_OS_WIN32 qDebug() << msg; #else tError() << msg; #endif #endif file.close(); return; } file.close(); QDomElement docElem = doc.documentElement(); QDomNode n = docElem.firstChild(); while (!n.isNull()) { QDomElement e = n.toElement(); if (!e.isNull()) { if (e.tagName() == "credits") creditsText = e.text(); } n = n.nextSibling(); } m_credits = new TAnimWidget(QPixmap(THEME_DIR + QDir::separator() + "images" + QDir::separator() + "credits.png"), creditsText); addTab(m_credits, tr("Credits")); QPalette pal = m_credits->palette(); pal.setColor(QPalette::Foreground, QColor(50, 50, 50, 255)); m_credits->setPalette(pal); m_credits->setFont(QFont("verdana", 24)); // Acknowledgment Tab QString sponsorFile = QString() + "help" + QDir::separator() + lang + QDir::separator() + "thanks.html"; #ifdef Q_OS_WIN32 QString sponsorPath = SHARE_DIR + sponsorFile; #else QString sponsorPath = SHARE_DIR + "data" + QDir::separator() + sponsorFile; #endif QTextBrowser *sponsorsText = new QTextBrowser; sponsorsText->setSearchPaths(path); sponsorsText->setOpenExternalLinks(true); sponsorsText->setSource(QUrl::fromLocalFile(sponsorPath)); sponsorsText->moveCursor(QTextCursor::Start); addTab(sponsorsText, tr("Thanks")); // Tupi Description Tab QString tupiFile = QString() + "help" + QDir::separator() + lang + QDir::separator() + "tupi_short.html"; #ifdef Q_OS_WIN32 QString tupiPath = SHARE_DIR + tupiFile; #else QString tupiPath = SHARE_DIR + "data" + QDir::separator() + tupiFile; #endif QTextBrowser *tupiText = new QTextBrowser; tupiText->setSearchPaths(path); tupiText->setOpenExternalLinks(true); tupiText->setSource(QUrl::fromLocalFile(tupiPath)); tupiText->moveCursor(QTextCursor::Start); addTab(tupiText, tr("About")); // 4: License Terms Tab QString licenseFile = QString() + "help" + QDir::separator() + lang + QDir::separator() + "philosophy.html"; #ifdef Q_OS_WIN32 QString licensePath = SHARE_DIR + licenseFile; #else QString licensePath = SHARE_DIR + "data" + QDir::separator() + licenseFile; #endif QTextBrowser *licenseText = new QTextBrowser; licenseText->setSearchPaths(path); licenseText->setOpenExternalLinks(true); licenseText->setSource(QUrl::fromLocalFile(licensePath)); licenseText->moveCursor(QTextCursor::Start); addTab(licenseText, tr("License Agreement")); setButtonText(Cancel, tr("Close")); }
/* * Initialize the Help tab with basic information about using OctoPkg */ void MainWindow::initTabHelpUsage() { QWidget *tabHelpUsage = new QWidget(); QGridLayout *gridLayoutX = new QGridLayout(tabHelpUsage); gridLayoutX->setSpacing(0); gridLayoutX->setMargin(0); QTextBrowser *text = new QTextBrowser(tabHelpUsage); text->setObjectName("textBrowser"); text->setReadOnly(true); text->setFrameShape(QFrame::NoFrame); text->setFrameShadow(QFrame::Plain); text->setOpenExternalLinks(true); gridLayoutX->addWidget(text, 0, 0, 1, 1); QString iconPath = "<img height=\"16\" width=\"16\" src=\":/resources/images/"; QString strForMoreInfo = tr("For more information, visit:"); QString html = QString("<h2>OctoPkg</h2>") + QString("<h3><p>") + tr("A Qt5-based pkgng front-end,") + " " + tr("licensed under the terms of") + " "; if ((!WMHelper::isKDERunning() && (!WMHelper::isRazorQtRunning()))) { html += QString("<a style=\"color:'#4BC413'\" href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GPL v2</a>.</p></h3>") + QString("<h4><p>") + strForMoreInfo + " " + QString("<a style=\"color:'#4BC413'\" href=\"http://octopkg.wordpress.com\">http://octopkg.wordpress.com</a>.</p></h4><br>"); } else { html += QString("<a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GPL v2</a>.</p></h3>") + QString("<h4><p>") + strForMoreInfo + " " + QString("<a href=\"http://octopkg.wordpress.com\">http://octopkg.wordpress.com</a>.</p></h4><br>"); } html += tr("Package classification:") + QString("<ul type=\"square\"><li>") + iconPath + "installed.png\"/> " + tr("An installed package") + QString("</li>") + QString("<li>") + iconPath + "unrequired.png\"/> " + tr("An installed package (not required by others)") + QString("</li>") + QString("</li>") + QString("<li>") + iconPath + "noninstalled.png\"/> " + tr("A non installed package") + QString("</li>") + QString("<li>") + iconPath + "outdated.png\"/> " + tr("An outdated package") + QString("</li>") + QString("</li></ul>") + /*QString("<li>") + iconPath + "newer.png\"/> " + tr("A newer than repository package") + QString("</li></ul>") +*/ tr("Basic usage help:") + QString("<ul><li>") + tr("Position the mouse over a package to see its description") + QString("</li><li>") + tr("Double click an installed package to see its contents") + QString("</li><li>") + tr("Right click package to install/reinstall or remove it") + QString("</li></ul>") + tr("Alt+key sequences:") + QString("<ul><li>") + tr("Alt+1 to switch to 'Info' tab") + QString("</li><li>") + tr("Alt+2 to switch to 'Files' tab") + QString("</li><li>") + tr("Alt+3 to switch to 'Transaction' tab") + QString("</li><li>") + tr("Alt+4 to switch to 'Output' tab") + QString("</li><li>") + tr("Alt+5 to switch to 'News' tab") + QString("</li><li>") + tr("Alt+6 or 'F1' to show this help page") + QString("</li><li>") + tr("Alt+\"Left key\" to go to previous clicked anchor") + QString("</li><li>") + tr("Alt+\"Right key\" to go to next clicked anchor") + QString("</li><li>") + tr("Alt+\"Home key\" to go to first clicked anchor") + QString("</li><li>") + tr("Alt+\"End key\" to go to last clicked anchor") + QString("</li></ul>") + tr("Control+key sequences:") + QString("<ul><li>") + tr("Ctrl+D or 'File/Sync database' to sync the local database with latest remote changes") + QString("</li><li>") + tr("Ctrl+U or 'File/System upgrade' to make a full system upgrade") + QString("</li><li>") + tr("Ctrl+L to find a package in the package list") + QString("</li><li>") + tr("Ctrl+F to search for text inside tab Files, News and Usage") + //QString("</li><li>") + // tr("Ctrl+N or 'View/Non installed' to show/hide non installed packages") + QString("</li><li>") + tr("Ctrl+M or 'Transaction/Commit' to start installation/removal of selected packages") + QString("</li><li>") + tr("Ctrl+E or 'Transaction/Cancel' to clear the selection of to be removed/installed packages") + QString("</li><li>") + tr("Ctrl+G or 'File/Get latest distro news' to retrieve the latest RSS based distro news") + QString("</li><li>") + tr("Ctrl+Q or 'File/Exit' to exit the application") + QString("</li></ul>") + /* tr("Control+shift+key sequences:") + QString("<ul><li>") + tr("Ctrl+Shift+C to clean local packages cache (pacman -Sc)") + QString("</li><li>") + tr("Ctrl+Shift+G to display all package groups") + QString("</li><li>") + tr("Ctrl+Shift+R to remove Pacman's transaction lock file") + QString("</li><li>") + tr("Ctrl+Shift+Y to display %1 group").arg(StrConstants::getForeignRepositoryGroupName()) + QString("</li></ul>") +*/ tr("F+key sequences:") + QString("<ul><li>") + tr("F1 to show this help page") + QString("</li><li>") + tr("F4 to open a Terminal whitin the selected directory at Files tab") + QString("</li><li>") + tr("F6 to open a File Manager whitin the selected directory at Files tab") + QString("</li><li>") + tr("F10 to maximize/demaximize package list view") + QString("</li><li>") + tr("F12 to maximize/demaximize Tab's view") + QString("</li></ul>"); text->setText(html); int tindex = ui->twProperties->addTab(tabHelpUsage, StrConstants::getHelpUsage() ); ui->twProperties->setTabText(ui->twProperties->indexOf(tabHelpUsage), StrConstants::getHelpUsage()); SearchBar *searchBar = new SearchBar(this); connect(searchBar, SIGNAL(textChanged(QString)), this, SLOT(searchBarTextChangedInTextBrowser(QString))); connect(searchBar, SIGNAL(closed()), this, SLOT(searchBarClosedInTextBrowser())); connect(searchBar, SIGNAL(findNext()), this, SLOT(searchBarFindNextInTextBrowser())); connect(searchBar, SIGNAL(findPrevious()), this, SLOT(searchBarFindPreviousInTextBrowser())); gridLayoutX->addWidget(searchBar, 1, 0, 1, 1); text->show(); ui->twProperties->setCurrentIndex(tindex); text->setFocus(); }
//----------------------------------------------------------------------------- QWidget* QmitkCmdLineModuleGui::getGui() { if (!d->m_TopLevelWidget) { // Construct additional widgets to contain full GUI. QWidget *aboutBoxContainerWidget = new QWidget(); ctkCollapsibleGroupBox *aboutBox = new ctkCollapsibleGroupBox(aboutBoxContainerWidget); aboutBox->setTitle("About"); QTextBrowser *aboutBrowser = new QTextBrowser(aboutBox); aboutBrowser->setReadOnly(true); aboutBrowser->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); aboutBrowser->setOpenExternalLinks(true); aboutBrowser->setOpenLinks(true); QVBoxLayout *aboutLayout = new QVBoxLayout(aboutBox); aboutLayout->addWidget(aboutBrowser); QVBoxLayout *aboutBoxContainerWidgetLayout = new QVBoxLayout(aboutBoxContainerWidget); aboutBoxContainerWidgetLayout->addWidget(aboutBox); QWidget *helpBoxContainerWidget = new QWidget(); ctkCollapsibleGroupBox *helpBox = new ctkCollapsibleGroupBox(); helpBox->setTitle("Help"); QTextBrowser *helpBrowser = new QTextBrowser(helpBox); helpBrowser->setReadOnly(true); helpBrowser->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); helpBrowser->setOpenExternalLinks(true); helpBrowser->setOpenLinks(true); QVBoxLayout *helpLayout = new QVBoxLayout(helpBox); helpLayout->addWidget(helpBrowser); QVBoxLayout *helpBoxContainerWidgetLayout = new QVBoxLayout(helpBoxContainerWidget); helpBoxContainerWidgetLayout->addWidget(helpBox); QObject* guiHandle = this->guiHandle(); QWidget* generatedGuiWidgets = qobject_cast<QWidget*>(guiHandle); QWidget *topLevelWidget = new QWidget(); QGridLayout *topLevelLayout = new QGridLayout(topLevelWidget); topLevelLayout->setContentsMargins(0,0,0,0); topLevelLayout->setSpacing(0); topLevelLayout->addWidget(aboutBoxContainerWidget, 0, 0); topLevelLayout->addWidget(helpBoxContainerWidget, 1, 0); topLevelLayout->addWidget(generatedGuiWidgets, 2, 0); ctkCmdLineModuleDescription description = this->moduleReference().description(); QString helpString = ""; if (!description.title().isEmpty()) { QString titleHtml = "<h1>" + description.title() + "</h1>"; helpString += titleHtml; } if (!description.description().isEmpty()) { QString descriptionHtml = "<p>" + description.description() + "</p>"; helpString += descriptionHtml; } if (!description.documentationURL().isEmpty()) { QString docUrlHtml = "<p>For more information please see <a href=\"" + description.documentationURL() + "\">" + description.documentationURL() + "</a></p>"; helpString += docUrlHtml; } QString aboutString = ""; if (!description.title().isEmpty()) { QString titleHtml = "<h1>" + description.title() + "</h1>"; aboutString += titleHtml; } if (!description.contributor().isEmpty()) { QString contributorHtml = "<h2>Contributed By</h2><p>" + description.contributor() + "</p>"; aboutString += contributorHtml; } if (!description.license().isEmpty()) { QString licenseHtml = "<h2>License</h2><p>" + description.license() + "</p>"; aboutString += licenseHtml; } if (!description.acknowledgements().isEmpty()) { QString acknowledgementsHtml = "<h2>Acknowledgements</h2><p>" + description.acknowledgements() + "</p>"; aboutString += acknowledgementsHtml; } helpBrowser->clear(); helpBrowser->setHtml(helpString); helpBox->setCollapsed(true); aboutBrowser->clear(); aboutBrowser->setHtml(aboutString); aboutBox->setCollapsed(true); d->m_TopLevelWidget.reset(topLevelWidget); } return d->m_TopLevelWidget.data(); }
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) { currAuths = {{ "Guilherme Brondani Torri - " + tr("GUI programmer, Verilog-A dynamic loader"), "Mike Brinson - " + tr("testing, modelling and documentation, tutorial contributor"), "Richard Crozier - " + tr("testing, modelling, Octave."), "Bastien Roucaries - " + tr("bondwire and rectangular waveguide model implementation"), "Frans Schreuder - " + tr("GUI programmer, release"), "Vadim Kuznetsov - " + tr("filter synthesis (qucs-activefilter), SPICE integration (NGSPICE, Xyce)"), "Claudio Girardi - " + tr("testing, general fixes"), "Felix Salfelder - " + tr("refactoring, modularity"), "Andr\xe9s Mart\xednez Mera - " + tr("RF design tools") }}; prevDevs = {{ "Michael Margraf - " + tr("founder of the project, GUI programmer"), "Stefan Jahn - " + tr("Programmer of simulator"), "Jens Flucke - " + tr("webpages and translator"), "Raimund Jacob - " + tr("tester and applyer of Stefan's patches, author of documentation"), "Vincent Habchi - " + tr("coplanar line and filter synthesis code, documentation contributor"), "Toyoyuki Ishikawa - " + tr("some filter synthesis code and attenuator synthesis"), "Gopala Krishna A - " + tr("GUI programmer, Qt4 porter"), "Helene Parruitte - " + tr("programmer of the Verilog-AMS interface"), "Gunther Kraut - " + tr("equation solver contributions, exponential sources, author of documentation"), "Andrea Zonca - " + tr("temperature model for rectangular waveguide"), "Clemens Novak - " + tr("GUI programmer"), "You-Tang Lee (YodaLee) - " + tr("GUI programmer, Qt4 porter") }}; trAuths = {{ tr("German by") + " Stefan Jahn", tr("Polish by") + " Dariusz Pienkowski", tr("Romanian by") + " Radu Circa", tr("French by") + " Vincent Habchi, F5RCS", tr("Portuguese by") + " Luciano Franca, Helio de Sousa, Guilherme Brondani Torri", tr("Spanish by") + " Jose L. Redrejo Rodriguez", tr("Japanese by") + " Toyoyuki Ishikawa", tr("Italian by") + " Giorgio Luparia, Claudio Girardi", tr("Hebrew by") + " Dotan Nahum", tr("Swedish by") + " Markus Gothe, Peter Landgren", tr("Turkish by") + " Onur Cobanoglu, Ozgur Cobanoglu", tr("Hungarian by") + " Jozsef Bus", tr("Russian by") + " Igor Gorbounov", tr("Czech by") + " Marek Straka,Martin Stejskal", tr("Catalan by") + " Antoni Subirats", tr("Ukrainian by") + " Dystryk", tr("Arabic by") + " Chabane Noureddine", tr("Kazakh by") + " Erbol Keshubaev" }}; std::shuffle(currAuths.begin(), currAuths.end(), rng); QLabel *lbl; setWindowTitle(tr("About Qucs")); all = new QVBoxLayout(this); //all->setContentsMargins(0,0,0,0); //all->setSpacing(0); QLabel *iconLabel = new QLabel(); iconLabel->setPixmap(QPixmap(QString(":/bitmaps/hicolor/128x128/apps/qucs.png"))); QWidget *hbox = new QWidget(); QHBoxLayout *hl = new QHBoxLayout(hbox); hl->setContentsMargins(0,0,0,0); hl->addWidget(iconLabel); all->addWidget(hbox); QWidget *vbox = new QWidget(); QVBoxLayout *vl = new QVBoxLayout(vbox); //vl->setContentsMargins(0,0,0,0); hl->addWidget(vbox); QString versionText; versionText = tr("Version")+" "+PACKAGE_VERSION+ #ifdef GIT " ("+GIT+") " + #endif "\n"; vl->addWidget(new QLabel("<span style='font-size:x-large; font-weight:bold;'>Quite Universal Circuit Simulator</span>")); lbl = new QLabel(versionText); lbl->setAlignment(Qt::AlignHCenter); vl->addWidget(lbl); vl->addWidget(new QLabel(tr("Copyright (C)")+" 2011-2016 Qucs Team\n"+ tr("Copyright (C)")+" 2003-2009 Michael Margraf")); lbl = new QLabel("\nThis is free software; see the source for copying conditions." "\nThere is NO warranty; not even for MERCHANTABILITY or " "\nFITNESS FOR A PARTICULAR PURPOSE.\n"); lbl->setAlignment(Qt::AlignHCenter); all->addWidget(lbl); QTabWidget *t = new QTabWidget(); all->addWidget(t); connect(t, SIGNAL(currentChanged(int)), this, SLOT(currentChangedSlot(int))); authorsBrowser = new QTextBrowser; // the Ctrl-Wheel event we would like to filter is handled by the viewport authorsBrowser->viewport()->installEventFilter(this); trBrowser = new QTextBrowser; trBrowser->viewport()->installEventFilter(this); QString supportText; // link to home page, help mailing list, IRC ? supportText = tr("Home Page") + " : <a href='http://qucs.sourceforge.net/'>http://qucs.sourceforge.net/</a><br/>"+ tr("Documentation start page") + " : <a href='http://qucs.sourceforge.net/docs.html'>http://qucs.sourceforge.net/docs.html</a><br/>" + tr("Components reference manual") + " : <a href='http://qucs.github.io/qucs-manual/'>http://qucs.github.io/qucs-manual/</a><br/><br/>" + tr("If you need help on using Qucs, please join the") + "<br/>" + tr("help mailing list") + " : <a href='https://sourceforge.net/p/qucs/mailman/qucs-help/'>" + tr("qucs-help on SourceForge") + "</a><br/>" + "<small>(" + tr("please attach the schematic you are having problems with") + ")</small><br/><br/>" + // use http://webchat.freenode.net/?channels=qucs ? tr("IRC general discussion channel") + " : <a href='irc://irc.freenode.net/qucs'>#qucs on freenode.net</a><br/><br/>" + tr("Additional resources") + " : <a href='https://github.com/Qucs/qucs#resources'>https://github.com/Qucs/qucs#resources</a>"; QTextBrowser *supportBrowser = new QTextBrowser; supportBrowser->viewport()->installEventFilter(this); supportBrowser->setOpenExternalLinks(true); supportBrowser->setHtml(supportText); QString licenseText; licenseText = "Qucs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.<br/><br/>This software is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details..<br/><br/> You should have received a copy of the GNU General Public License along with Qucs, see the file COPYING. If not see <a href='http://www.gnu.org/licenses/'>http://www.gnu.org/licenses/</a> or write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,Boston, MA 02110-1301, USA."; QTextBrowser *licenseBrowser = new QTextBrowser; licenseBrowser->viewport()->installEventFilter(this); licenseBrowser->setOpenExternalLinks(true); licenseBrowser->setHtml(licenseText); t->addTab(authorsBrowser, tr("Authors")); t->addTab(trBrowser, tr("Translations")); t->addTab(supportBrowser, tr("Support")); t->addTab(licenseBrowser, tr("License")); QWidget *hbBtn = new QWidget(); QHBoxLayout *hlBtn = new QHBoxLayout(hbBtn); hlBtn->setContentsMargins(0,0,0,0); all->addWidget(hbBtn); QPushButton *okButton = new QPushButton(tr("&OK"), parent); okButton->setFocus(); connect(okButton, SIGNAL(clicked()), this, SLOT(close())); hlBtn->addStretch(); hlBtn->addWidget(okButton); setAuthorsText(); setTrText(); prevTab = 0; // first Tab is selected by default }
AboutForm::AboutForm(QWidget *parent) : QDialog(parent) { QTextBrowser *aboutBrowser = new QTextBrowser; aboutBrowser->setReadOnly(true); aboutBrowser->setOpenExternalLinks(true); aboutBrowser->setHtml(tr( "<table border=0>" "<tr><td width=90%><b>%1</a> %2</b> by Mark Summerfield</td>" "<td rowspan=3><img align=right src=\":/icon.png\"></td></tr>" "<tr><td><tt><[email protected]></tt>.</td></tr>" "<tr><td colspan=2>Copyright © 2008-13 " "<a href=\"http://www.qtrac.eu\">Qtrac</a> Ltd. All rights reserved." "</td></tr>" "<tr><td colspan=2>Built with Qt %3 and Poppler %4.</td></tr>" "</table><hr>" "<p>This program compares the text or the visual appearance of " "each page in two PDF files." "<hr><p>If you like %1 you might like my books:<ul>" "<li><a href=\"http://www.qtrac.eu/gobook.html\">" "Programming in Go</a></li>" "<li><a href=\"http://www.qtrac.eu/aqpbook.html\">" "Advanced Qt Programming</a></li>" "<li><a href=\"http://www.qtrac.eu/py3book.html\">" "Programming in Python 3</a></li>" "<li><a href=\"http://www.qtrac.eu/pyqtbook.html\">" "Rapid GUI Programming with Python and Qt</a></li>" "</ul>" "I also provide training and consultancy in C++, Go, Python 2, " "Python 3, C++/Qt, and PyQt4.").arg(qApp->applicationName()) .arg(Version).arg(qVersion()).arg(POPPLER_VERSION)); QTextBrowser *contributorsBrowser = new QTextBrowser; contributorsBrowser->setReadOnly(true); contributorsBrowser->setHtml(tr("<table>" "<tr><td>•</td><td bgcolor=lightyellow><i>Anonymous Company</i> " "— funded the addition of the margin exclusion " "functionality</td></tr>" "<tr><td>•</td><td><b>David Paleino</b> — " "Debian packager</td></tr>" "<tr><td>•</td><td><b>Dirk Loss</b> — creating " "Mac binaries</td></tr>" "<tr><td>•</td><td>Florian Heiderich — suggested " "using composition modes for showing subtle differences</td></tr>" "<tr><td>•</td><td><b>Jasmin Blanchette</b> — " "the original idea and subsequent suggestions</td></tr>" "<tr><td>•</td><td>Liviu Andronic — suggested adding " "drag and drop</td></tr>" "<tr><td>•</td><td>Paul Howarth — suggestions " "resulting in Characters mode</td></tr>" "<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Pavel Fric</i> — " "Czech translation</td></tr>" "<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Pierre-Alain " "Bandinelli</i>— French translation</td></tr>" "<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Rainer Krachten</i> " "— German translation and various suggestions</td></tr>" "<tr><td>•</td><td>Rory Gordon — suggested adding " "drag and drop</td></tr>" "<tr><td>•</td><td><b>Steven Lee</b> — creating " "Windows binaries</td></tr>" "</table>")); QTextBrowser *licenceBrowser = new QTextBrowser; licenceBrowser->setReadOnly(true); licenceBrowser->setHtml(tr( "This program is free software: you can redistribute it " "and/or modify it under the terms of the GNU General Public License " "as published by the Free Software Foundation, either version 2 of " "the License, or (at your option), any " "later version. This program is distributed in the hope that it will " "be useful, but WITHOUT ANY WARRANTY; without even the implied " "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. " "See the GNU General Public License (in file <tt>gpl-2.0.txt</tt>) " "for more details.")); QTabWidget *tabWidget = new QTabWidget; tabWidget->addTab(aboutBrowser, tr("&About")); tabWidget->addTab(contributorsBrowser, tr("&Contributors")); tabWidget->addTab(licenceBrowser, tr("&License")); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(tabWidget); setLayout(layout); resize(480, 400); setWindowTitle(tr("%1 — About").arg(qApp->applicationName())); }