DevWorkSpace::DevWorkSpace(QString name, QWidget *parent) : QTreeWidget(parent), n(name) { setHeaderItem(new QTreeWidgetItem( QStringList("WorkSpace : "), DevQt::classes) ); root = new QTreeWidgetItem( QStringList(QFileInfo(n).baseName()), DevQt::files); root->setIcon(0, QIcon(":/workspace.png")); addTopLevelItem(root); connect(this, SIGNAL( itemClicked(QTreeWidgetItem*, int) ), this, SLOT ( focus(QTreeWidgetItem*, int) ) ); DevProject *p; QTreeWidgetItem *i; i = new QTreeWidgetItem(QStringList("External"), DevQt::files); i->setIcon(0, QIcon(":/project.png")); p = new DevProject("External"); insert(i, p); projects.append(p); addTopLevelItem(i); if ( QFile::exists(n) ) loadWorkSpace(n); }
TrackerList::TrackerList(PropertiesWidget *properties): QTreeWidget(), properties(properties) { // Graphical settings setRootIsDecorated(false); setAllColumnsShowFocus(true); setItemsExpandable(false); setSelectionMode(QAbstractItemView::ExtendedSelection); // Context menu setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showTrackerListMenu(QPoint))); // Set header QStringList header; header << "#"; header << tr("URL"); header << tr("Status"); header << tr("Peers"); header << tr("Message"); setHeaderItem(new QTreeWidgetItem(header)); dht_item = new QTreeWidgetItem(QStringList() << "" << "** [DHT] **"); insertTopLevelItem(0, dht_item); setRowColor(0, QColor("grey")); pex_item = new QTreeWidgetItem(QStringList() << "" << "** [PeX] **"); insertTopLevelItem(1, pex_item); setRowColor(1, QColor("grey")); lsd_item = new QTreeWidgetItem(QStringList() << "" << "** [LSD] **"); insertTopLevelItem(2, lsd_item); setRowColor(2, QColor("grey")); editHotkey = new QShortcut(QKeySequence("F2"), this, SLOT(editSelectedTracker()), 0, Qt::WidgetShortcut); connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(editSelectedTracker())); deleteHotkey = new QShortcut(QKeySequence(QKeySequence::Delete), this, SLOT(deleteSelectedTrackers()), 0, Qt::WidgetShortcut); copyHotkey = new QShortcut(QKeySequence(Qt::ControlModifier + Qt::Key_C), this, SLOT(copyTrackerUrl()), 0, Qt::WidgetShortcut); loadSettings(); }
widgets::widgets(program_window* const wnd) : QTreeWidget() , m_wnd(wnd) , m_icon_data_type((boost::filesystem::path{ get_program_options()->dataRoot() } / "shared/gfx/icons/data_type.png").string().c_str()) , m_icon_wainting_for_load((boost::filesystem::path{ get_program_options()->dataRoot() } / "shared/gfx/icons/wait.png").string().c_str()) , m_icon_being_loaded((boost::filesystem::path{ get_program_options()->dataRoot() } / "shared/gfx/icons/loading.png").string().c_str()) , m_icon_in_use((boost::filesystem::path{ get_program_options()->dataRoot() } / "shared/gfx/icons/in_use.png").string().c_str()) , m_icon_failed_to_load((boost::filesystem::path{ get_program_options()->dataRoot() } / "shared/gfx/icons/error.png").string().c_str()) , m_records() , m_just_being_loaded(async::get_invalid_key()) { setSelectionMode(QAbstractItemView::SelectionMode::NoSelection); { QTreeWidgetItem* const headerItem = new QTreeWidgetItem(); headerItem->setText(0, QString("Resource types")); headerItem->setText(1, QString("#Refs")); setHeaderItem(headerItem); } //int cc = columnCount(); //int cs0 = columnWidth(0); //int cs1 = columnWidth(1); //int cs0X = (int)std::max(1.0f, std::roundf(0.9f * (cs0 + cs1))); //int cs1X = (int)std::max(1.0f, std::roundf(0.1f * (cs0 + cs1))); //setColumnWidth(0, cs0X); //setColumnWidth(1, cs1X); }
TrackerList::TrackerList(PropertiesWidget *properties): QTreeWidget(), properties(properties) { // Graphical settings setRootIsDecorated(false); setAllColumnsShowFocus(true); setItemsExpandable(false); setSelectionMode(QAbstractItemView::ExtendedSelection); // Context menu setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showTrackerListMenu(QPoint))); // Set header QStringList header; header << "#"; header << tr("URL"); header << tr("Status"); header << tr("Received"); header << tr("Seeds"); header << tr("Peers"); header << tr("Downloaded"); header << tr("Message"); setHeaderItem(new QTreeWidgetItem(header)); dht_item = new QTreeWidgetItem({ "", "** [DHT] **", "", "0", "", "", "0" }); insertTopLevelItem(0, dht_item); setRowColor(0, QColor("grey")); pex_item = new QTreeWidgetItem({ "", "** [PeX] **", "", "0", "", "", "0" }); insertTopLevelItem(1, pex_item); setRowColor(1, QColor("grey")); lsd_item = new QTreeWidgetItem({ "", "** [LSD] **", "", "0", "", "", "0" }); insertTopLevelItem(2, lsd_item); setRowColor(2, QColor("grey")); editHotkey = new QShortcut(Qt::Key_F2, this, SLOT(editSelectedTracker()), 0, Qt::WidgetShortcut); connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(editSelectedTracker())); deleteHotkey = new QShortcut(QKeySequence::Delete, this, SLOT(deleteSelectedTrackers()), 0, Qt::WidgetShortcut); copyHotkey = new QShortcut(QKeySequence::Copy, this, SLOT(copyTrackerUrl()), 0, Qt::WidgetShortcut); // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; unused.setVerticalHeader(this->header()); this->header()->setParent(this); unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); loadSettings(); }
DevWorkSpace::DevWorkSpace(QString name, QWidget *parent) : QTreeWidget(parent), n(name) { setAcceptDrops(true); setDragEnabled(true); setDropIndicatorShown(true); setSelectionMode(QAbstractItemView::ExtendedSelection); //setSortingEnabled(true); setHeaderItem(new QTreeWidgetItem( QStringList(tr("WorkSpace : ")), DevQt::classes) ); connect(this, SIGNAL( itemActivated(QTreeWidgetItem*, int) ), this, SLOT ( focus(QTreeWidgetItem*, int) ) ); DevProject *p; QTreeWidgetItem *i; i = new QTreeWidgetItem(QStringList(tr("External")), DevQt::files); i->setIcon(0, QIcon(":/project.png")); i->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled ); p = new DevProject(tr("External")); p->m->clear(); p->m->addAction(p->aSub); p->m->addAction(p->aNew); connect(p , SIGNAL( addFile(DevFolder*) ), this, SLOT ( addFile(DevFolder*) ) ); connect(p , SIGNAL( subFolder(DevFolder*) ), this, SLOT ( subFolder(DevFolder*) ) ); DevTreeMap::insert(i, p); DevProjectMap::insert(name, p); addTopLevelItem(i); if ( QFile::exists(n) ) loadWorkSpace(n); }
Playlist::Playlist(QWidget* parent) : QTreeWidget( parent ) , m_marker( 0 ) , m_CurrentTrackColor(QColor( 255,100,100 )) , m_NextTrackColor(QColor( 200,200,255 )) , m_PlaylistMode( Playlist::Playlist_Single ) , nextPlaylistItem (0) , previousPlaylistItem(0) , currentPlaylistItem(0) , newPlaylistItem(0) , m_alternateMax(0) , showDropHighlighter(false) , autoClearOn(false) , m_isPlaying(false) , m_isInternDrop(false) , m_dragLocked(false) , isChangeSignalEnabled(true) { setSortingEnabled( false ); setAcceptDrops( true ); setDragEnabled( true ); setAllColumnsShowFocus( false ); setDropIndicatorShown(true); setAcceptDrops(true); setDragEnabled(true); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); setDragDropMode(QAbstractItemView::InternalMove); setAttribute(Qt::WA_MacShowFocusRect, false); setUniformRowHeights(true); QStringList headers; headers << tr("Url")<<tr("No")<<tr("Played")<<tr("Artist")<<tr("Title"); headers <<tr("Album")<<tr("Year")<<tr("Genre")<<tr("Track"); headers <<tr("Length")<<tr("Rate"); QTreeWidgetItem *headeritem = new QTreeWidgetItem(headers); setHeaderItem(headeritem); setHeaderLabels(headers); header()->setResizeMode(QHeaderView::Interactive); header()->hideSection(PlaylistItem::Column_Url); // prevent click event if doubleclicked ignoreNextRelease = false; timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(emitClicked())); timerDragLock = new QTimer(this); timerDragLock->setInterval(300); connect(timerDragLock, SIGNAL(timeout()), this, SLOT(timeoutDragLock())); connect( this, SIGNAL(itemClicked(QTreeWidgetItem*,int)) , this, SLOT(slotItemClicked(QTreeWidgetItem*,int))); connect( this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)) , this, SLOT(slotItemDoubleClicked(QTreeWidgetItem*,int))); connect( this, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(slotItemChanged(QTreeWidgetItem*,QTreeWidgetItem*))); }