ProfileSelect::ProfileSelect(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ProfileSelect)
{
    ui->setupUi(this);
    QStringList str;
    model=new QStandardItemModel (0,0);

    int i=0;
    int sel=-1;
    QString name;

    QIcon icon(":/icons/moon.png");
    for (QMap<QString,Profile *>::iterator p=Profiles::profiles.begin();p!=Profiles::profiles.end();p++) {
        name=p.key();

        QStandardItem *item=new QStandardItem(icon,name);
        if (PREF.contains(STR_GEN_Profile) && (name==PREF[STR_GEN_Profile].toString())) {
            sel=i;
        }
        item->setData(p.key());
        item->setEditable(false);

        // Profile fonts arern't loaded yet.. Using generic font.
        item->setFont(QFont("Sans Serif",18,QFont::Bold,false));
        model->appendRow(item);
        i++;
    }
    ui->listView->setModel(model);
    ui->listView->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->listView->setSelectionMode(QAbstractItemView::SingleSelection);
    if (sel>=0) ui->listView->setCurrentIndex(model->item(sel)->index());
    m_tries=0;

    /*PREF["SkipLogin"]=false;
    if ((i==1) && PREF["SkipLogin"].toBool()) {
        if (!Profiles::profiles.contains(name))
            PREF[STR_GEN_Profile]=name;
        QTimer::singleShot(0,this,SLOT(earlyExit()));
        hide();
    } */
    popupMenu=new QMenu(this);
    popupMenu->addAction(tr("Open Profile"),this,SLOT(openProfile()));
    popupMenu->addAction(tr("Edit Profile"),this,SLOT(editProfile()));
    popupMenu->addSeparator();
    popupMenu->addAction(tr("Delete Profile"),this,SLOT(deleteProfile()));

    ui->labelAppName->setText(STR_TR_SleepyHead);
    ui->labelVersion->setText("v"+VersionString+" "+ReleaseStatus);
//    if (GIT_BRANCH!="master")
//        ui->labelBuild->setText(GIT_BRANCH);
//    else ui->labelBuild->setText(QString());
    ui->labelFolder->setText(GetAppRoot());
    ui->labelFolder->setToolTip("Current SleepyHead data folder\n"+GetAppRoot());
}
void FLogTextBrowser::contextMenuEvent(QContextMenuEvent *event)
{
	flist_copylink = anchorAt(event->pos());
	QTextCursor cursor = textCursor();
	QMenu *menu = new QMenu;
	QAction *action;
	if(flist_copylink.isEmpty()) {
		//Plain text selected
	} else if(flist_copylink.startsWith("https://www.f-list.net/c/")) {
		flist_copyname = flist_copylink.mid(QString("https://www.f-list.net/c/").length());
		if(flist_copyname.endsWith("/")) {
			flist_copyname = flist_copyname.left(flist_copyname.length() - 1);
		}
		menu->addAction(QString("Open Profile"), this, SLOT(openProfile()));
		//todo: Get the list of available sessions. Create a submenu with all available characters if there is more than one (or this session isn't vlaid).
		menu->addAction(QString("Open PM"), this, SLOT(openPrivateMessage()));
		menu->addAction(QString("Copy Profile Link"), this, SLOT(copyLink()));
		menu->addAction(QString("Copy Name"), this, SLOT(copyName()));
		menu->addSeparator();
	} else if(flist_copylink.startsWith("#AHI-")) {
		flist_copyname = flist_copylink.mid(5);
		//todo: Get the list of available sessions. Create a submenu with all available characters if there is more than one (or this session isn't vlaid).
		menu->addAction(QString("Join Channel"), this, SLOT(joinChannel()));
		//todo: Maybe get the name the plain text of the link and make that available for copying?
		menu->addAction(QString("Copy Channel ID"), this, SLOT(copyName()));
		menu->addSeparator();
	} else if(flist_copylink.startsWith("#CSA-")) {
		flist_copyname = flist_copylink.mid(5);
		//todo: If possible, get which session this actually came from and use that.
		menu->addAction(QString("Confirm Staff Report"), this, SLOT(confirmReport()));
		menu->addAction(QString("Copy Call ID"), this, SLOT(copyName()));
		menu->addSeparator();
	} else {
		menu->addAction(QString("Copy Link"), this, SLOT(copyLink()));
		menu->addSeparator();
	}
	action = menu->addAction(QString("Copy Selection"), this, SLOT(copy()));
	action->setEnabled(cursor.hasSelection());
	menu->addAction(QString("Select All"), this, SLOT(selectAll()));

	menu->exec(event->globalPos());
	delete menu;
}
示例#3
0
static void loadIni(HWND hwnd)
{
	char buffer[512];
	CNRINFO cnrInfo;
	HINI inifile;

	inifile = openProfile(INIFILE);

	if(inifile)
	{
		if(readProfile(inifile,"CD","Grabber",buffer,sizeof(buffer), TRUE))
			setText(WinWindowFromID(hwnd, CB_GRABBER), CBID_EDIT, buffer);
		if(readProfile(inifile,"CD","Drive",buffer,sizeof(buffer), TRUE))
			setText(WinWindowFromID(hwnd, CB_DRIVE), CBID_EDIT, buffer);
		if(readProfile(inifile,"CD","TempDir",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_TEMPDIR, buffer);
		if(readProfile(inifile,"CD","Custom",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_CUSTOMCD, buffer);

		if(readProfile(inifile,"CD","SuperGrab",buffer,1, FALSE))
			setCheck(hwnd, CB_SUPERGRAB, *buffer);
		if(readProfile(inifile,"CD","Use CDDB",buffer,1, FALSE))
			setCheck(hwnd, CB_USECDDB, *buffer);

		if(readProfile(inifile,"CD","Title",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_TITLE, buffer);
		if(readProfile(inifile,"CD","Artist",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_ARTIST, buffer);
		if(readProfile(inifile,"CD","Comments",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_COMMENTS, buffer);
		if(readProfile(inifile,"CD","Category",buffer,sizeof(buffer), TRUE))
			setText(hwnd, EF_GENRE, buffer);

		if(readProfile(inifile,"CD","ContainerInfo",&cnrInfo,sizeof(cnrInfo), FALSE))
			WinSendDlgItemMsg(hwnd,CT_TRACK,CM_SETCNRINFO, MPFROMP(&cnrInfo),
				MPFROMLONG(CMA_XVERTSPLITBAR | CMA_FLWINDOWATTR));

		miniIcons = (cnrInfo.flWindowAttr & CV_MINI) ? TRUE : FALSE;

		closeProfile(inifile);
	}
}
示例#4
0
static void saveIni(HWND hwnd)
{
	char buffer[512];
	CNRINFO cnrInfo;
	HINI inifile;

	inifile = openProfile(INIFILE);

	if(inifile)
	{
		getText(WinWindowFromID(hwnd, CB_GRABBER), CBID_EDIT, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Grabber", buffer,0);
		getText(WinWindowFromID(hwnd, CB_DRIVE), CBID_EDIT, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Drive", buffer,0);
		getText(hwnd, EF_TEMPDIR, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","TempDir", buffer,0);
		getText(hwnd, EF_CUSTOMCD, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Custom", buffer,0);

		*buffer = getCheck(hwnd, CB_SUPERGRAB);
		writeProfile(inifile,"CD","SuperGrab", buffer, 1);
		*buffer = getCheck(hwnd, CB_USECDDB);
		writeProfile(inifile,"CD","Use CDDB", buffer, 1);

		getText(hwnd, EF_TITLE, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Title", buffer,0);
		getText(hwnd, EF_ARTIST, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Artist", buffer,0);
		getText(hwnd, EF_COMMENTS, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Comments", buffer,0);
		getText(hwnd, EF_GENRE, buffer, sizeof(buffer));
		writeProfile(inifile,"CD","Category", buffer,0);

		cnrInfo.cb = sizeof(cnrInfo);
		WinSendDlgItemMsg(hwnd,CT_TRACK,CM_QUERYCNRINFO, MPFROMP(&cnrInfo),MPFROMLONG(sizeof(cnrInfo)));
		writeProfile(inifile,"CD","ContainerInfo", &cnrInfo, sizeof(cnrInfo));

		closeProfile(inifile);
	}
}
示例#5
0
MainForm::MainForm( QWidget* parent, const char* name, WFlags fl )
    : QMainWindow( parent, name, fl )
{
    (void)statusBar();
    if ( !name )
	setName( "MainForm" );
    setCentralWidget( new QWidget( this, "qt_central_widget" ) );
    MainFormLayout = new QVBoxLayout( centralWidget(), 11, 6, "MainFormLayout"); 

    listView = new QListView( centralWidget(), "listView" );
    listView->addColumn( tr( "Type" ) );
    listView->addColumn( tr( "Name" ) );
    listView->addColumn( tr( "Login" ) );
    listView->addColumn( tr( "Password" ) );
    listView->addColumn( tr( "Description" ) );
    listView->setResizeMode( QListView::AllColumns );
    listView->setSorting(-1);
    MainFormLayout->addWidget( listView );

    // actions
    createProfileAction = new QAction( this, "createProfileAction" );
    createProfileAction->setIconSet( QPixmap::fromMimeSource("new.png") );
    openProfileAction = new QAction(this, "openProfileAction" );
    openProfileAction->setIconSet( QPixmap::fromMimeSource("open.png") );
    tb_openProfileAction = new QAction(this, "tb_openProfileAction");
    tb_openProfileAction->setIconSet( QPixmap::fromMimeSource("tb_open.png") );
    closeProfileAction = new QAction( this, "closeProfileAction" );
    closeProfileAction->setIconSet( QPixmap::fromMimeSource("close.png") );
    tb_closeProfileAction = new QAction( this, "tb_closeProfileAction" );
    tb_closeProfileAction->setIconSet( QPixmap::fromMimeSource("tb_close.png") );
    deleteProfileAction = new QAction( this, "deleteProfileAction" );
    deleteProfileAction->setIconSet( QPixmap::fromMimeSource("delete_all.png") );
    changeProfileAction = new QAction( this, "changeProfileAction" );
    fileQuitAction = new QAction( this, "fileQuitAction" );
    fileSaveAction = new QAction( this, "fileSaveAction" );
    fileSaveAction->setIconSet( QPixmap::fromMimeSource("save.png") );
    tb_fileSaveAction = new QAction( this, "tb_fileSaveAction" );
    tb_fileSaveAction->setIconSet( QPixmap::fromMimeSource("tb_save.png") );
    editUndoAction = new QAction( this, "editUndoAction" );
    editUndoAction->setIconSet( QPixmap::fromMimeSource("undo.png") );
    tb_editUndoAction = new QAction( this, "editUndoAction" );
    tb_editUndoAction->setIconSet( QPixmap::fromMimeSource("tb_undo.png") );
    editRedoAction = new QAction( this, "editRedoAction" );
    editRedoAction->setIconSet( QPixmap::fromMimeSource("redo.png") );
    tb_editRedoAction = new QAction( this, "tb_editRedoAction" );
    tb_editRedoAction->setIconSet( QPixmap::fromMimeSource("tb_redo.png") );
    editNewField = new QAction( this, "editNewField" );
    editNewField->setIconSet( QPixmap::fromMimeSource("new.png") );
    editEditField = new QAction( this, "editEditField" );
    editEditField->setIconSet( QPixmap::fromMimeSource("edit.png") );
    tb_editEditField = new QAction( this, "tb_editEditField" );
    tb_editEditField->setIconSet( QPixmap::fromMimeSource("tb_edit.png") );
    tb_editNewField = new QAction( this, "tb_editNewField" );
    tb_editNewField->setIconSet( QPixmap::fromMimeSource("tb_new.png") );
    editDeleteField = new QAction( this, "editDeleteField" );
    editDeleteField->setIconSet( QPixmap::fromMimeSource("delete.png") );
    tb_editDeleteField = new QAction( this, "tb_editDeleteField" );
    tb_editDeleteField->setIconSet( QPixmap::fromMimeSource("tb_delete.png") );
    editDeleteAll = new QAction( this, "editDeleteAll" );
    editDeleteAll->setIconSet( QPixmap::fromMimeSource("delete_all.png") );
    helpAboutAction = new QAction( this, "helpAboutAction" );


    // toolbars
    fileToolbar = new QToolBar( tr("File"), this, DockTop );
    tb_openProfileAction->addTo( fileToolbar);
    tb_fileSaveAction->addTo( fileToolbar);
    tb_closeProfileAction->addTo( fileToolbar );
    
    editToolbar = new QToolBar( tr("Edit"), this, DockTop );
    tb_editUndoAction->addTo( editToolbar );
    tb_editRedoAction->addTo( editToolbar );
    editToolbar->addSeparator();
    tb_editNewField->addTo( editToolbar );
    tb_editEditField->addTo( editToolbar );
    tb_editDeleteField->addTo( editToolbar );

    // menubar
    MenuBarEditor = new QMenuBar( this, "MenuBarEditor" );


    File = new QPopupMenu( this );
    createProfileAction->addTo( File );
    openProfileAction->addTo( File );
    fileSaveAction->addTo( File );
    closeProfileAction->addTo( File );
    deleteProfileAction->addTo( File );
    changeProfileAction->addTo( File );
    File->insertSeparator();
    fileQuitAction->addTo( File );
    MenuBarEditor->insertItem( QString(""), File, 1 );
    
    Edit = new QPopupMenu( this );
    editUndoAction->addTo( Edit );
    editRedoAction->addTo( Edit );
    Edit->insertSeparator();
    editNewField->addTo( Edit );
    editEditField->addTo( Edit );
    editDeleteField->addTo( Edit );
    editDeleteAll->addTo(Edit);
    MenuBarEditor->insertItem( QString(""), Edit, 2 );
    
    Help = new QPopupMenu( this );
    helpAboutAction->addTo( Help );
    MenuBarEditor->insertItem( QString(""), Help, 3 );
    
    rmbMenu = new QPopupMenu( this );
    editUndoAction->addTo( rmbMenu );
    editRedoAction->addTo( rmbMenu );
    rmbMenu->insertSeparator();
    editNewField->addTo( rmbMenu );
    editEditField->addTo( rmbMenu );
    editDeleteField->addTo( rmbMenu );

    languageChange();
    resize( QSize(700, 400).expandedTo(minimumSizeHint()) );
    clearWState( WState_Polished );
    
    connect(createProfileAction, SIGNAL( activated() ), this, SLOT( createProfile() )  );
    connect(openProfileAction, SIGNAL( activated() ), this, SLOT( openProfile() )  );
    connect(tb_openProfileAction, SIGNAL( activated() ), this, SLOT( openProfile() ) );
    connect(closeProfileAction, SIGNAL( activated() ), this, SLOT( closeProfile() )  );
    connect(tb_closeProfileAction, SIGNAL( activated() ), this, SLOT( closeProfile() )  );
    connect(deleteProfileAction, SIGNAL( activated() ), this, SLOT( deleteProfile() ) );
    connect(changeProfileAction, SIGNAL( activated() ), this, SLOT( changeProfile() ) );
    connect(fileSaveAction, SIGNAL( activated() ), this, SLOT( save() ) );
    connect(tb_fileSaveAction, SIGNAL( activated() ), this, SLOT( save() ) );
    connect(fileQuitAction, SIGNAL( activated() ), this, SLOT( close() ) );
    connect(editUndoAction, SIGNAL( activated() ), this, SLOT( undo() ) );
    connect(tb_editUndoAction, SIGNAL( activated() ), this, SLOT( undo() ) );
    connect(editRedoAction, SIGNAL( activated() ), this, SLOT( redo() ) );
    connect(tb_editRedoAction, SIGNAL( activated() ), this, SLOT( redo() ) );
    connect(editNewField, SIGNAL( activated() ), this, SLOT( newField() ) );
    connect(tb_editNewField, SIGNAL( activated() ), this, SLOT( newField() ) );
    connect(editEditField, SIGNAL(activated() ), this, SLOT( editField() ) );
    connect(tb_editEditField, SIGNAL(activated() ), this, SLOT( editField() ) );
    connect(editDeleteField, SIGNAL( activated() ), this, SLOT( deleteField() ) );
    connect(tb_editDeleteField, SIGNAL( activated() ), this, SLOT( deleteField() ) );
    connect(editDeleteAll, SIGNAL( activated() ), this, SLOT( deleteAll() ) );
    connect(helpAboutAction, SIGNAL( activated() ), this, SLOT( about() ) );
    
    connect(listView, SIGNAL( doubleClicked(QListViewItem *) ), this, SLOT( edit(QListViewItem *) ) );
    connect(listView, SIGNAL( contextMenuRequested( QListViewItem *, const QPoint&, int) ), this, SLOT( slotRMB( QListViewItem*, const QPoint &, int ) ) );
    
    modified = false;
    Caption();
    
    if(!ifProfileExists())
	    createProfile();
    else
	    setEnabledActions(1);
}