void
ScrobblesListWidget::doWrite()
{
    if ( count() == 0 )
        QFile::remove( m_path );
    else
    {
        QDomDocument xml;
        QDomElement e = xml.createElement( "recent_tracks" );
        e.setAttribute( "product", QCoreApplication::applicationName() );
        e.setAttribute( "version", "2" );

        for ( int i = 0 ; i < count() ; ++i )
        {
            TrackWidget* trackWidget = qobject_cast<TrackWidget*>( itemWidget( item( i ) ) );

            if ( trackWidget && !static_cast<ScrobblesListWidgetItem*>( item( i ) )->isNowPlaying() )
                e.appendChild( static_cast<TrackWidget*>( itemWidget( item( i ) ) )->track().toDomElement( xml ) );
        }

        xml.appendChild( e );

        QFile file( m_path );
        file.open( QIODevice::WriteOnly | QIODevice::Text );

        QTextStream stream( &file );
        stream.setCodec( "UTF-8" );
        stream << "<?xml version='1.0' encoding='utf-8'?>\n";
        stream << xml.toString( 2 );
    }
}
Пример #2
0
void ScTreeWidget::handleMousePress(QTreeWidgetItem *item)
{
    if (item == 0)
        return;
    if (item->parent() == 0)
    {
        if (item->isDisabled())
        {
            setItemExpanded(item, false);
            return;
        }
        int wide = 0;
        int tops = topLevelItemCount();
        if (m_toolbox_mode)
        {
            for (int t = 0; t < tops; t++)
            {
                setItemExpanded(topLevelItem(t), false);
            }
            setCurrentItem(item);
            setItemExpanded(item, true);
            if (item->childCount() != 0)
            {
                QTreeWidgetItem *child = item->child(0);
                if (child != 0)
                    wide = itemWidget(child, 0)->minimumSizeHint().width()+5;
            }
            if (wide != 0)
                setColumnWidth(0, wide);
            else
                resizeColumnToContents(0);
        }
        else
        {
            setItemExpanded(item, !isItemExpanded(item));
            for (int t = 0; t < tops; t++)
            {
                QTreeWidgetItem *top = topLevelItem(t);
                if (isItemExpanded(top))
                {
                    if (top->childCount() != 0)
                    {
                        QTreeWidgetItem *child = top->child(0);
                        if (child != 0)
                            wide = qMax(wide, itemWidget(child, 0)->minimumSizeHint().width()+5);
                    }
                }
            }
        }
        if (wide != 0)
            setColumnWidth(0, wide);
        else
            resizeColumnToContents(0);
        emit currentChanged2(indexOfTopLevelItem(item));
    }
}
void ProgressTree2::updateItem(QTreeWidgetItem* item, const JobState& s)
{
    item->setText(0, s.title);

    time_t now;
    time(&now);

    if (s.started != 0) {
        time_t diff = difftime(now, s.started);

        int sec = diff % 60;
        diff /= 60;
        int min = diff % 60;
        diff /= 60;
        int h = diff;

        QTime e(h, min, sec);
        item->setText(1, e.toString());

        if (!s.completed) {
            diff = difftime(now, s.started);
            diff = lround(diff * (1 / s.progress - 1));
            sec = diff % 60;
            diff /= 60;
            min = diff % 60;
            diff /= 60;
            h = diff;

            QTime r(h, min, sec);
            item->setText(2, r.toString());
        } else {
            item->setText(2, "");
        }
    } else {
        item->setText(1, "");
        item->setText(2, "");
    }

    QProgressBar* pb = (QProgressBar*) itemWidget(item, 3);
    QPushButton* b = (QPushButton*) itemWidget(item, 4);
    if (s.completed) {
        pb->setValue(10000);
        b->setEnabled(false);
    } else {
        pb->setValue(lround(s.progress * 10000));
        b->setEnabled(!s.cancelRequested);
    }
}
Пример #4
0
void MusicListWidget::itemHoverEnter(QListWidgetItem *item)
{
    if(itemWidget(item)) return;
    this->setItemWidget(item, m_musicItem);
    m_musicItem->setItem(item);
    item->setSizeHint(QSize(item->sizeHint().width(), m_musicItem->height()));
}
Пример #5
0
/****************************************************************************
**
** Copyright (C) 2015
**
** This file is generated by the Magus toolkit
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/

// Include
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QMessageBox>
#include <QDir>
#include <QImageReader>
#include <QListWidgetItem>
#include <QProcess>
#include "magus_core.h"
#include "tool_extended_texturewidget.h"

namespace Magus
{
    //****************************************************************************/
    QtTextureAndText::QtTextureAndText(const QPixmap& pixmap,
                                       const QString& name,
                                       const QString& baseName,
                                       const QSize& size,
                                       QWidget* parent) : QWidget(parent)
    {
        setContentsMargins(-8, -8, -8, -8);
        QHBoxLayout* mainLayout = new QHBoxLayout;
        QVBoxLayout* sphereAndNameLayout = new QVBoxLayout;
        mName = name;
        mBaseName = baseName;
        mSphereWidget = new QtGLSphereWidget(this);
        mSphereWidget->setPixmap(pixmap, name, baseName);
        mBaseNameEdit = new QLineEdit;
        mBaseNameEdit->setText(mBaseName);
        mBaseNameEdit->setEnabled(false);
        connect(mSphereWidget, SIGNAL(selected(QString,QString)), this, SLOT(handleSelected(QString,QString)));
        connect(mSphereWidget, SIGNAL(doubleClicked(QString,QString)), this, SLOT(handleDoubleClicked(QString,QString)));
        setMouseTracking(true);

        // Layout
        sphereAndNameLayout->addWidget(mSphereWidget, 1000);
        sphereAndNameLayout->addWidget(mBaseNameEdit, 1);
        mainLayout->addLayout(sphereAndNameLayout);
        setLayout(mainLayout);
        setMinimumSize(size);
        setMaximumSize(size);
    }

    //****************************************************************************/
    QtTextureAndText::~QtTextureAndText(void)
    {
    }

    //****************************************************************************/
    void QtTextureAndText::handleSelected(const QString& name, const QString& baseName)
    {
        emit selected(name, baseName);
    }

    //****************************************************************************/
    void QtTextureAndText::handleDoubleClicked(const QString& name, const QString& baseName)
    {
        emit doubleClicked(name, baseName);
    }

    //****************************************************************************/
    //****************************************************************************/
    //****************************************************************************/
    QtExtendedTextureListWidget::QtExtendedTextureListWidget(QWidget* parent) : QListWidget(parent)
    {
        setMouseTracking(true);
        setAcceptDrops(true);
        setDropIndicatorShown(true);
    }

    //****************************************************************************/
    QtExtendedTextureListWidget::~QtExtendedTextureListWidget(void)
    {
    }

    //****************************************************************************/
    void QtExtendedTextureListWidget::keyPressEvent(QKeyEvent* event)
    {
        switch (event->key())
        {
            case Qt::Key_Delete:
            {
                if (count() > 0)
                {
                    QListWidgetItem* item = currentItem();
                    if (item)
                    {
                        QWidget* widget = itemWidget(item);
                        if (widget)
                        {
                            int r = row(item);
                            QtTextureAndText* textureAndText = static_cast<QtTextureAndText*>(widget);
                            QString name = textureAndText->mName;
                            QString baseName = textureAndText->mBaseName;
                            removeItemWidget(item);
                            takeItem(r);
                            emit assetDeleted(name, baseName);
                        }
                    }
                }
            }
            break;
        }

        event->accept();
    }
Пример #6
0
ItemBoxCategoryListView *ItemBoxTreeWidget::categoryView(const QString &cat_id) const
{

    ItemBoxCategoryListView *rc = 0;
    if(cat_id.isEmpty()) {
        qCritical() << "Empty cat_name!";
        return rc;
    }

    int topItemCount = topLevelItemCount();
    for (int i = 0;  i < topItemCount; i++) {
        QTreeWidgetItem *cat_item = topLevelItem(i);
        //if(cat_item && cat_item->text(0) == cat_id){
        if(cat_item && cat_item->data(0, Qt::UserRole).toString() == cat_id) {
            if(QTreeWidgetItem *embedItem = cat_item->child(0)) {
                rc = qobject_cast<ItemBoxCategoryListView *>(itemWidget(embedItem, 0));
                //qDebug()<<"----ItemBoxTreeWidget::categoryView(...)~~cat_item->text(0):"<<cat_item->text(0);
                break;
            }

        }
    }

    Q_ASSERT(rc);

    return rc;

}
Пример #7
0
void UserManager::newExitMsg(Message msg)
{
    qDebug() << "UserManager::newExitMsg(Message msg)";
    QTreeWidgetItemIterator it(Macai::userTreeWidget);
    while (*it)
    {
        UserItemWidget *user_widget = itemWidget(*it);
        if( user_widget )
        {
//            QString str;
//            str.append("user_widget->loginName:" + user_widget->loginName());
//            str.append("\nmsg->owner().loginName:" + msg->owner().loginName());
//            str.append("\nuser_widget->userIp:" + user_widget->userIp());
//            str.append("\nmsg->ip:" + msg->ip());
//            str.append("\nmsg->owner().ip():" + msg->owner().ip());

//            QMessageBox::information(Macai::userTreeWidget->window(), "debug", str );
            if( user_widget->userIp() == msg->owner().ip() )
            {
                delete *it;
                break;
            }
        }
        ++it;
    }
}
CurveItemWidget* CurveListWidget::getCurveItem(size_t index) const {
  QListWidgetItem* widgetItem = item(index);
  
  if (widgetItem)
    return static_cast<CurveItemWidget*>(itemWidget(widgetItem));
  else
    return 0;
}
Пример #9
0
void LogListWidget::copySelection()
{
    static const QRegularExpression htmlTag("<[^>]+>");
    QStringList strings;
    for (QListWidgetItem* it : asConst(selectedItems()))
        strings << static_cast<QLabel*>(itemWidget(it))->text().remove(htmlTag);

    QApplication::clipboard()->setText(strings.join('\n'));
}
Пример #10
0
WidgetBoxCategoryListView *WidgetBoxTreeWidget::categoryViewAt(int idx) const
{
    WidgetBoxCategoryListView *rc = 0;
    if (QTreeWidgetItem *cat_item = topLevelItem(idx))
        if (QTreeWidgetItem *embedItem = cat_item->child(0))
            rc = qobject_cast<WidgetBoxCategoryListView*>(itemWidget(embedItem, 0));
    Q_ASSERT(rc);
    return rc;
}
Пример #11
0
void ItemBoxTreeWidget::contextMenuEvent(QContextMenuEvent *e)
{
    QTreeWidgetItem *item = itemAt(e->pos());
    if(!item) {
        return;
    }

    const bool scratchpad_menu = item != 0
                                 && item->parent() != 0
                                 && topLevelRole(item->parent()) ==  SCRATCHPAD_ITEM;

    QMenu menu;
    menu.addAction(tr("Expand all"), this, SLOT(expandAll()));
    menu.addAction(tr("Collapse all"), this, SLOT(collapseAll()));
    menu.addSeparator();

    QAction *listModeAction = menu.addAction(tr("List View"));
    QAction *iconModeAction = menu.addAction(tr("Icon View"));
    listModeAction->setCheckable(true);
    iconModeAction->setCheckable(true);
    QActionGroup *viewModeGroup = new QActionGroup(&menu);
    viewModeGroup->addAction(listModeAction);
    viewModeGroup->addAction(iconModeAction);
    if (m_iconMode) {
        iconModeAction->setChecked(true);
    } else {
        listModeAction->setChecked(true);
    }
    connect(listModeAction, SIGNAL(triggered()), SLOT(slotListMode()));
    connect(iconModeAction, SIGNAL(triggered()), SLOT(slotIconMode()));

    if (scratchpad_menu) {
        menu.addSeparator();
        menu.addAction(tr("Remove"), itemWidget(item, 0), SLOT(removeCurrentItem()));
        if (!m_iconMode) {
            menu.addAction(tr("Edit name"), itemWidget(item, 0), SLOT(editCurrentItem()));
        }
    }
    e->accept();
//    menu.exec(mapToGlobal(e->pos()));
//    m_core->handleContextMenuEventOnCategory(item->text(0), mapToGlobal(e->pos()), &menu);
    m_core->handleContextMenuEventOnCategory(item->data(0, Qt::UserRole).toString(), mapToGlobal(e->pos()), &menu);

}
Пример #12
0
  /**
   * We need to manually manage these progress widgets because QTreeWidget does a poor job of it.
   *   This should be called when the progress bar instances have changed (new progress, lost a
   *   progress, etc...). This is not necessary when the progress values have changed.
   *
   * Failing to call this method results in seg faults when other events occur - such as a
   *   resize event.
   */
  void HistoryTreeWidget::updateProgressWidgets() {
    for (int i = 0; i < invisibleRootItem()->childCount(); i++) {
      QTreeWidgetItem *item = invisibleRootItem()->child(i);
      WorkOrder *workOrder = item->data(0, Qt::UserRole).value<WorkOrder *>();

      if (workOrder && itemWidget(item, 1) != workOrder->progressBar()) {
        setItemWidget(item, 1, workOrder->progressBar());
      }
    }
  }
Пример #13
0
void LogListWidget::copySelection()
{
  static QRegExp html_tag("<[^>]+>");
  QList<QListWidgetItem*> items = selectedItems();
  QStringList strings;
  foreach (QListWidgetItem* it, items)
    strings << static_cast<QLabel*>(itemWidget(it))->text().replace(html_tag, "");

  QApplication::clipboard()->setText(strings.join("\n"));
}
Пример #14
0
QString UserManager::host(QTreeWidgetItem *item)
{
    QString hostname = "Unknow Hostname";
    UserItemWidget *user_widget = itemWidget(item);
    if( user_widget )
    {
        hostname = user_widget->hostName();
    }
    return hostname;
}
Пример #15
0
QString UserManager::loginName(QTreeWidgetItem *item)
{
    QString logname = "Unknow Logname";
    UserItemWidget *user_widget = itemWidget(item);
    if( user_widget )
    {
        logname = user_widget->loginName();
    }
    return logname;
}
Пример #16
0
QString UserManager::ip(QTreeWidgetItem *item)
{
    QString ip = "00:00:00:00";
    UserItemWidget *user_widget = itemWidget(item);
    if( user_widget )
    {
        ip = user_widget->userIp();
    }
    return ip;
}
Пример #17
0
QString UserManager::name(QTreeWidgetItem *item)
{
    QString name = tr("Unknow");
    UserItemWidget *user_widget = itemWidget(item);
    if( user_widget )
    {
        name = user_widget->nickName();
    }
    return name;
}
Пример #18
0
QString UserManager::group(QTreeWidgetItem *item)
{
    QString group = "GerneralGroup";
    UserItemWidget *user_widget = itemWidget(item);
    if( user_widget )
    {
        group = user_widget->userGroup();
    }
    return group;
}
Пример #19
0
QWidget* ScTreeWidget::widget(int index)
{
    if ((index < 0) || (index >= topLevelItemCount()))
        return NULL;
    QTreeWidgetItem *top = topLevelItem(index);
    if (top->childCount() == 0)
        return NULL;
    QTreeWidgetItem *child = top->child(0);
    return itemWidget(child, 0);
}
Пример #20
0
SignalBase& WSubMenuItem::activateSignal()
{
  if (subMenu_) {
    WContainerWidget *contents = dynamic_cast<WContainerWidget *>(itemWidget());
    WInteractWidget *wi = dynamic_cast<WInteractWidget *>
      (contents->widget(0)->webWidget());

    return wi->clicked();
  } else
    return WMenuItem::activateSignal();
}
Пример #21
0
void ErrorListWidget::copyCurrentItem()
{
	QListWidgetItem *item = currentItem();
	QLabel *label = item ? dynamic_cast<QLabel *>(itemWidget(item)) : nullptr;
	if (label) {
		// Extracting a plain text
		QTextDocument document;
		document.setHtml(label->text());
		QApplication::clipboard()->setText(document.toPlainText());
	}
}
void QListWidgetWithDrop::deleteItem(QListWidgetItem *item)
{
	int index = row(item);
	for (int i = index + 1; i < count(); i++){
		FilterButton *fb = (FilterButton*) itemWidget(this->item(i));
		fb->setName(QString::number(i));
	}
	delete item;

	emit listItemDeleted(index);
	emit currentRowChanged(index);
}
Пример #23
0
void ScTreeWidget::setItemEnabled(int index, bool enable)
{
    if ((index < 0) || (index >= topLevelItemCount()))
        return;
    if (enable)
        topLevelItem(index)->setFlags(Qt::ItemIsEnabled);
    else
        topLevelItem(index)->setFlags(0);
    QTreeWidgetItem *child = topLevelItem(index)->child(0);
    if (child != NULL)
        itemWidget(child, 0)->setEnabled(enable);
}
void QListWidgetWithDrop::dropEvent(QDropEvent *e)
{
	int fromRow = currentRow();
	QListWidget::dropEvent(e);
	int toRow = currentRow();

	for (int i = 0; i < count(); i++){
		FilterButton *fb = (FilterButton*) itemWidget(this->item(i));
		fb->setName(QString::number(i+1));
	}

	emit listItemMoved(fromRow, toRow);
}
Пример #25
0
void ProgressTree2::updateItem(QTreeWidgetItem* item, Job* s)
{
    item->setText(0, s->getTitle());

    time_t now;
    time(&now);

    if (s->getStarted() != 0) {
        time_t diff = difftime(now, s->getStarted());

        QTime e = WPMUtils::durationToTime(diff);
        item->setText(1, e.toString());

        if (!s->isCompleted()) {
            QTime r = WPMUtils::durationToTime(lround(
                    diff * (1 / s->getProgress() - 1)));
            item->setText(2, r.toString());
        } else {
            item->setText(2, "");
        }
    } else {
        item->setText(1, "");
        item->setText(2, "");
    }

    QProgressBar* pb = (QProgressBar*) itemWidget(item, 3);
    QPushButton* b = (QPushButton*) itemWidget(item, 4);
    if (s->isCompleted()) {
        pb->setValue(10000);
        if (b)
            b->setEnabled(false);
    } else {
        pb->setValue(lround(s->getProgress() * 10000));
        if (b)
            b->setEnabled(!s->isCancelled());
    }
}
void
ScrobblesListWidget::showEvent(QShowEvent *)
{
    QList<lastfm::Track> tracks;

    for ( int i = 0 ; i < count() ; ++i )
    {
        TrackWidget* trackWidget = qobject_cast<TrackWidget*>( itemWidget( item( i ) ) );

        if ( trackWidget && !item( i )->isHidden() )
            tracks << trackWidget->track();
    }

    fetchTrackInfo( tracks );
}
Пример #27
0
HappyTreeWidget::HappyTreeWidget(QWidget *w)
    : QTreeWidget(w)
{

    // add animation
    opac = 0;
    isHide = false;
    animation = new QPropertyAnimation(this, "opacity");
    this->verticalScrollBar()->hide();
    setStyleSheet("QTreeView{background:transparent;}"
                  "QTreeWidget{background:transparent;"
                  "border-width:1px;"
                  "border-style:solid;"
                  "border-color: transparent;}");
    QFile file(":res/css/scrollbar.css");
    if (file.open(QIODevice::ReadOnly))
    {
        QString css = file.readAll();
        this->verticalScrollBar()->setStyleSheet(css);
    }
    file.close();
    file.setFileName(":res/css/tree.css");
    if (file.open(QIODevice::ReadOnly))
    {
        QString css = file.readAll();
        setStyleSheet(css);
    }
    file.close();

    connect(this, &HappyTreeWidget::itemDoubleClicked, [=] (QTreeWidgetItem *item, int column) {
        QWidget *w = itemWidget(item, column);
        ItemEditor *ie = qobject_cast<ItemEditor *>(w);
        if (ie == nullptr)
        {
            return;
        }
        for (int i = 0; i < topLevelItemCount(); i++)
        {
            if (item == topLevelItem(i))
            {
                emit topmemberDoubleClicked(ie);
                return;
            }
        }
        emit memberDoubleClicked(ie);
    });
}
Пример #28
0
bool UserManager::contains(QString ip)
{
    QTreeWidgetItemIterator it(Macai::userTreeWidget);
    while (*it)
    {
        QTreeWidgetItem* item = *it;
        UserItemWidget* user_widget = itemWidget( item );
        if( user_widget )
        {
            if( user_widget->userIp() == ip )
            {
                return true;
            }
        }
        ++it;
    }

    return false;
}
Пример #29
0
void ItemBoxTreeWidget::adjustSubListSize(QTreeWidgetItem *cat_item)
{

    QTreeWidgetItem *embedItem = cat_item->child(0);
    if (embedItem == 0) {
        return;
    }

    ItemBoxCategoryListView *list_widget = static_cast<ItemBoxCategoryListView *>(itemWidget(embedItem, 0));
    list_widget->setFixedWidth(header()->width());
    list_widget->doItemsLayout();
    const int height = qMax(list_widget->contentsSize().height(), 1);
    list_widget->setFixedHeight(height);
    //list_widget->setFlow(QListView::TopToBottom);
    list_widget->setFlow((list_widget->viewMode() == QListView::ListMode) ? QListView::TopToBottom : QListView::LeftToRight);


    embedItem->setSizeHint(0, QSize(-1, height - 1));
    viewport()->update();

}
Пример #30
0
bool KPBinarySearch::allBinariesFound()
{
    bool ret = true;

    foreach(KPBinaryIface* const binary, d->binaryIfaces)
    {
        int index = d->binaryIfaces.indexOf(binary);

        if (binary->isValid())
        {
            if (!binary->developmentVersion())
            {
                d->items[index]->setIcon(Status, QIcon::fromTheme(QStringLiteral("dialog-ok-apply")).pixmap(16, 16));
                d->items[index]->setToolTip(Status, QString());
            }
            else
            {
                d->items[index]->setIcon(Status, QIcon::fromTheme(QStringLiteral("dialog-warning")).pixmap(16, 16));
                d->items[index]->setToolTip(Status, i18n("A development version has been detect. "
                                            "There is no guarantee on the behavior of this binary."));
                d->downloadLabel->show();
            }

            d->items[index]->setText(Version, binary->version());
            qobject_cast<QPushButton*>(itemWidget(d->items[index], Button))->setText(i18n("Change"));
        }
        else
        {
            ret = false;
        }
    }

    if (ret)
    {
        d->downloadLabel->hide();
    }

    return ret;
}