void MainWindow::onSelectionChange(QItemSelection selected,QItemSelection){ if(selected.indexes().isEmpty()){ ui->actionWaterfall->setEnabled(false); }else{ if(ui->toolTabs->currentWidget() == ui->inspectorTab){ QModelIndex index = selected.indexes().first(); onItemDoubleClicked(index); } ui->actionWaterfall->setEnabled(true); } }
void SinglePlaylistView::browseSavedPlaylist(MafwPlaylist *mafwplaylist) { currentObjectId = QString(); playlistLoaded = true; objectModel->clear(); QStandardItem *item = new QStandardItem(); item->setData(true, UserRoleHeader); item->setDragEnabled(false); item->setDropEnabled(false); objectModel->appendRow(item); connect(ui->objectList, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onItemDoubleClicked())); MafwPlaylistAdapter *mpa = new MafwPlaylistAdapter(mafwplaylist); int size = mpa->size(); gchar** items = mpa->items(0, size-1); for (int i = 0; items[i] != NULL; i++) { QStandardItem *item = new QStandardItem(); item->setData(QString::fromUtf8(items[i]), UserRoleObjectID); item->setData(Duration::Blank, UserRoleSongDuration); item->setDropEnabled(false); objectModel->appendRow(item); } g_strfreev(items); PlaylistQueryManager *playlistQM = new PlaylistQueryManager(this, mpa); mpa->setParent(playlistQM); connect(playlistQM, SIGNAL(gotItem(QString,GHashTable*,uint)), this, SLOT(onItemReceived(QString,GHashTable*,uint))); connect(ui->objectList->verticalScrollBar(), SIGNAL(valueChanged(int)), playlistQM, SLOT(setPriority(int))); playlistQM->getItems(0, size-1); remainingCount = size; updateSongCount(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), _isUsingCapture(false) #ifdef Q_OS_WIN ,proxySetting("\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\",QSettings::NativeFormat) #endif { ui->setupUi(this); pipeTableModel = new RyTableModel(this); sortFilterProxyModel = new RyTableSortFilterProxyModel(this); ui->tableView->setSortingEnabled(true); ui->tableView->setModel(sortFilterProxyModel); sortFilterProxyModel->setDynamicSortFilter(true); sortFilterProxyModel->setSourceModel(pipeTableModel); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->setColumnWidth(0,30); ui->tableView->setColumnWidth(1,30); ui->tableView->setColumnWidth(2,50); ui->tableView->setColumnWidth(3,50); ui->tableView->setColumnWidth(7,50); ui->tableView->verticalHeader()->setDefaultSectionSize(20); ui->tableView->verticalHeader()->hide(); _jsBridge = new RyJsBridge(); QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); addJsObject(); connect(ui->webView->page()->mainFrame(),SIGNAL(javaScriptWindowObjectCleared()),SLOT(addJsObject())); ui->webView->load(QUrl("http://127.0.0.1:8889/manager/RythemManagerUI/rules.html")); // should use slot to do this //ui->composer->setupProxy(RyProxyServer::instance()->serverAddress().toString(), // RyProxyServer::instance()->serverPort()); ui->composer->setupProxy("127.0.0.1", 8889); _itemSelectModel = ui->tableView->selectionModel(); connect(ui->tableView,SIGNAL(doubleClicked(QModelIndex)),SLOT(onItemDoubleClicked(QModelIndex))); //connect(_itemSelectModel,SIGNAL(currentChanged(QModelIndex,QModelIndex)),SLOT(onSelectionChange(QModelIndex))); connect(_itemSelectModel,SIGNAL(selectionChanged(QItemSelection,QItemSelection)),SLOT(onSelectionChange(QItemSelection,QItemSelection))); //ui->tableView->setItemDelegate(); createMenus(); //toggleCapture(); connect(ui->ActionCapture,SIGNAL(triggered()),SLOT(toggleCapture())); connect(ui->actionRemoveAll,SIGNAL(triggered()),this,SLOT(onActionRemoveAll())); connect(ui->actionWaterfall, SIGNAL(triggered()), this, SLOT(onWaterfallActionTriggered())); #ifdef Q_WS_MAC // TODO: mac下需手动设置代理 ui->ActionCapture->setEnabled(false); ui->ActionCapture->setText(tr("SetupProxyManually")); ui->ActionCapture->setToolTip(tr("non-windows OS need to set proxy to:127.0.0.1:8889 manually")); #endif }