Exemplo n.º 1
0
FileTreeWidget::FileTreeWidget(QWidget *parent) :
    QTreeView(parent), _fiModel(NULL)
{
    // todo: add filtering, and move qtreeview to subelement
    _fiModel = new QFileSystemModel(this);
    // _fiModel->setNameFilters(QStringList() << "*.php");
    _fiModel->setNameFilterDisables(false);
    _fiModel->setRootPath(QDir::homePath());
    this->setModel(_fiModel);
    this->setRootIndex(_fiModel->index(QDir::homePath()));
    for (int i=1;i<_fiModel->columnCount();i++) {
        this->setColumnHidden(i, true);
    }
    connect(this, SIGNAL(activated( QModelIndex )), this, SLOT(onItemActivated( QModelIndex )));
    setHeaderHidden(true);
    setWindowTitle("File Browser");
}
Exemplo n.º 2
0
void CreateBooking::addCustomersInForm()
{

    DbMysql* d = DbMysql::getInstance();
    QMessageBox msgBox;

    QCompleter* cl = new QCompleter(this);
    QStandardItemModel *model = new QStandardItemModel(cl);


    //ui->roomsList->setCurrentText("-----Select-----");
    if(!d->getConnection().open())
    {
        msgBox.critical(this,"Error","Failed to connect database.1");
    }
    else
    {

        QSqlQuery query1( "select customer_id,customer_name from customers order by customer_id desc;" ,d->getConnection());
        if(!query1.isActive())
        {
            msgBox.critical(this,"Error","Failed to connect database.");
        }
        else
        {
            //ui->roomsList->addItem("---- Select ----",QVariant::fromValue(-1));
            while(query1.next())
            {
                QStandardItem *item = new QStandardItem;
                item->setText(query1.value(1).toString());
                item->setData(query1.value(0).toInt(), Qt::UserRole);
                model->appendRow(item);

            }

        }

    }
    cl->setCaseSensitivity(Qt::CaseInsensitive);
    cl->setModel(model);
    ui->c_customer_name->setCompleter(cl);

    //ui->c_customer_name
    connect(cl, SIGNAL(activated(QModelIndex)),this, SLOT(onItemActivated(QModelIndex)));
}
Exemplo n.º 3
0
SingleGenreView::SingleGenreView(QWidget *parent, MafwRegistryAdapter *mafwRegistry) :
    BrowserWindow(parent, mafwRegistry),
    mafwRegistry(mafwRegistry),
    mafwRenderer(mafwRegistry->renderer()),
    mafwTrackerSource(mafwRegistry->source(MafwRegistryAdapter::Tracker)),
    playlist(mafwRegistry->playlist())
{
    ui->objectList->setItemDelegate(new ArtistListItemDelegate(ui->objectList));
    ui->objectList->setItemDelegateForRow(0, new ShuffleButtonDelegate(ui->objectList));

    ui->windowMenu->addAction(tr("Add to now playing"), this, SLOT(addAllToNowPlaying()));

    shuffleRequested = false;

    connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Enter), this), SIGNAL(activated()), this, SLOT(onContextMenuRequested()));

    connect(ui->objectList, SIGNAL(activated(QModelIndex)), this, SLOT(onItemActivated(QModelIndex)));
    connect(ui->objectList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onContextMenuRequested(QPoint)));
}
Exemplo n.º 4
0
SoundCloudView::SoundCloudView(QWidget *parent) :
    QWidget(parent),
    m_model(new SoundCloudNavModel(this)),
    m_view(new ListView(this)),
    m_layout(new QVBoxLayout(this))
{
    m_view->setModel(m_model);
    m_view->setItemDelegate(new NavDelegate(m_view));
    m_layout->addWidget(m_view);
    
    connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(onItemActivated(QModelIndex)));
    connect(SoundCloud::instance(), SIGNAL(commentAdded(SoundCloudComment*)),
            this, SLOT(onCommentAdded()));
    connect(SoundCloud::instance(), SIGNAL(artistFollowed(SoundCloudArtist*)),
            this, SLOT(onArtistFollowed(SoundCloudArtist*)));
    connect(SoundCloud::instance(), SIGNAL(artistUnfollowed(SoundCloudArtist*)),
            this, SLOT(onArtistUnfollowed(SoundCloudArtist*)));
    connect(SoundCloud::instance(), SIGNAL(trackFavourited(SoundCloudTrack*)),
            this, SLOT(onTrackFavourited(SoundCloudTrack*)));
    connect(SoundCloud::instance(), SIGNAL(trackUnfavourited(SoundCloudTrack*)),
            this, SLOT(onTrackUnfavourited(SoundCloudTrack*)));
}
Exemplo n.º 5
0
/**
 * @brief TvShowFilesWidget::TvShowFilesWidget
 * @param parent
 */
TvShowFilesWidget::TvShowFilesWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::TvShowFilesWidget)
{
    m_instance = this;
    ui->setupUi(this);

#ifdef Q_WS_MAC
    QFont font = ui->files->font();
    font.setPointSize(font.pointSize()-2);
    ui->files->setFont(font);
#endif
#ifdef Q_WS_WIN
    ui->verticalLayout->setContentsMargins(0, 0, 0, 1);
#endif

    m_tvShowDelegate = new TvShowDelegate(this);
    m_tvShowProxyModel = Manager::instance()->tvShowProxyModel();
    m_tvShowProxyModel->setSourceModel(Manager::instance()->tvShowModel());
    m_tvShowProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
    m_tvShowProxyModel->setDynamicSortFilter(true);
    ui->files->setModel(m_tvShowProxyModel);
    ui->files->setItemDelegate(m_tvShowDelegate);
    ui->files->sortByColumn(0);
    ui->files->setAttribute(Qt::WA_MacShowFocusRect, false);

    connect(ui->files, SIGNAL(clicked(QModelIndex)), this, SLOT(onItemClicked(QModelIndex)));
    connect(ui->files->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(onItemActivated(QModelIndex,QModelIndex)));
}
Exemplo n.º 6
0
PluginSettingsTab::PluginSettingsTab(QWidget *parent) :
    QWidget(parent),
    m_model(new PluginSettingsModel(this)),
    m_view(new QListView(this)),
    m_stack(new QStackedWidget(this))
{
    m_view->setModel(m_model);
    m_view->setMaximumWidth(200);
    m_view->setFocus(Qt::OtherFocusReason);

    m_stack->setFrameStyle(QFrame::NoFrame);

    for (int i = 0; i < m_model->rowCount(); i++) {
        QScrollArea *scrollArea = new QScrollArea(this);
        QWidget *scrollWidget = new QWidget(scrollArea);
        QVBoxLayout *vbox = new QVBoxLayout(scrollWidget);
        scrollArea->setWidgetResizable(true);
        scrollArea->setWidget(scrollWidget);

        QFile file(m_model->data(m_model->index(i), PluginSettingsModel::FileNameRole).toString());
        file.open(QIODevice::ReadOnly);
        QXmlStreamReader reader;
        reader.setDevice(&file);

        while (reader.readNext() != QXmlStreamReader::Invalid) {
            if ((reader.isStartElement()) || (reader.isEndElement())) {
                break;
            }
        }

        QString title = reader.attributes().value("title").toString();

        while (!reader.atEnd()) {
            if (!reader.attributes().isEmpty()) {
                if (reader.name() == "group") {
                    vbox->addWidget(new SeparatorLabel(reader.attributes().value("title").toString(), this));
                }
                else if (reader.name() == "list") {
                    QLabel *label = new QLabel(reader.attributes().value("title").toString() + ":", this);
                    PluginSettingsCombobox *combobox = new PluginSettingsCombobox(this);
                    combobox->setKey(QString("%1/%2").arg(title).arg(reader.attributes().value("key").toString()));
                    combobox->setDefaultValue(reader.attributes().value("default").toString());

                    while (reader.readNext() != QXmlStreamReader::Invalid) {
                        if ((reader.isStartElement()) || (reader.isEndElement())) {
                            break;
                        }
                    }

                    while (reader.name() == "element") {
                        if (!reader.attributes().isEmpty()) {
                            combobox->addItem(reader.attributes().value("name").toString(), reader.attributes().value("value").toString());
                        }

                        while (reader.readNext() != QXmlStreamReader::Invalid) {
                            if ((reader.isStartElement()) || (reader.isEndElement())) {
                                break;
                            }
                        }
                    }

                    combobox->load();

                    vbox->addWidget(label);
                    vbox->addWidget(combobox);
                }
                else if (reader.name() == "boolean") {
                    PluginSettingsCheckbox *checkbox = new PluginSettingsCheckbox(this);
                    checkbox->setText(reader.attributes().value("title").toString());
                    checkbox->setKey(QString("%1/%2").arg(title).arg(reader.attributes().value("key").toString()));
                    checkbox->setDefaultValue(reader.attributes().value("default").toString());
                    checkbox->load();
                    vbox->addWidget(checkbox);
                }
                else if (reader.name() == "integer") {
                    PluginSettingsSpinbox *spinbox = new PluginSettingsSpinbox(this);
                    spinbox->setKey(QString("%1/%2").arg(title).arg(reader.attributes().value("key").toString()));
                    spinbox->setDefaultValue(reader.attributes().value("default").toString());
                    spinbox->setMinimum(reader.attributes().value("min").toString().toInt());
                    spinbox->setMaximum(reader.attributes().value("max").toString().toInt());
                    spinbox->load();
                    vbox->addWidget(new QLabel(reader.attributes().value("title").toString() + ":", this));
                    vbox->addWidget(spinbox);
                }
                else if (reader.name() == "text") {
                    PluginSettingsLineEdit *lineEdit = new PluginSettingsLineEdit(this);
                    lineEdit->setKey(QString("%1/%2").arg(title).arg(reader.attributes().value("key").toString()));
                    lineEdit->setDefaultValue(reader.attributes().value("default").toString());
                    lineEdit->load();
                    vbox->addWidget(new QLabel(reader.attributes().value("title").toString() + ":", this));
                    vbox->addWidget(lineEdit);
                }
            }

            while (reader.readNext() != QXmlStreamReader::Invalid) {
                if ((reader.isStartElement()) || (reader.isEndElement())) {
                    break;
                }
            }
        }

        vbox->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding, QSizePolicy::Expanding));

        file.close();

        m_stack->addWidget(scrollArea);
    }

    QHBoxLayout *hbox = new QHBoxLayout(this);
    hbox->setContentsMargins(0, 0, 0, 0);
    hbox->addWidget(m_view);
    hbox->addWidget(m_stack);

    this->connect(m_view, SIGNAL(clicked(QModelIndex)), this, SLOT(onItemActivated(QModelIndex)));
    this->connect(m_view, SIGNAL(activated(QModelIndex)), this, SLOT(onItemActivated(QModelIndex)));
}
Exemplo n.º 7
0
void FolderView::setViewMode(ViewMode _mode) {
  if(_mode == mode) // if it's the same more, ignore
    return;
  // FIXME: retain old selection

  // since only detailed list mode uses QTreeView, and others 
  // all use QListView, it's wise to preserve QListView when possible.
  bool recreateView = false;
  if(view && (mode == DetailedListMode || _mode == DetailedListMode)) {
    delete view; // FIXME: no virtual dtor?
    view = NULL;
    recreateView = true;
  }
  mode = _mode;
  QSize iconSize = iconSize_[mode - FirstViewMode];

  if(mode == DetailedListMode) {
    FolderViewTreeView* treeView = new FolderViewTreeView(this);
    view = treeView;
    treeView->setItemsExpandable(false);
    treeView->setRootIsDecorated(false);
    treeView->setAllColumnsShowFocus(false);

    // set our own custom delegate
    FolderItemDelegate* delegate = new FolderItemDelegate(treeView);
    treeView->setItemDelegateForColumn(FolderModel::ColumnFileName, delegate);
  }
  else {
    FolderViewListView* listView;
    if(view)
      listView = static_cast<FolderViewListView*>(view);
    else {
      listView = new FolderViewListView(this);
      view = listView;
    }
    // set our own custom delegate
    FolderItemDelegate* delegate = new FolderItemDelegate(listView);
    listView->setItemDelegateForColumn(FolderModel::ColumnFileName, delegate);
    // FIXME: should we expose the delegate?
    listView->setMovement(QListView::Static);
    listView->setResizeMode(QListView::Adjust);
    listView->setWrapping(true);
    switch(mode) {
      case IconMode: {
        listView->setViewMode(QListView::IconMode);
        // listView->setGridSize(QSize(iconSize.width() * 1.6, iconSize.height() * 2));
        listView->setGridSize(QSize(90, 110));
        listView->setWordWrap(true);
        listView->setFlow(QListView::LeftToRight);
        break;
      }
      case CompactMode: {
        listView->setViewMode(QListView::ListMode);
        listView->setGridSize(QSize());
        listView->setWordWrap(false);
        listView->setFlow(QListView::QListView::TopToBottom);
        break;
      }
      case ThumbnailMode: {
        listView->setViewMode(QListView::IconMode);
        listView->setGridSize(QSize(160, 160));
        listView->setWordWrap(true);
        listView->setFlow(QListView::LeftToRight);
        break;
      }
      default:;
    }
    delegate->setGridSize(listView->gridSize());
  }
  if(view) {
    // we have to install the event filter on the viewport instead of the view itself.
    view->viewport()->installEventFilter(this);
    // we want the QEvent::HoverMove event for single click + auto-selection support
    view->viewport()->setAttribute(Qt::WA_Hover, true);
    connect(view, SIGNAL(activatedFiltered(QModelIndex)), SLOT(onItemActivated(QModelIndex)));
    view->setContextMenuPolicy(Qt::NoContextMenu); // defer the context menu handling to parent widgets
    view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    view->setIconSize(iconSize);

    view->setSelectionMode(QAbstractItemView::ExtendedSelection);
    layout()->addWidget(view);

    // enable dnd
    view->setDragEnabled(true);
    view->setAcceptDrops(true);
    view->setDragDropMode(QAbstractItemView::DragDrop);
    view->setDropIndicatorShown(true);

    if(model_) {
      // FIXME: preserve selections
      model_->setThumbnailSize(iconSize.width());
      view->setModel(model_);
      if(recreateView)
        connect(view->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(onSelectionChanged(QItemSelection,QItemSelection)));
    }
  }
}